@thethracian/oxlint-config 0.3.1 → 0.3.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 +7 -0
- package/dist/codemods/arrow-body-style.d.ts.map +1 -1
- package/dist/codemods/arrow-body-style.js +29 -68
- package/dist/codemods/arrow-body-style.js.map +1 -1
- package/dist/codemods/comment-format.d.ts.map +1 -1
- package/dist/codemods/comment-format.js +22 -32
- package/dist/codemods/comment-format.js.map +1 -1
- package/dist/codemods/explicit-return-types.d.ts.map +1 -1
- package/dist/codemods/explicit-return-types.js +58 -167
- package/dist/codemods/explicit-return-types.js.map +1 -1
- package/dist/codemods/format-file-header.d.ts.map +1 -1
- package/dist/codemods/format-file-header.js +33 -72
- package/dist/codemods/format-file-header.js.map +1 -1
- package/dist/codemods/format-jsdoc-comments.d.ts.map +1 -1
- package/dist/codemods/format-jsdoc-comments.js +58 -66
- package/dist/codemods/format-jsdoc-comments.js.map +1 -1
- package/dist/codemods/function-declarations.d.ts.map +1 -1
- package/dist/codemods/function-declarations.js +45 -80
- package/dist/codemods/function-declarations.js.map +1 -1
- package/dist/codemods/inline-export-lists.d.ts.map +1 -1
- package/dist/codemods/inline-export-lists.js +60 -108
- package/dist/codemods/inline-export-lists.js.map +1 -1
- package/dist/codemods/internal-export-docs.d.ts.map +1 -1
- package/dist/codemods/internal-export-docs.js +21 -59
- package/dist/codemods/internal-export-docs.js.map +1 -1
- package/dist/codemods/no-ternary-branch-initializers.d.ts.map +1 -1
- package/dist/codemods/no-ternary-branch-initializers.js +72 -144
- package/dist/codemods/no-ternary-branch-initializers.js.map +1 -1
- package/dist/codemods/no-ternary-variable-initializers.d.ts.map +1 -1
- package/dist/codemods/no-ternary-variable-initializers.js +69 -152
- package/dist/codemods/no-ternary-variable-initializers.js.map +1 -1
- package/dist/codemods/no-ternary.d.ts.map +1 -1
- package/dist/codemods/no-ternary.js +44 -108
- package/dist/codemods/no-ternary.js.map +1 -1
- package/dist/codemods/rename-acronyms.d.ts.map +1 -1
- package/dist/codemods/rename-acronyms.js +73 -99
- package/dist/codemods/rename-acronyms.js.map +1 -1
- package/dist/codemods/run.d.ts.map +1 -1
- package/dist/codemods/run.js +15 -7
- package/dist/codemods/run.js.map +1 -1
- package/dist/codemods/sort-imports.d.ts.map +1 -1
- package/dist/codemods/sort-imports.js +52 -94
- package/dist/codemods/sort-imports.js.map +1 -1
- package/dist/rules/acronym-case.d.ts.map +1 -1
- package/dist/rules/acronym-case.js +68 -141
- package/dist/rules/acronym-case.js.map +1 -1
- package/dist/rules/acronyms-1.d.ts +1 -1
- package/dist/rules/acronyms-1.d.ts.map +1 -1
- package/dist/rules/acronyms-1.js +2 -402
- package/dist/rules/acronyms-1.js.map +1 -1
- package/dist/rules/acronyms-2.d.ts +1 -1
- package/dist/rules/acronyms-2.d.ts.map +1 -1
- package/dist/rules/acronyms-2.js +2 -402
- package/dist/rules/acronyms-2.js.map +1 -1
- package/dist/rules/acronyms-3.d.ts +1 -1
- package/dist/rules/acronyms-3.d.ts.map +1 -1
- package/dist/rules/acronyms-3.js +2 -402
- package/dist/rules/acronyms-3.js.map +1 -1
- package/dist/rules/acronyms-4.d.ts +1 -1
- package/dist/rules/acronyms-4.d.ts.map +1 -1
- package/dist/rules/acronyms-4.js +2 -372
- package/dist/rules/acronyms-4.js.map +1 -1
- package/dist/rules/acronyms.d.ts.map +1 -1
- package/dist/rules/acronyms.js +3 -6
- package/dist/rules/acronyms.js.map +1 -1
- package/dist/rules/boolean-prefix.d.ts.map +1 -1
- package/dist/rules/boolean-prefix.js +25 -71
- package/dist/rules/boolean-prefix.js.map +1 -1
- package/dist/rules/camel-case-identifiers.d.ts.map +1 -1
- package/dist/rules/camel-case-identifiers.js +15 -54
- package/dist/rules/camel-case-identifiers.js.map +1 -1
- package/dist/rules/char-class.d.ts +1 -1
- package/dist/rules/char-class.d.ts.map +1 -1
- package/dist/rules/char-class.js +16 -16
- package/dist/rules/char-class.js.map +1 -1
- package/dist/rules/diagnostic-guidance.d.ts.map +1 -1
- package/dist/rules/diagnostic-guidance.js +11 -20
- package/dist/rules/diagnostic-guidance.js.map +1 -1
- package/dist/rules/effect-default-ast.d.ts.map +1 -1
- package/dist/rules/effect-default-ast.js +35 -116
- package/dist/rules/effect-default-ast.js.map +1 -1
- package/dist/rules/effect-default-compat-rules.d.ts.map +1 -1
- package/dist/rules/effect-default-compat-rules.js +41 -79
- package/dist/rules/effect-default-compat-rules.js.map +1 -1
- package/dist/rules/effect-default-env-rules.d.ts.map +1 -1
- package/dist/rules/effect-default-env-rules.js +23 -29
- package/dist/rules/effect-default-env-rules.js.map +1 -1
- package/dist/rules/effect-default-fiber-helpers.d.ts.map +1 -1
- package/dist/rules/effect-default-fiber-helpers.js +12 -26
- package/dist/rules/effect-default-fiber-helpers.js.map +1 -1
- package/dist/rules/effect-default-floating-helpers.d.ts.map +1 -1
- package/dist/rules/effect-default-floating-helpers.js +59 -67
- package/dist/rules/effect-default-floating-helpers.js.map +1 -1
- package/dist/rules/effect-default-resource-helpers.d.ts.map +1 -1
- package/dist/rules/effect-default-resource-helpers.js +36 -44
- package/dist/rules/effect-default-resource-helpers.js.map +1 -1
- package/dist/rules/effect-default-safety-helpers.d.ts.map +1 -1
- package/dist/rules/effect-default-safety-helpers.js +29 -68
- package/dist/rules/effect-default-safety-helpers.js.map +1 -1
- package/dist/rules/effect-default-scan-helpers.d.ts.map +1 -1
- package/dist/rules/effect-default-scan-helpers.js +51 -70
- package/dist/rules/effect-default-scan-helpers.js.map +1 -1
- package/dist/rules/effect-default-schema-helpers.d.ts.map +1 -1
- package/dist/rules/effect-default-schema-helpers.js +32 -43
- package/dist/rules/effect-default-schema-helpers.js.map +1 -1
- package/dist/rules/effect-default-test-helpers.d.ts.map +1 -1
- package/dist/rules/effect-default-test-helpers.js +13 -25
- package/dist/rules/effect-default-test-helpers.js.map +1 -1
- package/dist/rules/effect-default-workflow-helpers.d.ts.map +1 -1
- package/dist/rules/effect-default-workflow-helpers.js +53 -113
- package/dist/rules/effect-default-workflow-helpers.js.map +1 -1
- package/dist/rules/effect-exported-declarations.d.ts.map +1 -1
- package/dist/rules/effect-exported-declarations.js +90 -177
- package/dist/rules/effect-exported-declarations.js.map +1 -1
- package/dist/rules/effect-path-options.d.ts.map +1 -1
- package/dist/rules/effect-path-options.js +48 -58
- package/dist/rules/effect-path-options.js.map +1 -1
- package/dist/rules/effect-rule-aliases.d.ts.map +1 -1
- package/dist/rules/effect-rule-aliases.js +43 -101
- package/dist/rules/effect-rule-aliases.js.map +1 -1
- package/dist/rules/effect-rule-core.d.ts.map +1 -1
- package/dist/rules/effect-rule-core.js +42 -78
- package/dist/rules/effect-rule-core.js.map +1 -1
- package/dist/rules/effect-rule-names.d.ts +2 -2
- package/dist/rules/effect-rule-names.d.ts.map +1 -1
- package/dist/rules/effect-rule-names.js +3 -145
- package/dist/rules/effect-rule-names.js.map +1 -1
- package/dist/rules/effect-source-comments.d.ts.map +1 -1
- package/dist/rules/effect-source-comments.js +112 -167
- package/dist/rules/effect-source-comments.js.map +1 -1
- package/dist/rules/effect-source-navigation.d.ts.map +1 -1
- package/dist/rules/effect-source-navigation.js +103 -185
- package/dist/rules/effect-source-navigation.js.map +1 -1
- package/dist/rules/effect-source-regex-scan.d.ts +13 -0
- package/dist/rules/effect-source-regex-scan.d.ts.map +1 -0
- package/dist/rules/effect-source-regex-scan.js +126 -0
- package/dist/rules/effect-source-regex-scan.js.map +1 -0
- package/dist/rules/effect-source-scan.d.ts +1 -12
- package/dist/rules/effect-source-scan.d.ts.map +1 -1
- package/dist/rules/effect-source-scan.js +93 -239
- package/dist/rules/effect-source-scan.js.map +1 -1
- package/dist/rules/effect-strict-ast-specs.d.ts.map +1 -1
- package/dist/rules/effect-strict-ast-specs.js +11 -8
- package/dist/rules/effect-strict-ast-specs.js.map +1 -1
- package/dist/rules/effect-strict-boundary-helpers.d.ts.map +1 -1
- package/dist/rules/effect-strict-boundary-helpers.js +51 -87
- package/dist/rules/effect-strict-boundary-helpers.js.map +1 -1
- package/dist/rules/effect-strict-core-specs.d.ts.map +1 -1
- package/dist/rules/effect-strict-core-specs.js +8 -6
- package/dist/rules/effect-strict-core-specs.js.map +1 -1
- package/dist/rules/effect-strict-external-helpers.d.ts.map +1 -1
- package/dist/rules/effect-strict-external-helpers.js +20 -40
- package/dist/rules/effect-strict-external-helpers.js.map +1 -1
- package/dist/rules/effect-strict-helpers.d.ts.map +1 -1
- package/dist/rules/effect-strict-helpers.js +47 -72
- package/dist/rules/effect-strict-helpers.js.map +1 -1
- package/dist/rules/effect-strict-internals.d.ts.map +1 -1
- package/dist/rules/effect-strict-internals.js +46 -101
- package/dist/rules/effect-strict-internals.js.map +1 -1
- package/dist/rules/effect-strict-segment-helpers.d.ts.map +1 -1
- package/dist/rules/effect-strict-segment-helpers.js +103 -174
- package/dist/rules/effect-strict-segment-helpers.js.map +1 -1
- package/dist/rules/effect-strict.d.ts.map +1 -1
- package/dist/rules/effect-strict.js +3 -2
- package/dist/rules/effect-strict.js.map +1 -1
- package/dist/rules/max-import-depth.d.ts +2 -1
- package/dist/rules/max-import-depth.d.ts.map +1 -1
- package/dist/rules/max-import-depth.js +13 -15
- package/dist/rules/max-import-depth.js.map +1 -1
- package/dist/rules/max-line-length.d.ts.map +1 -1
- package/dist/rules/max-line-length.js +26 -39
- package/dist/rules/max-line-length.js.map +1 -1
- package/dist/rules/no-commented-out-code.d.ts.map +1 -1
- package/dist/rules/no-commented-out-code.js +53 -156
- package/dist/rules/no-commented-out-code.js.map +1 -1
- package/dist/rules/pascal-case-types.d.ts.map +1 -1
- package/dist/rules/pascal-case-types.js +16 -70
- package/dist/rules/pascal-case-types.js.map +1 -1
- package/dist/rules/plugin-commented-out-code-rule.d.ts.map +1 -1
- package/dist/rules/plugin-commented-out-code-rule.js +50 -77
- package/dist/rules/plugin-commented-out-code-rule.js.map +1 -1
- package/dist/rules/plugin.d.ts.map +1 -1
- package/dist/rules/plugin.js +14 -35
- package/dist/rules/plugin.js.map +1 -1
- package/dist/rules/private-underscore.d.ts +3 -1
- package/dist/rules/private-underscore.d.ts.map +1 -1
- package/dist/rules/private-underscore.js +7 -9
- package/dist/rules/private-underscore.js.map +1 -1
- package/dist/rules/require-file-doc.d.ts.map +1 -1
- package/dist/rules/require-file-doc.js +28 -94
- package/dist/rules/require-file-doc.js.map +1 -1
- package/dist/rules/require-function-doc-ignored-text.d.ts.map +1 -1
- package/dist/rules/require-function-doc-ignored-text.js +6 -9
- package/dist/rules/require-function-doc-ignored-text.js.map +1 -1
- package/dist/rules/require-function-doc-local-exports.d.ts.map +1 -1
- package/dist/rules/require-function-doc-local-exports.js +16 -58
- package/dist/rules/require-function-doc-local-exports.js.map +1 -1
- package/dist/rules/require-function-doc.d.ts.map +1 -1
- package/dist/rules/require-function-doc.js +87 -196
- package/dist/rules/require-function-doc.js.map +1 -1
- package/dist/rules/source-cache.d.ts.map +1 -1
- package/dist/rules/source-cache.js +23 -33
- package/dist/rules/source-cache.js.map +1 -1
- package/package.json +3 -1
|
@@ -1,93 +1,69 @@
|
|
|
1
|
+
/* -------------------------------------------------------------------------- */
|
|
2
|
+
/* Conservative codemod for local export-list rewrites. */
|
|
3
|
+
/* -------------------------------------------------------------------------- */
|
|
4
|
+
import { Array, HashSet, Option, Order, Predicate, pipe } from 'effect';
|
|
1
5
|
import jscodeshift from 'jscodeshift';
|
|
2
6
|
const exportKeyword = 'export ';
|
|
3
7
|
const codemodAPI = jscodeshift.withParser('ts');
|
|
4
|
-
const isObjectRecord = (value) =>
|
|
5
|
-
const applyReplacements = (source, replacements) =>
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const nodeStart = (node) => {
|
|
9
|
-
if (isObjectRecord(node)) {
|
|
10
|
-
const { start } = node;
|
|
11
|
-
if (typeof start === 'number') {
|
|
12
|
-
return start;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
throw new Error('jscodeshift node is missing a start offset');
|
|
16
|
-
};
|
|
17
|
-
const nodeEnd = (node) => {
|
|
18
|
-
if (isObjectRecord(node)) {
|
|
19
|
-
const { end } = node;
|
|
20
|
-
if (typeof end === 'number') {
|
|
21
|
-
return end;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
throw new Error('jscodeshift node is missing an end offset');
|
|
25
|
-
};
|
|
8
|
+
const isObjectRecord = (value) => Predicate.isObject(value);
|
|
9
|
+
const applyReplacements = (source, replacements) => pipe(replacements, Array.sortWith((replacement) => -replacement.start, Order.number), Array.reduce(source, (current, replacement) => current.slice(0, replacement.start) + replacement.text + current.slice(replacement.end)));
|
|
10
|
+
const nodeStart = (node) => pipe(Option.some(node), Option.filter(isObjectRecord), Option.flatMapNullable((value) => value.start), Option.filter(Predicate.isNumber), Option.getOrThrowWith(() => new Error('jscodeshift node is missing a start offset')));
|
|
11
|
+
const nodeEnd = (node) => pipe(Option.some(node), Option.filter(isObjectRecord), Option.flatMapNullable((value) => value.end), Option.filter(Predicate.isNumber), Option.getOrThrowWith(() => new Error('jscodeshift node is missing an end offset')));
|
|
26
12
|
const lineEndAfter = (source, position) => {
|
|
27
13
|
const newline = source.indexOf('\n', position);
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
14
|
+
return pipe(Option.some(newline), Option.map((value) => {
|
|
15
|
+
if (value === -1) {
|
|
16
|
+
return source.length;
|
|
17
|
+
}
|
|
18
|
+
return value + 1;
|
|
19
|
+
}), Option.getOrElse(() => source.length));
|
|
32
20
|
};
|
|
33
21
|
const isIdentifier = (node) => isObjectRecord(node) && node.type === 'Identifier' && typeof node.name === 'string';
|
|
34
22
|
const isExportNamedDeclaration = (statement) => statement.type === 'ExportNamedDeclaration';
|
|
35
23
|
const isVariableDeclaration = (declaration) => declaration.type === 'VariableDeclaration';
|
|
36
24
|
const isVariableDeclarator = (declaration) => isObjectRecord(declaration) && 'id' in declaration;
|
|
37
|
-
const exportSpecifierName = (specifier) => {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
const { exported, local } = specifier;
|
|
25
|
+
const exportSpecifierName = (specifier) => pipe(Option.some(specifier), Option.filter(isObjectRecord), Option.filter((value) => value.type === 'ExportSpecifier'), Option.flatMap((value) => pipe(Option.all({
|
|
26
|
+
exported: Option.fromNullable(value.exported),
|
|
27
|
+
local: Option.fromNullable(value.local),
|
|
28
|
+
}), Option.filter(({ exported, local }) => isIdentifier(local) && isIdentifier(exported)), Option.filter(({ exported, local }) => {
|
|
42
29
|
if (!isIdentifier(local) || !isIdentifier(exported)) {
|
|
43
|
-
return
|
|
30
|
+
return false;
|
|
44
31
|
}
|
|
45
|
-
|
|
46
|
-
|
|
32
|
+
return local.name === exported.name;
|
|
33
|
+
}), Option.map(({ local }) => {
|
|
34
|
+
if (!isIdentifier(local)) {
|
|
35
|
+
return '';
|
|
47
36
|
}
|
|
48
37
|
return local.name;
|
|
49
|
-
};
|
|
38
|
+
}), Option.filter((name) => name.length > 0))), Option.getOrUndefined);
|
|
50
39
|
const exportSpecifierNames = (specifiers) => {
|
|
51
|
-
const names =
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
if (!name) {
|
|
55
|
-
return undefined;
|
|
56
|
-
}
|
|
57
|
-
names.push(name);
|
|
40
|
+
const names = pipe(specifiers, Array.map((specifier) => Option.fromNullable(exportSpecifierName(specifier))));
|
|
41
|
+
if (names.some(Option.isNone)) {
|
|
42
|
+
return undefined;
|
|
58
43
|
}
|
|
59
|
-
return names;
|
|
44
|
+
return pipe(names, Array.filterMap((name) => name));
|
|
60
45
|
};
|
|
61
46
|
const localExportListFor = (source, node) => {
|
|
62
47
|
const specifiers = node.specifiers ?? [];
|
|
63
48
|
if (node.source || node.declaration || specifiers.length === 0) {
|
|
64
49
|
return undefined;
|
|
65
50
|
}
|
|
66
|
-
|
|
67
|
-
if (!names) {
|
|
68
|
-
return undefined;
|
|
69
|
-
}
|
|
70
|
-
return {
|
|
51
|
+
return pipe(Option.fromNullable(exportSpecifierNames(specifiers)), Option.map((names) => ({
|
|
71
52
|
names,
|
|
72
53
|
range: {
|
|
73
54
|
end: lineEndAfter(source, nodeEnd(node)),
|
|
74
55
|
start: nodeStart(node),
|
|
75
56
|
text: '',
|
|
76
57
|
},
|
|
77
|
-
};
|
|
58
|
+
})), Option.getOrUndefined);
|
|
78
59
|
};
|
|
79
|
-
const variableStatementNames = (node) => node.declarations.
|
|
60
|
+
const variableStatementNames = (node) => pipe(node.declarations, Array.filterMap((declaration) => {
|
|
80
61
|
if (isVariableDeclarator(declaration) && isIdentifier(declaration.id)) {
|
|
81
|
-
return
|
|
82
|
-
}
|
|
83
|
-
return [];
|
|
84
|
-
});
|
|
85
|
-
const declarationName = (node) => {
|
|
86
|
-
if (!isObjectRecord(node) || !isIdentifier(node.id)) {
|
|
87
|
-
return undefined;
|
|
62
|
+
return Option.some(declaration.id.name);
|
|
88
63
|
}
|
|
89
|
-
return
|
|
90
|
-
};
|
|
64
|
+
return Option.none();
|
|
65
|
+
}));
|
|
66
|
+
const declarationName = (node) => pipe(Option.some(node), Option.filter(isObjectRecord), Option.flatMap((value) => Option.fromNullable(value.id)), Option.filter(isIdentifier), Option.map((value) => value.name), Option.getOrUndefined);
|
|
91
67
|
const unwrappedDeclaration = (node) => {
|
|
92
68
|
if (isExportNamedDeclaration(node)) {
|
|
93
69
|
return node.declaration ?? undefined;
|
|
@@ -97,56 +73,32 @@ const unwrappedDeclaration = (node) => {
|
|
|
97
73
|
}
|
|
98
74
|
return undefined;
|
|
99
75
|
};
|
|
100
|
-
const declarationNames = (node) => {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
return
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
76
|
+
const declarationNames = (node) => pipe(Option.fromNullable(unwrappedDeclaration(node)), Option.match({
|
|
77
|
+
onNone: () => [],
|
|
78
|
+
onSome: (declaration) => {
|
|
79
|
+
if (isVariableDeclaration(declaration)) {
|
|
80
|
+
return variableStatementNames(declaration);
|
|
81
|
+
}
|
|
82
|
+
return pipe(Option.fromNullable(declarationName(declaration)), Option.match({
|
|
83
|
+
onNone: () => [],
|
|
84
|
+
onSome: (name) => [name],
|
|
85
|
+
}));
|
|
86
|
+
},
|
|
87
|
+
}));
|
|
88
|
+
const inlineExportReplacement = (statement) => pipe(Option.some(statement), Option.filter((value) => !isExportNamedDeclaration(value)), Option.map((value) => ({
|
|
89
|
+
end: nodeStart(value),
|
|
90
|
+
start: nodeStart(value),
|
|
91
|
+
text: exportKeyword,
|
|
92
|
+
})), Option.getOrUndefined);
|
|
93
|
+
const collectExportLists = (source, statements) => pipe(statements, Array.filterMap((statement) => {
|
|
115
94
|
if (isExportNamedDeclaration(statement)) {
|
|
116
|
-
return
|
|
95
|
+
return Option.fromNullable(localExportListFor(source, statement));
|
|
117
96
|
}
|
|
118
|
-
return
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
text: exportKeyword,
|
|
122
|
-
};
|
|
123
|
-
};
|
|
124
|
-
const collectExportLists = (source, statements) => statements.flatMap((statement) => {
|
|
125
|
-
if (!isExportNamedDeclaration(statement)) {
|
|
126
|
-
return [];
|
|
127
|
-
}
|
|
128
|
-
const exportList = localExportListFor(source, statement);
|
|
129
|
-
if (exportList) {
|
|
130
|
-
return [exportList];
|
|
131
|
-
}
|
|
132
|
-
return [];
|
|
133
|
-
});
|
|
134
|
-
const sourceProgram = (source) => {
|
|
135
|
-
const [programPath] = codemodAPI(source).find(codemodAPI.Program).paths();
|
|
136
|
-
if (!programPath) {
|
|
137
|
-
return undefined;
|
|
138
|
-
}
|
|
139
|
-
return programPath.value;
|
|
140
|
-
};
|
|
97
|
+
return Option.none();
|
|
98
|
+
}));
|
|
99
|
+
const sourceProgram = (source) => pipe(codemodAPI(source).find(codemodAPI.Program).paths(), Array.head, Option.map((programPath) => programPath.value), Option.getOrUndefined);
|
|
141
100
|
const appendInlineExportReplacements = (replacements, statements, names) => {
|
|
142
|
-
|
|
143
|
-
if (declarationNames(statement).some((name) => names.has(name))) {
|
|
144
|
-
const replacement = inlineExportReplacement(statement);
|
|
145
|
-
if (replacement) {
|
|
146
|
-
replacements.push(replacement);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
}
|
|
101
|
+
pipe(statements, Array.filter((statement) => pipe(declarationNames(statement), Array.some((name) => HashSet.has(names, name)))), Array.filterMap((statement) => Option.fromNullable(inlineExportReplacement(statement))), Array.map((replacement) => replacements.push(replacement)));
|
|
150
102
|
};
|
|
151
103
|
const collectExportListReplacements = (source) => {
|
|
152
104
|
const program = sourceProgram(source);
|
|
@@ -154,8 +106,8 @@ const collectExportListReplacements = (source) => {
|
|
|
154
106
|
return [];
|
|
155
107
|
}
|
|
156
108
|
const exportLists = collectExportLists(source, program.body);
|
|
157
|
-
const names =
|
|
158
|
-
const replacements = exportLists.map((exportList) => exportList.range);
|
|
109
|
+
const names = HashSet.fromIterable(pipe(exportLists, Array.flatMap((exportList) => exportList.names)));
|
|
110
|
+
const replacements = pipe(exportLists, Array.map((exportList) => exportList.range));
|
|
159
111
|
appendInlineExportReplacements(replacements, program.body, names);
|
|
160
112
|
return replacements;
|
|
161
113
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inline-export-lists.js","sourceRoot":"","sources":["../../src/codemods/inline-export-lists.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"inline-export-lists.js","sourceRoot":"","sources":["../../src/codemods/inline-export-lists.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal-export-docs.d.ts","sourceRoot":"","sources":["../../src/codemods/internal-export-docs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"internal-export-docs.d.ts","sourceRoot":"","sources":["../../src/codemods/internal-export-docs.ts"],"names":[],"mappings":"AAkIA;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,QAAQ,MAAM,KAAG,MAQpD,CAAC"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/* -------------------------------------------------------------------------- */
|
|
2
|
+
/* Codemod for internal exported declaration documentation. */
|
|
3
|
+
/* -------------------------------------------------------------------------- */
|
|
4
|
+
import { Array, Option, Order, Predicate, pipe } from 'effect';
|
|
1
5
|
import { formatJSDoc } from './comment-format.js';
|
|
2
6
|
import jscodeshift from 'jscodeshift';
|
|
3
7
|
const internalExportDoc = formatJSDoc({
|
|
@@ -6,16 +10,8 @@ const internalExportDoc = formatJSDoc({
|
|
|
6
10
|
});
|
|
7
11
|
const internalHeaderScanLength = 240;
|
|
8
12
|
const codemodAPI = jscodeshift.withParser('ts');
|
|
9
|
-
const isObjectRecord = (value) =>
|
|
10
|
-
const nodeStart = (node) =>
|
|
11
|
-
if (isObjectRecord(node)) {
|
|
12
|
-
const { start } = node;
|
|
13
|
-
if (typeof start === 'number') {
|
|
14
|
-
return start;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
throw new Error('jscodeshift node is missing a start offset');
|
|
18
|
-
};
|
|
13
|
+
const isObjectRecord = (value) => Predicate.isObject(value);
|
|
14
|
+
const nodeStart = (node) => pipe(Option.some(node), Option.filter(isObjectRecord), Option.flatMapNullable((value) => value.start), Option.filter(Predicate.isNumber), Option.getOrThrowWith(() => new Error('jscodeshift node is missing a start offset')));
|
|
19
15
|
const hasInternalFileHeader = (source) => {
|
|
20
16
|
const trimmedStart = source.trimStart();
|
|
21
17
|
return (trimmedStart.startsWith('/**') &&
|
|
@@ -24,70 +20,36 @@ const hasInternalFileHeader = (source) => {
|
|
|
24
20
|
const isExportedDeclarationStatement = (statement) => statement.type === 'ExportNamedDeclaration' &&
|
|
25
21
|
isObjectRecord(statement) &&
|
|
26
22
|
Boolean(statement.declaration);
|
|
27
|
-
const commentStart = (comment) =>
|
|
28
|
-
|
|
29
|
-
const { start } = comment;
|
|
30
|
-
if (typeof start === 'number') {
|
|
31
|
-
return start;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
return undefined;
|
|
35
|
-
};
|
|
36
|
-
const commentEnd = (comment) => {
|
|
37
|
-
if (isObjectRecord(comment)) {
|
|
38
|
-
const { end } = comment;
|
|
39
|
-
if (typeof end === 'number') {
|
|
40
|
-
return end;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
return undefined;
|
|
44
|
-
};
|
|
23
|
+
const commentStart = (comment) => pipe(Option.some(comment), Option.filter(isObjectRecord), Option.flatMapNullable((value) => value.start), Option.filter(Predicate.isNumber), Option.getOrUndefined);
|
|
24
|
+
const commentEnd = (comment) => pipe(Option.some(comment), Option.filter(isObjectRecord), Option.flatMapNullable((value) => value.end), Option.filter(Predicate.isNumber), Option.getOrUndefined);
|
|
45
25
|
const isJSDocComment = (source, comment) => {
|
|
46
26
|
const start = commentStart(comment);
|
|
47
|
-
|
|
48
|
-
return false;
|
|
49
|
-
}
|
|
50
|
-
return source[start + 2] === '*';
|
|
27
|
+
return pipe(Option.some(comment), Option.filter(isObjectRecord), Option.filter((value) => value.type === 'CommentBlock'), Option.flatMap(() => Option.fromNullable(start)), Option.exists((value) => source[value + 2] === '*'));
|
|
51
28
|
};
|
|
52
29
|
const hasDeclarationJSDoc = (source, statement) => {
|
|
53
30
|
const comments = statement.comments ?? [];
|
|
54
31
|
const declarationStart = nodeStart(statement);
|
|
55
|
-
return comments.some((comment) => {
|
|
32
|
+
return pipe(comments, Array.some((comment) => {
|
|
56
33
|
const start = commentStart(comment);
|
|
57
34
|
const end = commentEnd(comment);
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
return source.slice(end, declarationStart).trim() === '';
|
|
65
|
-
});
|
|
35
|
+
return pipe(Option.all({
|
|
36
|
+
end: Option.fromNullable(end),
|
|
37
|
+
start: Option.fromNullable(start),
|
|
38
|
+
}), Option.filter(({ start: value }) => value !== 0), Option.exists(({ end: value }) => isJSDocComment(source, comment) && source.slice(value, declarationStart).trim() === ''));
|
|
39
|
+
}));
|
|
66
40
|
};
|
|
67
|
-
const applyInsertions = (source, insertions) =>
|
|
68
|
-
.sort((left, right) => right.position - left.position)
|
|
69
|
-
.reduce((current, insertion) => current.slice(0, insertion.position) + insertion.text + current.slice(insertion.position), source);
|
|
41
|
+
const applyInsertions = (source, insertions) => pipe(insertions, Array.sortWith((insertion) => -insertion.position, Order.number), Array.reduce(source, (current, insertion) => current.slice(0, insertion.position) + insertion.text + current.slice(insertion.position)));
|
|
70
42
|
const internalExportDocInsertions = (source) => {
|
|
71
43
|
const program = codemodAPI(source).find(codemodAPI.Program).paths()[0]?.value;
|
|
72
|
-
|
|
73
|
-
return [];
|
|
74
|
-
}
|
|
75
|
-
return program.body.flatMap((statement) => {
|
|
76
|
-
if (!isExportedDeclarationStatement(statement) || hasDeclarationJSDoc(source, statement)) {
|
|
77
|
-
return [];
|
|
78
|
-
}
|
|
79
|
-
return [{ position: nodeStart(statement), text: internalExportDoc }];
|
|
80
|
-
});
|
|
44
|
+
return pipe(Option.fromNullable(program), Option.map((value) => pipe(value.body, Array.filter((statement) => isExportedDeclarationStatement(statement) && !hasDeclarationJSDoc(source, statement)), Array.map((statement) => ({ position: nodeStart(statement), text: internalExportDoc })))), Option.getOrElse(() => []));
|
|
81
45
|
};
|
|
82
46
|
/**
|
|
83
47
|
* Adds explicit declaration-level `@internal` JSDoc to exports in internal files.
|
|
84
48
|
*
|
|
85
49
|
* @internal
|
|
86
50
|
*/
|
|
87
|
-
export const addInternalExportDocs = (source) => {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
return applyInsertions(source, internalExportDocInsertions(source));
|
|
92
|
-
};
|
|
51
|
+
export const addInternalExportDocs = (source) => pipe(Option.some(source), Option.filter((value) => hasInternalFileHeader(value) && value.includes('export ')), Option.match({
|
|
52
|
+
onNone: () => source,
|
|
53
|
+
onSome: (value) => applyInsertions(value, internalExportDocInsertions(value)),
|
|
54
|
+
}));
|
|
93
55
|
//# sourceMappingURL=internal-export-docs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal-export-docs.js","sourceRoot":"","sources":["../../src/codemods/internal-export-docs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"internal-export-docs.js","sourceRoot":"","sources":["../../src/codemods/internal-export-docs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-ternary-branch-initializers.d.ts","sourceRoot":"","sources":["../../src/codemods/no-ternary-branch-initializers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"no-ternary-branch-initializers.d.ts","sourceRoot":"","sources":["../../src/codemods/no-ternary-branch-initializers.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAKV,SAAS,EAGV,MAAM,aAAa,CAAC;AAErB,UAAU,WAAW;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AA+WD;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,GAC1C,QAAQ,MAAM,EACd,YAAY,SAAS,SAAS,EAAE,EAChC,cAAc,WAAW,EAAE,KAC1B,IAmBF,CAAC"}
|