diff options
author | Joel Kronqvist <joel.h.kronqvist@gmail.com> | 2022-03-05 19:02:27 +0200 |
---|---|---|
committer | Joel Kronqvist <joel.h.kronqvist@gmail.com> | 2022-03-05 19:02:27 +0200 |
commit | 5d309ff52cd399a6b71968a6b9a70c8ac0b98981 (patch) | |
tree | 360f7eb50f956e2367ef38fa1fc6ac7ac5258042 /node_modules/jest-docblock/build/index.js | |
parent | b500a50f1b97d93c98b36ed9a980f8188d648147 (diff) | |
download | LYLLRuoka-5d309ff52cd399a6b71968a6b9a70c8ac0b98981.tar.gz LYLLRuoka-5d309ff52cd399a6b71968a6b9a70c8ac0b98981.zip |
Added node_modules for the updating to work properly.
Diffstat (limited to 'node_modules/jest-docblock/build/index.js')
-rw-r--r-- | node_modules/jest-docblock/build/index.js | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/node_modules/jest-docblock/build/index.js b/node_modules/jest-docblock/build/index.js new file mode 100644 index 0000000..66450dd --- /dev/null +++ b/node_modules/jest-docblock/build/index.js @@ -0,0 +1,153 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { + value: true +}); +exports.extract = extract; +exports.parse = parse; +exports.parseWithComments = parseWithComments; +exports.print = print; +exports.strip = strip; + +function _os() { + const data = require('os'); + + _os = function () { + return data; + }; + + return data; +} + +function _detectNewline() { + const data = _interopRequireDefault(require('detect-newline')); + + _detectNewline = function () { + return data; + }; + + return data; +} + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : {default: obj}; +} + +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +const commentEndRe = /\*\/$/; +const commentStartRe = /^\/\*\*/; +const docblockRe = /^\s*(\/\*\*?(.|\r?\n)*?\*\/)/; +const lineCommentRe = /(^|\s+)\/\/([^\r\n]*)/g; +const ltrimNewlineRe = /^(\r?\n)+/; +const multilineRe = + /(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g; +const propertyRe = /(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g; +const stringStartRe = /(\r?\n|^) *\* ?/g; +const STRING_ARRAY = []; + +function extract(contents) { + const match = contents.match(docblockRe); + return match ? match[0].trimLeft() : ''; +} + +function strip(contents) { + const match = contents.match(docblockRe); + return match && match[0] ? contents.substring(match[0].length) : contents; +} + +function parse(docblock) { + return parseWithComments(docblock).pragmas; +} + +function parseWithComments(docblock) { + const line = (0, _detectNewline().default)(docblock) || _os().EOL; + + docblock = docblock + .replace(commentStartRe, '') + .replace(commentEndRe, '') + .replace(stringStartRe, '$1'); // Normalize multi-line directives + + let prev = ''; + + while (prev !== docblock) { + prev = docblock; + docblock = docblock.replace(multilineRe, `${line}$1 $2${line}`); + } + + docblock = docblock.replace(ltrimNewlineRe, '').trimRight(); + const result = Object.create(null); + const comments = docblock + .replace(propertyRe, '') + .replace(ltrimNewlineRe, '') + .trimRight(); + let match; + + while ((match = propertyRe.exec(docblock))) { + // strip linecomments from pragmas + const nextPragma = match[2].replace(lineCommentRe, ''); + + if ( + typeof result[match[1]] === 'string' || + Array.isArray(result[match[1]]) + ) { + result[match[1]] = STRING_ARRAY.concat(result[match[1]], nextPragma); + } else { + result[match[1]] = nextPragma; + } + } + + return { + comments, + pragmas: result + }; +} + +function print({comments = '', pragmas = {}}) { + const line = (0, _detectNewline().default)(comments) || _os().EOL; + + const head = '/**'; + const start = ' *'; + const tail = ' */'; + const keys = Object.keys(pragmas); + const printedObject = keys + .map(key => printKeyValues(key, pragmas[key])) + .reduce((arr, next) => arr.concat(next), []) + .map(keyValue => start + ' ' + keyValue + line) + .join(''); + + if (!comments) { + if (keys.length === 0) { + return ''; + } + + if (keys.length === 1 && !Array.isArray(pragmas[keys[0]])) { + const value = pragmas[keys[0]]; + return `${head} ${printKeyValues(keys[0], value)[0]}${tail}`; + } + } + + const printedComments = + comments + .split(line) + .map(textLine => `${start} ${textLine}`) + .join(line) + line; + return ( + head + + line + + (comments ? printedComments : '') + + (comments && keys.length ? start + line : '') + + printedObject + + tail + ); +} + +function printKeyValues(key, valueOrArray) { + return STRING_ARRAY.concat(valueOrArray).map(value => + `@${key} ${value}`.trim() + ); +} |