comment-parser 1.4.1 → 1.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +50 -2
- package/es6/parser/tokenizers/name.js +11 -3
- package/es6/parser/tokenizers/tag.js +3 -0
- package/es6/parser/tokenizers/type.d.ts +1 -1
- package/es6/parser/tokenizers/type.js +15 -3
- package/es6/primitives.js +1 -1
- package/jest.config.cjs +5 -7
- package/package.json +14 -10
- package/src/parser/tokenizers/name.ts +13 -3
- package/src/parser/tokenizers/tag.ts +4 -0
- package/src/parser/tokenizers/type.ts +16 -3
- package/tests/unit/parser.spec.ts +234 -0
- package/tests/unit/spec-tag-tokenizer.spec.ts +30 -0
- package/tsconfig.node.json +0 -1
- package/browser/index.js +0 -650
- package/lib/index.cjs +0 -88
- package/lib/index.cjs.map +0 -1
- package/lib/index.d.ts +0 -32
- package/lib/parser/block-parser.cjs +0 -44
- package/lib/parser/block-parser.cjs.map +0 -1
- package/lib/parser/block-parser.d.ts +0 -24
- package/lib/parser/index.cjs +0 -65
- package/lib/parser/index.cjs.map +0 -1
- package/lib/parser/index.d.ts +0 -11
- package/lib/parser/source-parser.cjs +0 -68
- package/lib/parser/source-parser.cjs.map +0 -1
- package/lib/parser/source-parser.d.ts +0 -7
- package/lib/parser/spec-parser.cjs +0 -29
- package/lib/parser/spec-parser.cjs.map +0 -1
- package/lib/parser/spec-parser.d.ts +0 -7
- package/lib/parser/tokenizers/description.cjs +0 -62
- package/lib/parser/tokenizers/description.cjs.map +0 -1
- package/lib/parser/tokenizers/description.d.ts +0 -20
- package/lib/parser/tokenizers/index.cjs +0 -6
- package/lib/parser/tokenizers/index.cjs.map +0 -1
- package/lib/parser/tokenizers/index.d.ts +0 -7
- package/lib/parser/tokenizers/name.cjs +0 -109
- package/lib/parser/tokenizers/name.cjs.map +0 -1
- package/lib/parser/tokenizers/name.d.ts +0 -6
- package/lib/parser/tokenizers/tag.cjs +0 -37
- package/lib/parser/tokenizers/tag.cjs.map +0 -1
- package/lib/parser/tokenizers/tag.d.ts +0 -6
- package/lib/parser/tokenizers/type.cjs +0 -79
- package/lib/parser/tokenizers/type.cjs.map +0 -1
- package/lib/parser/tokenizers/type.d.ts +0 -27
- package/lib/primitives.cjs +0 -17
- package/lib/primitives.cjs.map +0 -1
- package/lib/primitives.d.ts +0 -54
- package/lib/stringifier/index.cjs +0 -18
- package/lib/stringifier/index.cjs.map +0 -1
- package/lib/stringifier/index.d.ts +0 -3
- package/lib/stringifier/inspect.cjs +0 -72
- package/lib/stringifier/inspect.cjs.map +0 -1
- package/lib/stringifier/inspect.d.ts +0 -2
- package/lib/transforms/align.cjs +0 -127
- package/lib/transforms/align.cjs.map +0 -1
- package/lib/transforms/align.d.ts +0 -3
- package/lib/transforms/crlf.cjs +0 -44
- package/lib/transforms/crlf.cjs.map +0 -1
- package/lib/transforms/crlf.d.ts +0 -3
- package/lib/transforms/indent.cjs +0 -58
- package/lib/transforms/indent.cjs.map +0 -1
- package/lib/transforms/indent.d.ts +0 -2
- package/lib/transforms/index.cjs +0 -13
- package/lib/transforms/index.cjs.map +0 -1
- package/lib/transforms/index.d.ts +0 -3
- package/lib/util.cjs +0 -113
- package/lib/util.cjs.map +0 -1
- package/lib/util.d.ts +0 -21
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
const util_js_1 = require("../../util.cjs");
|
|
8
|
-
|
|
9
|
-
const isQuoted = s => s && s.startsWith('"') && s.endsWith('"');
|
|
10
|
-
/**
|
|
11
|
-
* Splits remaining `spec.lines[].tokens.description` into `name` and `descriptions` tokens,
|
|
12
|
-
* and populates the `spec.name`
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
function nameTokenizer() {
|
|
17
|
-
const typeEnd = (num, {
|
|
18
|
-
tokens
|
|
19
|
-
}, i) => tokens.type === '' ? num : i;
|
|
20
|
-
|
|
21
|
-
return spec => {
|
|
22
|
-
// look for the name in the line where {type} ends
|
|
23
|
-
const {
|
|
24
|
-
tokens
|
|
25
|
-
} = spec.source[spec.source.reduce(typeEnd, 0)];
|
|
26
|
-
const source = tokens.description.trimLeft();
|
|
27
|
-
const quotedGroups = source.split('"'); // if it starts with quoted group, assume it is a literal
|
|
28
|
-
|
|
29
|
-
if (quotedGroups.length > 1 && quotedGroups[0] === '' && quotedGroups.length % 2 === 1) {
|
|
30
|
-
spec.name = quotedGroups[1];
|
|
31
|
-
tokens.name = `"${quotedGroups[1]}"`;
|
|
32
|
-
[tokens.postName, tokens.description] = (0, util_js_1.splitSpace)(source.slice(tokens.name.length));
|
|
33
|
-
return spec;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
let brackets = 0;
|
|
37
|
-
let name = '';
|
|
38
|
-
let optional = false;
|
|
39
|
-
let defaultValue; // assume name is non-space string or anything wrapped into brackets
|
|
40
|
-
|
|
41
|
-
for (const ch of source) {
|
|
42
|
-
if (brackets === 0 && (0, util_js_1.isSpace)(ch)) break;
|
|
43
|
-
if (ch === '[') brackets++;
|
|
44
|
-
if (ch === ']') brackets--;
|
|
45
|
-
name += ch;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
if (brackets !== 0) {
|
|
49
|
-
spec.problems.push({
|
|
50
|
-
code: 'spec:name:unpaired-brackets',
|
|
51
|
-
message: 'unpaired brackets',
|
|
52
|
-
line: spec.source[0].number,
|
|
53
|
-
critical: true
|
|
54
|
-
});
|
|
55
|
-
return spec;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
const nameToken = name;
|
|
59
|
-
|
|
60
|
-
if (name[0] === '[' && name[name.length - 1] === ']') {
|
|
61
|
-
optional = true;
|
|
62
|
-
name = name.slice(1, -1);
|
|
63
|
-
const parts = name.split('=');
|
|
64
|
-
name = parts[0].trim();
|
|
65
|
-
if (parts[1] !== undefined) defaultValue = parts.slice(1).join('=').trim();
|
|
66
|
-
|
|
67
|
-
if (name === '') {
|
|
68
|
-
spec.problems.push({
|
|
69
|
-
code: 'spec:name:empty-name',
|
|
70
|
-
message: 'empty name',
|
|
71
|
-
line: spec.source[0].number,
|
|
72
|
-
critical: true
|
|
73
|
-
});
|
|
74
|
-
return spec;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
if (defaultValue === '') {
|
|
78
|
-
spec.problems.push({
|
|
79
|
-
code: 'spec:name:empty-default',
|
|
80
|
-
message: 'empty default value',
|
|
81
|
-
line: spec.source[0].number,
|
|
82
|
-
critical: true
|
|
83
|
-
});
|
|
84
|
-
return spec;
|
|
85
|
-
} // has "=" and is not a string, except for "=>"
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
if (!isQuoted(defaultValue) && /=(?!>)/.test(defaultValue)) {
|
|
89
|
-
spec.problems.push({
|
|
90
|
-
code: 'spec:name:invalid-default',
|
|
91
|
-
message: 'invalid default value syntax',
|
|
92
|
-
line: spec.source[0].number,
|
|
93
|
-
critical: true
|
|
94
|
-
});
|
|
95
|
-
return spec;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
spec.optional = optional;
|
|
100
|
-
spec.name = name;
|
|
101
|
-
tokens.name = nameToken;
|
|
102
|
-
if (defaultValue !== undefined) spec.default = defaultValue;
|
|
103
|
-
[tokens.postName, tokens.description] = (0, util_js_1.splitSpace)(source.slice(tokens.name.length));
|
|
104
|
-
return spec;
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
exports.default = nameTokenizer;
|
|
109
|
-
//# sourceMappingURL=name.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["name.js"],"names":["Object","defineProperty","exports","value","util_js_1","require","isQuoted","s","startsWith","endsWith","nameTokenizer","typeEnd","num","tokens","i","type","spec","source","reduce","description","trimLeft","quotedGroups","split","length","name","postName","splitSpace","slice","brackets","optional","defaultValue","ch","isSpace","problems","push","code","message","line","number","critical","nameToken","parts","trim","undefined","join","test","default"],"mappings":"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","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_js_1 = require(\"../../util.js\");\nconst isQuoted = (s) => s && s.startsWith('\"') && s.endsWith('\"');\n/**\n * Splits remaining `spec.lines[].tokens.description` into `name` and `descriptions` tokens,\n * and populates the `spec.name`\n */\nfunction nameTokenizer() {\n const typeEnd = (num, { tokens }, i) => tokens.type === '' ? num : i;\n return (spec) => {\n // look for the name in the line where {type} ends\n const { tokens } = spec.source[spec.source.reduce(typeEnd, 0)];\n const source = tokens.description.trimLeft();\n const quotedGroups = source.split('\"');\n // if it starts with quoted group, assume it is a literal\n if (quotedGroups.length > 1 &&\n quotedGroups[0] === '' &&\n quotedGroups.length % 2 === 1) {\n spec.name = quotedGroups[1];\n tokens.name = `\"${quotedGroups[1]}\"`;\n [tokens.postName, tokens.description] = (0, util_js_1.splitSpace)(source.slice(tokens.name.length));\n return spec;\n }\n let brackets = 0;\n let name = '';\n let optional = false;\n let defaultValue;\n // assume name is non-space string or anything wrapped into brackets\n for (const ch of source) {\n if (brackets === 0 && (0, util_js_1.isSpace)(ch))\n break;\n if (ch === '[')\n brackets++;\n if (ch === ']')\n brackets--;\n name += ch;\n }\n if (brackets !== 0) {\n spec.problems.push({\n code: 'spec:name:unpaired-brackets',\n message: 'unpaired brackets',\n line: spec.source[0].number,\n critical: true,\n });\n return spec;\n }\n const nameToken = name;\n if (name[0] === '[' && name[name.length - 1] === ']') {\n optional = true;\n name = name.slice(1, -1);\n const parts = name.split('=');\n name = parts[0].trim();\n if (parts[1] !== undefined)\n defaultValue = parts.slice(1).join('=').trim();\n if (name === '') {\n spec.problems.push({\n code: 'spec:name:empty-name',\n message: 'empty name',\n line: spec.source[0].number,\n critical: true,\n });\n return spec;\n }\n if (defaultValue === '') {\n spec.problems.push({\n code: 'spec:name:empty-default',\n message: 'empty default value',\n line: spec.source[0].number,\n critical: true,\n });\n return spec;\n }\n // has \"=\" and is not a string, except for \"=>\"\n if (!isQuoted(defaultValue) && /=(?!>)/.test(defaultValue)) {\n spec.problems.push({\n code: 'spec:name:invalid-default',\n message: 'invalid default value syntax',\n line: spec.source[0].number,\n critical: true,\n });\n return spec;\n }\n }\n spec.optional = optional;\n spec.name = name;\n tokens.name = nameToken;\n if (defaultValue !== undefined)\n spec.default = defaultValue;\n [tokens.postName, tokens.description] = (0, util_js_1.splitSpace)(source.slice(tokens.name.length));\n return spec;\n };\n}\nexports.default = nameTokenizer;\n"],"file":"name.cjs"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
/**
|
|
7
|
-
* Splits the `@prefix` from remaining `Spec.lines[].token.description` into the `tag` token,
|
|
8
|
-
* and populates `spec.tag`
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
function tagTokenizer() {
|
|
12
|
-
return spec => {
|
|
13
|
-
const {
|
|
14
|
-
tokens
|
|
15
|
-
} = spec.source[0];
|
|
16
|
-
const match = tokens.description.match(/\s*(@(\S+))(\s*)/);
|
|
17
|
-
|
|
18
|
-
if (match === null) {
|
|
19
|
-
spec.problems.push({
|
|
20
|
-
code: 'spec:tag:prefix',
|
|
21
|
-
message: 'tag should start with "@" symbol',
|
|
22
|
-
line: spec.source[0].number,
|
|
23
|
-
critical: true
|
|
24
|
-
});
|
|
25
|
-
return spec;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
tokens.tag = match[1];
|
|
29
|
-
tokens.postTag = match[3];
|
|
30
|
-
tokens.description = tokens.description.slice(match[0].length);
|
|
31
|
-
spec.tag = match[2];
|
|
32
|
-
return spec;
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
exports.default = tagTokenizer;
|
|
37
|
-
//# sourceMappingURL=tag.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["tag.js"],"names":["Object","defineProperty","exports","value","tagTokenizer","spec","tokens","source","match","description","problems","push","code","message","line","number","critical","tag","postTag","slice","length","default"],"mappings":"AAAA;;AACAA,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAAEC,EAAAA,KAAK,EAAE;AAAT,CAA7C;AACA;AACA;AACA;AACA;;AACA,SAASC,YAAT,GAAwB;AACpB,SAAQC,IAAD,IAAU;AACb,UAAM;AAAEC,MAAAA;AAAF,QAAaD,IAAI,CAACE,MAAL,CAAY,CAAZ,CAAnB;AACA,UAAMC,KAAK,GAAGF,MAAM,CAACG,WAAP,CAAmBD,KAAnB,CAAyB,kBAAzB,CAAd;;AACA,QAAIA,KAAK,KAAK,IAAd,EAAoB;AAChBH,MAAAA,IAAI,CAACK,QAAL,CAAcC,IAAd,CAAmB;AACfC,QAAAA,IAAI,EAAE,iBADS;AAEfC,QAAAA,OAAO,EAAE,kCAFM;AAGfC,QAAAA,IAAI,EAAET,IAAI,CAACE,MAAL,CAAY,CAAZ,EAAeQ,MAHN;AAIfC,QAAAA,QAAQ,EAAE;AAJK,OAAnB;AAMA,aAAOX,IAAP;AACH;;AACDC,IAAAA,MAAM,CAACW,GAAP,GAAaT,KAAK,CAAC,CAAD,CAAlB;AACAF,IAAAA,MAAM,CAACY,OAAP,GAAiBV,KAAK,CAAC,CAAD,CAAtB;AACAF,IAAAA,MAAM,CAACG,WAAP,GAAqBH,MAAM,CAACG,WAAP,CAAmBU,KAAnB,CAAyBX,KAAK,CAAC,CAAD,CAAL,CAASY,MAAlC,CAArB;AACAf,IAAAA,IAAI,CAACY,GAAL,GAAWT,KAAK,CAAC,CAAD,CAAhB;AACA,WAAOH,IAAP;AACH,GAjBD;AAkBH;;AACDH,OAAO,CAACmB,OAAR,GAAkBjB,YAAlB","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Splits the `@prefix` from remaining `Spec.lines[].token.description` into the `tag` token,\n * and populates `spec.tag`\n */\nfunction tagTokenizer() {\n return (spec) => {\n const { tokens } = spec.source[0];\n const match = tokens.description.match(/\\s*(@(\\S+))(\\s*)/);\n if (match === null) {\n spec.problems.push({\n code: 'spec:tag:prefix',\n message: 'tag should start with \"@\" symbol',\n line: spec.source[0].number,\n critical: true,\n });\n return spec;\n }\n tokens.tag = match[1];\n tokens.postTag = match[3];\n tokens.description = tokens.description.slice(match[0].length);\n spec.tag = match[2];\n return spec;\n };\n}\nexports.default = tagTokenizer;\n"],"file":"tag.cjs"}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
const util_js_1 = require("../../util.cjs");
|
|
8
|
-
/**
|
|
9
|
-
* Sets splits remaining `Spec.lines[].tokes.description` into `type` and `description`
|
|
10
|
-
* tokens and populates Spec.type`
|
|
11
|
-
*
|
|
12
|
-
* @param {Spacing} spacing tells how to deal with a whitespace
|
|
13
|
-
* for type values going over multiple lines
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
function typeTokenizer(spacing = 'compact') {
|
|
18
|
-
const join = getJoiner(spacing);
|
|
19
|
-
return spec => {
|
|
20
|
-
let curlies = 0;
|
|
21
|
-
let lines = [];
|
|
22
|
-
|
|
23
|
-
for (const [i, {
|
|
24
|
-
tokens
|
|
25
|
-
}] of spec.source.entries()) {
|
|
26
|
-
let type = '';
|
|
27
|
-
if (i === 0 && tokens.description[0] !== '{') return spec;
|
|
28
|
-
|
|
29
|
-
for (const ch of tokens.description) {
|
|
30
|
-
if (ch === '{') curlies++;
|
|
31
|
-
if (ch === '}') curlies--;
|
|
32
|
-
type += ch;
|
|
33
|
-
if (curlies === 0) break;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
lines.push([tokens, type]);
|
|
37
|
-
if (curlies === 0) break;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
if (curlies !== 0) {
|
|
41
|
-
spec.problems.push({
|
|
42
|
-
code: 'spec:type:unpaired-curlies',
|
|
43
|
-
message: 'unpaired curlies',
|
|
44
|
-
line: spec.source[0].number,
|
|
45
|
-
critical: true
|
|
46
|
-
});
|
|
47
|
-
return spec;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
const parts = [];
|
|
51
|
-
const offset = lines[0][0].postDelimiter.length;
|
|
52
|
-
|
|
53
|
-
for (const [i, [tokens, type]] of lines.entries()) {
|
|
54
|
-
tokens.type = type;
|
|
55
|
-
|
|
56
|
-
if (i > 0) {
|
|
57
|
-
tokens.type = tokens.postDelimiter.slice(offset) + type;
|
|
58
|
-
tokens.postDelimiter = tokens.postDelimiter.slice(0, offset);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
[tokens.postType, tokens.description] = (0, util_js_1.splitSpace)(tokens.description.slice(type.length));
|
|
62
|
-
parts.push(tokens.type);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
parts[0] = parts[0].slice(1);
|
|
66
|
-
parts[parts.length - 1] = parts[parts.length - 1].slice(0, -1);
|
|
67
|
-
spec.type = join(parts);
|
|
68
|
-
return spec;
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
exports.default = typeTokenizer;
|
|
73
|
-
|
|
74
|
-
const trim = x => x.trim();
|
|
75
|
-
|
|
76
|
-
function getJoiner(spacing) {
|
|
77
|
-
if (spacing === 'compact') return t => t.map(trim).join('');else if (spacing === 'preserve') return t => t.join('\n');else return spacing;
|
|
78
|
-
}
|
|
79
|
-
//# sourceMappingURL=type.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["type.js"],"names":["Object","defineProperty","exports","value","util_js_1","require","typeTokenizer","spacing","join","getJoiner","spec","curlies","lines","i","tokens","source","entries","type","description","ch","push","problems","code","message","line","number","critical","parts","offset","postDelimiter","length","slice","postType","splitSpace","default","trim","x","t","map"],"mappings":"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","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_js_1 = require(\"../../util.js\");\n/**\n * Sets splits remaining `Spec.lines[].tokes.description` into `type` and `description`\n * tokens and populates Spec.type`\n *\n * @param {Spacing} spacing tells how to deal with a whitespace\n * for type values going over multiple lines\n */\nfunction typeTokenizer(spacing = 'compact') {\n const join = getJoiner(spacing);\n return (spec) => {\n let curlies = 0;\n let lines = [];\n for (const [i, { tokens }] of spec.source.entries()) {\n let type = '';\n if (i === 0 && tokens.description[0] !== '{')\n return spec;\n for (const ch of tokens.description) {\n if (ch === '{')\n curlies++;\n if (ch === '}')\n curlies--;\n type += ch;\n if (curlies === 0)\n break;\n }\n lines.push([tokens, type]);\n if (curlies === 0)\n break;\n }\n if (curlies !== 0) {\n spec.problems.push({\n code: 'spec:type:unpaired-curlies',\n message: 'unpaired curlies',\n line: spec.source[0].number,\n critical: true,\n });\n return spec;\n }\n const parts = [];\n const offset = lines[0][0].postDelimiter.length;\n for (const [i, [tokens, type]] of lines.entries()) {\n tokens.type = type;\n if (i > 0) {\n tokens.type = tokens.postDelimiter.slice(offset) + type;\n tokens.postDelimiter = tokens.postDelimiter.slice(0, offset);\n }\n [tokens.postType, tokens.description] = (0, util_js_1.splitSpace)(tokens.description.slice(type.length));\n parts.push(tokens.type);\n }\n parts[0] = parts[0].slice(1);\n parts[parts.length - 1] = parts[parts.length - 1].slice(0, -1);\n spec.type = join(parts);\n return spec;\n };\n}\nexports.default = typeTokenizer;\nconst trim = (x) => x.trim();\nfunction getJoiner(spacing) {\n if (spacing === 'compact')\n return (t) => t.map(trim).join('');\n else if (spacing === 'preserve')\n return (t) => t.join('\\n');\n else\n return spacing;\n}\n"],"file":"type.cjs"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { Tokenizer } from './index.js';
|
|
2
|
-
/**
|
|
3
|
-
* Joiner is a function taking collected type token string parts,
|
|
4
|
-
* and joining them together. In most of the cases this will be
|
|
5
|
-
* a single piece like {type-name}, but type may go over multipe line
|
|
6
|
-
* ```
|
|
7
|
-
* @tag {function(
|
|
8
|
-
* number,
|
|
9
|
-
* string
|
|
10
|
-
* )}
|
|
11
|
-
* ```
|
|
12
|
-
*/
|
|
13
|
-
export type Joiner = (parts: string[]) => string;
|
|
14
|
-
/**
|
|
15
|
-
* Shortcut for standard Joiners
|
|
16
|
-
* compact - trim surrounding space, replace line breaks with a single space
|
|
17
|
-
* preserve - concat as is
|
|
18
|
-
*/
|
|
19
|
-
export type Spacing = 'compact' | 'preserve' | Joiner;
|
|
20
|
-
/**
|
|
21
|
-
* Sets splits remaining `Spec.lines[].tokes.description` into `type` and `description`
|
|
22
|
-
* tokens and populates Spec.type`
|
|
23
|
-
*
|
|
24
|
-
* @param {Spacing} spacing tells how to deal with a whitespace
|
|
25
|
-
* for type values going over multiple lines
|
|
26
|
-
*/
|
|
27
|
-
export default function typeTokenizer(spacing?: Spacing): Tokenizer;
|
package/lib/primitives.cjs
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.Markers = void 0;
|
|
7
|
-
/** @deprecated */
|
|
8
|
-
|
|
9
|
-
var Markers;
|
|
10
|
-
|
|
11
|
-
(function (Markers) {
|
|
12
|
-
Markers["start"] = "/**";
|
|
13
|
-
Markers["nostart"] = "/***";
|
|
14
|
-
Markers["delim"] = "*";
|
|
15
|
-
Markers["end"] = "*/";
|
|
16
|
-
})(Markers = exports.Markers || (exports.Markers = {}));
|
|
17
|
-
//# sourceMappingURL=primitives.cjs.map
|
package/lib/primitives.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["primitives.js"],"names":["Object","defineProperty","exports","value","Markers"],"mappings":"AAAA;;AACAA,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAAEC,EAAAA,KAAK,EAAE;AAAT,CAA7C;AACAD,OAAO,CAACE,OAAR,GAAkB,KAAK,CAAvB;AACA;;AACA,IAAIA,OAAJ;;AACA,CAAC,UAAUA,OAAV,EAAmB;AAChBA,EAAAA,OAAO,CAAC,OAAD,CAAP,GAAmB,KAAnB;AACAA,EAAAA,OAAO,CAAC,SAAD,CAAP,GAAqB,MAArB;AACAA,EAAAA,OAAO,CAAC,OAAD,CAAP,GAAmB,GAAnB;AACAA,EAAAA,OAAO,CAAC,KAAD,CAAP,GAAiB,IAAjB;AACH,CALD,EAKGA,OAAO,GAAGF,OAAO,CAACE,OAAR,KAAoBF,OAAO,CAACE,OAAR,GAAkB,EAAtC,CALb","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Markers = void 0;\n/** @deprecated */\nvar Markers;\n(function (Markers) {\n Markers[\"start\"] = \"/**\";\n Markers[\"nostart\"] = \"/***\";\n Markers[\"delim\"] = \"*\";\n Markers[\"end\"] = \"*/\";\n})(Markers = exports.Markers || (exports.Markers = {}));\n"],"file":"primitives.cjs"}
|
package/lib/primitives.d.ts
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/** @deprecated */
|
|
2
|
-
export declare enum Markers {
|
|
3
|
-
start = "/**",
|
|
4
|
-
nostart = "/***",
|
|
5
|
-
delim = "*",
|
|
6
|
-
end = "*/"
|
|
7
|
-
}
|
|
8
|
-
export interface BlockMarkers {
|
|
9
|
-
start: string;
|
|
10
|
-
nostart: string;
|
|
11
|
-
delim: string;
|
|
12
|
-
end: string;
|
|
13
|
-
}
|
|
14
|
-
export interface Block {
|
|
15
|
-
description: string;
|
|
16
|
-
tags: Spec[];
|
|
17
|
-
source: Line[];
|
|
18
|
-
problems: Problem[];
|
|
19
|
-
}
|
|
20
|
-
export interface Spec {
|
|
21
|
-
tag: string;
|
|
22
|
-
name: string;
|
|
23
|
-
default?: string;
|
|
24
|
-
type: string;
|
|
25
|
-
optional: boolean;
|
|
26
|
-
description: string;
|
|
27
|
-
problems: Problem[];
|
|
28
|
-
source: Line[];
|
|
29
|
-
}
|
|
30
|
-
export interface Line {
|
|
31
|
-
number: number;
|
|
32
|
-
source: string;
|
|
33
|
-
tokens: Tokens;
|
|
34
|
-
}
|
|
35
|
-
export interface Tokens {
|
|
36
|
-
start: string;
|
|
37
|
-
delimiter: string;
|
|
38
|
-
postDelimiter: string;
|
|
39
|
-
tag: string;
|
|
40
|
-
postTag: string;
|
|
41
|
-
name: string;
|
|
42
|
-
postName: string;
|
|
43
|
-
type: string;
|
|
44
|
-
postType: string;
|
|
45
|
-
description: string;
|
|
46
|
-
end: string;
|
|
47
|
-
lineEnd: string;
|
|
48
|
-
}
|
|
49
|
-
export interface Problem {
|
|
50
|
-
code: 'unhandled' | 'custom' | 'source:startline' | 'spec:tag:prefix' | 'spec:type:unpaired-curlies' | 'spec:name:unpaired-brackets' | 'spec:name:empty-name' | 'spec:name:invalid-default' | 'spec:name:empty-default';
|
|
51
|
-
message: string;
|
|
52
|
-
line: number;
|
|
53
|
-
critical: boolean;
|
|
54
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
function join(tokens) {
|
|
8
|
-
return tokens.start + tokens.delimiter + tokens.postDelimiter + tokens.tag + tokens.postTag + tokens.type + tokens.postType + tokens.name + tokens.postName + tokens.description + tokens.end + tokens.lineEnd;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
function getStringifier() {
|
|
12
|
-
return block => block.source.map(({
|
|
13
|
-
tokens
|
|
14
|
-
}) => join(tokens)).join('\n');
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
exports.default = getStringifier;
|
|
18
|
-
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["index.js"],"names":["Object","defineProperty","exports","value","join","tokens","start","delimiter","postDelimiter","tag","postTag","type","postType","name","postName","description","end","lineEnd","getStringifier","block","source","map","default"],"mappings":"AAAA;;AACAA,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAAEC,EAAAA,KAAK,EAAE;AAAT,CAA7C;;AACA,SAASC,IAAT,CAAcC,MAAd,EAAsB;AAClB,SAAQA,MAAM,CAACC,KAAP,GACJD,MAAM,CAACE,SADH,GAEJF,MAAM,CAACG,aAFH,GAGJH,MAAM,CAACI,GAHH,GAIJJ,MAAM,CAACK,OAJH,GAKJL,MAAM,CAACM,IALH,GAMJN,MAAM,CAACO,QANH,GAOJP,MAAM,CAACQ,IAPH,GAQJR,MAAM,CAACS,QARH,GASJT,MAAM,CAACU,WATH,GAUJV,MAAM,CAACW,GAVH,GAWJX,MAAM,CAACY,OAXX;AAYH;;AACD,SAASC,cAAT,GAA0B;AACtB,SAAQC,KAAD,IAAWA,KAAK,CAACC,MAAN,CAAaC,GAAb,CAAiB,CAAC;AAAEhB,IAAAA;AAAF,GAAD,KAAgBD,IAAI,CAACC,MAAD,CAArC,EAA+CD,IAA/C,CAAoD,IAApD,CAAlB;AACH;;AACDF,OAAO,CAACoB,OAAR,GAAkBJ,cAAlB","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction join(tokens) {\n return (tokens.start +\n tokens.delimiter +\n tokens.postDelimiter +\n tokens.tag +\n tokens.postTag +\n tokens.type +\n tokens.postType +\n tokens.name +\n tokens.postName +\n tokens.description +\n tokens.end +\n tokens.lineEnd);\n}\nfunction getStringifier() {\n return (block) => block.source.map(({ tokens }) => join(tokens)).join('\\n');\n}\nexports.default = getStringifier;\n"],"file":"index.cjs"}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
const util_js_1 = require("../util.cjs");
|
|
8
|
-
|
|
9
|
-
const zeroWidth = {
|
|
10
|
-
line: 0,
|
|
11
|
-
start: 0,
|
|
12
|
-
delimiter: 0,
|
|
13
|
-
postDelimiter: 0,
|
|
14
|
-
tag: 0,
|
|
15
|
-
postTag: 0,
|
|
16
|
-
name: 0,
|
|
17
|
-
postName: 0,
|
|
18
|
-
type: 0,
|
|
19
|
-
postType: 0,
|
|
20
|
-
description: 0,
|
|
21
|
-
end: 0,
|
|
22
|
-
lineEnd: 0
|
|
23
|
-
};
|
|
24
|
-
const headers = {
|
|
25
|
-
lineEnd: 'CR'
|
|
26
|
-
};
|
|
27
|
-
const fields = Object.keys(zeroWidth);
|
|
28
|
-
|
|
29
|
-
const repr = x => (0, util_js_1.isSpace)(x) ? `{${x.length}}` : x;
|
|
30
|
-
|
|
31
|
-
const frame = line => '|' + line.join('|') + '|';
|
|
32
|
-
|
|
33
|
-
const align = (width, tokens) => Object.keys(tokens).map(k => repr(tokens[k]).padEnd(width[k]));
|
|
34
|
-
|
|
35
|
-
function inspect({
|
|
36
|
-
source
|
|
37
|
-
}) {
|
|
38
|
-
var _a, _b;
|
|
39
|
-
|
|
40
|
-
if (source.length === 0) return '';
|
|
41
|
-
const width = Object.assign({}, zeroWidth);
|
|
42
|
-
|
|
43
|
-
for (const f of fields) width[f] = ((_a = headers[f]) !== null && _a !== void 0 ? _a : f).length;
|
|
44
|
-
|
|
45
|
-
for (const {
|
|
46
|
-
number,
|
|
47
|
-
tokens
|
|
48
|
-
} of source) {
|
|
49
|
-
width.line = Math.max(width.line, number.toString().length);
|
|
50
|
-
|
|
51
|
-
for (const k in tokens) width[k] = Math.max(width[k], repr(tokens[k]).length);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
const lines = [[], []];
|
|
55
|
-
|
|
56
|
-
for (const f of fields) lines[0].push(((_b = headers[f]) !== null && _b !== void 0 ? _b : f).padEnd(width[f]));
|
|
57
|
-
|
|
58
|
-
for (const f of fields) lines[1].push('-'.padEnd(width[f], '-'));
|
|
59
|
-
|
|
60
|
-
for (const {
|
|
61
|
-
number,
|
|
62
|
-
tokens
|
|
63
|
-
} of source) {
|
|
64
|
-
const line = number.toString().padStart(width.line);
|
|
65
|
-
lines.push([line, ...align(width, tokens)]);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
return lines.map(frame).join('\n');
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
exports.default = inspect;
|
|
72
|
-
//# sourceMappingURL=inspect.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["inspect.js"],"names":["Object","defineProperty","exports","value","util_js_1","require","zeroWidth","line","start","delimiter","postDelimiter","tag","postTag","name","postName","type","postType","description","end","lineEnd","headers","fields","keys","repr","x","isSpace","length","frame","join","align","width","tokens","map","k","padEnd","inspect","source","_a","_b","assign","f","number","Math","max","toString","lines","push","padStart","default"],"mappings":"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","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_js_1 = require(\"../util.js\");\nconst zeroWidth = {\n line: 0,\n start: 0,\n delimiter: 0,\n postDelimiter: 0,\n tag: 0,\n postTag: 0,\n name: 0,\n postName: 0,\n type: 0,\n postType: 0,\n description: 0,\n end: 0,\n lineEnd: 0,\n};\nconst headers = { lineEnd: 'CR' };\nconst fields = Object.keys(zeroWidth);\nconst repr = (x) => ((0, util_js_1.isSpace)(x) ? `{${x.length}}` : x);\nconst frame = (line) => '|' + line.join('|') + '|';\nconst align = (width, tokens) => Object.keys(tokens).map((k) => repr(tokens[k]).padEnd(width[k]));\nfunction inspect({ source }) {\n var _a, _b;\n if (source.length === 0)\n return '';\n const width = Object.assign({}, zeroWidth);\n for (const f of fields)\n width[f] = ((_a = headers[f]) !== null && _a !== void 0 ? _a : f).length;\n for (const { number, tokens } of source) {\n width.line = Math.max(width.line, number.toString().length);\n for (const k in tokens)\n width[k] = Math.max(width[k], repr(tokens[k]).length);\n }\n const lines = [[], []];\n for (const f of fields)\n lines[0].push(((_b = headers[f]) !== null && _b !== void 0 ? _b : f).padEnd(width[f]));\n for (const f of fields)\n lines[1].push('-'.padEnd(width[f], '-'));\n for (const { number, tokens } of source) {\n const line = number.toString().padStart(width.line);\n lines.push([line, ...align(width, tokens)]);\n }\n return lines.map(frame).join('\\n');\n}\nexports.default = inspect;\n"],"file":"inspect.cjs"}
|
package/lib/transforms/align.cjs
DELETED
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var __rest = this && this.__rest || function (s, e) {
|
|
4
|
-
var t = {};
|
|
5
|
-
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
7
|
-
|
|
8
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
9
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
Object.defineProperty(exports, "__esModule", {
|
|
15
|
-
value: true
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
const primitives_js_1 = require("../primitives.cjs");
|
|
19
|
-
|
|
20
|
-
const util_js_1 = require("../util.cjs");
|
|
21
|
-
|
|
22
|
-
const zeroWidth = {
|
|
23
|
-
start: 0,
|
|
24
|
-
tag: 0,
|
|
25
|
-
type: 0,
|
|
26
|
-
name: 0
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
const getWidth = (markers = primitives_js_1.Markers) => (w, {
|
|
30
|
-
tokens: t
|
|
31
|
-
}) => ({
|
|
32
|
-
start: t.delimiter === markers.start ? t.start.length : w.start,
|
|
33
|
-
tag: Math.max(w.tag, t.tag.length),
|
|
34
|
-
type: Math.max(w.type, t.type.length),
|
|
35
|
-
name: Math.max(w.name, t.name.length)
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
const space = len => ''.padStart(len, ' ');
|
|
39
|
-
|
|
40
|
-
function align(markers = primitives_js_1.Markers) {
|
|
41
|
-
let intoTags = false;
|
|
42
|
-
let w;
|
|
43
|
-
|
|
44
|
-
function update(line) {
|
|
45
|
-
const tokens = Object.assign({}, line.tokens);
|
|
46
|
-
if (tokens.tag !== '') intoTags = true;
|
|
47
|
-
const isEmpty = tokens.tag === '' && tokens.name === '' && tokens.type === '' && tokens.description === ''; // dangling '*/'
|
|
48
|
-
|
|
49
|
-
if (tokens.end === markers.end && isEmpty) {
|
|
50
|
-
tokens.start = space(w.start + 1);
|
|
51
|
-
return Object.assign(Object.assign({}, line), {
|
|
52
|
-
tokens
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
switch (tokens.delimiter) {
|
|
57
|
-
case markers.start:
|
|
58
|
-
tokens.start = space(w.start);
|
|
59
|
-
break;
|
|
60
|
-
|
|
61
|
-
case markers.delim:
|
|
62
|
-
tokens.start = space(w.start + 1);
|
|
63
|
-
break;
|
|
64
|
-
|
|
65
|
-
default:
|
|
66
|
-
tokens.delimiter = '';
|
|
67
|
-
tokens.start = space(w.start + 2);
|
|
68
|
-
// compensate delimiter
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
if (!intoTags) {
|
|
72
|
-
tokens.postDelimiter = tokens.description === '' ? '' : ' ';
|
|
73
|
-
return Object.assign(Object.assign({}, line), {
|
|
74
|
-
tokens
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
const nothingAfter = {
|
|
79
|
-
delim: false,
|
|
80
|
-
tag: false,
|
|
81
|
-
type: false,
|
|
82
|
-
name: false
|
|
83
|
-
};
|
|
84
|
-
|
|
85
|
-
if (tokens.description === '') {
|
|
86
|
-
nothingAfter.name = true;
|
|
87
|
-
tokens.postName = '';
|
|
88
|
-
|
|
89
|
-
if (tokens.name === '') {
|
|
90
|
-
nothingAfter.type = true;
|
|
91
|
-
tokens.postType = '';
|
|
92
|
-
|
|
93
|
-
if (tokens.type === '') {
|
|
94
|
-
nothingAfter.tag = true;
|
|
95
|
-
tokens.postTag = '';
|
|
96
|
-
|
|
97
|
-
if (tokens.tag === '') {
|
|
98
|
-
nothingAfter.delim = true;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
tokens.postDelimiter = nothingAfter.delim ? '' : ' ';
|
|
105
|
-
if (!nothingAfter.tag) tokens.postTag = space(w.tag - tokens.tag.length + 1);
|
|
106
|
-
if (!nothingAfter.type) tokens.postType = space(w.type - tokens.type.length + 1);
|
|
107
|
-
if (!nothingAfter.name) tokens.postName = space(w.name - tokens.name.length + 1);
|
|
108
|
-
return Object.assign(Object.assign({}, line), {
|
|
109
|
-
tokens
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
return _a => {
|
|
114
|
-
var {
|
|
115
|
-
source
|
|
116
|
-
} = _a,
|
|
117
|
-
fields = __rest(_a, ["source"]);
|
|
118
|
-
|
|
119
|
-
w = source.reduce(getWidth(markers), Object.assign({}, zeroWidth));
|
|
120
|
-
return (0, util_js_1.rewireSource)(Object.assign(Object.assign({}, fields), {
|
|
121
|
-
source: source.map(update)
|
|
122
|
-
}));
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
exports.default = align;
|
|
127
|
-
//# sourceMappingURL=align.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["align.js"],"names":["__rest","s","e","t","p","Object","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","defineProperty","exports","value","primitives_js_1","require","util_js_1","zeroWidth","start","tag","type","name","getWidth","markers","Markers","w","tokens","delimiter","Math","max","space","len","padStart","align","intoTags","update","line","assign","isEmpty","description","end","delim","postDelimiter","nothingAfter","postName","postType","postTag","_a","source","fields","reduce","rewireSource","map","default"],"mappings":"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","sourcesContent":["\"use strict\";\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst primitives_js_1 = require(\"../primitives.js\");\nconst util_js_1 = require(\"../util.js\");\nconst zeroWidth = {\n start: 0,\n tag: 0,\n type: 0,\n name: 0,\n};\nconst getWidth = (markers = primitives_js_1.Markers) => (w, { tokens: t }) => ({\n start: t.delimiter === markers.start ? t.start.length : w.start,\n tag: Math.max(w.tag, t.tag.length),\n type: Math.max(w.type, t.type.length),\n name: Math.max(w.name, t.name.length),\n});\nconst space = (len) => ''.padStart(len, ' ');\nfunction align(markers = primitives_js_1.Markers) {\n let intoTags = false;\n let w;\n function update(line) {\n const tokens = Object.assign({}, line.tokens);\n if (tokens.tag !== '')\n intoTags = true;\n const isEmpty = tokens.tag === '' &&\n tokens.name === '' &&\n tokens.type === '' &&\n tokens.description === '';\n // dangling '*/'\n if (tokens.end === markers.end && isEmpty) {\n tokens.start = space(w.start + 1);\n return Object.assign(Object.assign({}, line), { tokens });\n }\n switch (tokens.delimiter) {\n case markers.start:\n tokens.start = space(w.start);\n break;\n case markers.delim:\n tokens.start = space(w.start + 1);\n break;\n default:\n tokens.delimiter = '';\n tokens.start = space(w.start + 2); // compensate delimiter\n }\n if (!intoTags) {\n tokens.postDelimiter = tokens.description === '' ? '' : ' ';\n return Object.assign(Object.assign({}, line), { tokens });\n }\n const nothingAfter = {\n delim: false,\n tag: false,\n type: false,\n name: false,\n };\n if (tokens.description === '') {\n nothingAfter.name = true;\n tokens.postName = '';\n if (tokens.name === '') {\n nothingAfter.type = true;\n tokens.postType = '';\n if (tokens.type === '') {\n nothingAfter.tag = true;\n tokens.postTag = '';\n if (tokens.tag === '') {\n nothingAfter.delim = true;\n }\n }\n }\n }\n tokens.postDelimiter = nothingAfter.delim ? '' : ' ';\n if (!nothingAfter.tag)\n tokens.postTag = space(w.tag - tokens.tag.length + 1);\n if (!nothingAfter.type)\n tokens.postType = space(w.type - tokens.type.length + 1);\n if (!nothingAfter.name)\n tokens.postName = space(w.name - tokens.name.length + 1);\n return Object.assign(Object.assign({}, line), { tokens });\n }\n return (_a) => {\n var { source } = _a, fields = __rest(_a, [\"source\"]);\n w = source.reduce(getWidth(markers), Object.assign({}, zeroWidth));\n return (0, util_js_1.rewireSource)(Object.assign(Object.assign({}, fields), { source: source.map(update) }));\n };\n}\nexports.default = align;\n"],"file":"align.cjs"}
|