eslint-plugin-ts-data-forge 0.1.0 → 0.1.1
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/dist/index.d.mts +5 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +3 -0
- package/dist/index.mjs.map +1 -0
- package/dist/plugin.d.mts +3 -0
- package/dist/plugin.d.mts.map +1 -0
- package/dist/plugin.mjs +11 -0
- package/dist/plugin.mjs.map +1 -0
- package/dist/rule-types.d.mts +279 -0
- package/dist/rule-types.d.mts.map +1 -0
- package/dist/rule-types.mjs +2 -0
- package/dist/rule-types.mjs.map +1 -0
- package/dist/rules/ast-utils.d.mts +29 -0
- package/dist/rules/ast-utils.d.mts.map +1 -0
- package/dist/rules/ast-utils.mjs +54 -0
- package/dist/rules/ast-utils.mjs.map +1 -0
- package/dist/rules/branded-number-types.d.mts +5 -0
- package/dist/rules/branded-number-types.d.mts.map +1 -0
- package/dist/rules/branded-number-types.mjs +40 -0
- package/dist/rules/branded-number-types.mjs.map +1 -0
- package/dist/rules/constants.d.mts +2 -0
- package/dist/rules/constants.d.mts.map +1 -0
- package/dist/rules/constants.mjs +4 -0
- package/dist/rules/constants.mjs.map +1 -0
- package/dist/rules/import-utils.d.mts +30 -0
- package/dist/rules/import-utils.d.mts.map +1 -0
- package/dist/rules/import-utils.mjs +61 -0
- package/dist/rules/import-utils.mjs.map +1 -0
- package/dist/rules/index.d.mts +2 -0
- package/dist/rules/index.d.mts.map +1 -0
- package/dist/rules/index.mjs +2 -0
- package/dist/rules/index.mjs.map +1 -0
- package/dist/rules/no-unnecessary-type-guard.d.mts +11 -0
- package/dist/rules/no-unnecessary-type-guard.d.mts.map +1 -0
- package/dist/rules/no-unnecessary-type-guard.mjs +278 -0
- package/dist/rules/no-unnecessary-type-guard.mjs.map +1 -0
- package/dist/rules/prefer-arr-is-array.d.mts +6 -0
- package/dist/rules/prefer-arr-is-array.d.mts.map +1 -0
- package/dist/rules/prefer-arr-is-array.mjs +57 -0
- package/dist/rules/prefer-arr-is-array.mjs.map +1 -0
- package/dist/rules/prefer-arr-is-bounded-length-array.d.mts +6 -0
- package/dist/rules/prefer-arr-is-bounded-length-array.d.mts.map +1 -0
- package/dist/rules/prefer-arr-is-bounded-length-array.mjs +89 -0
- package/dist/rules/prefer-arr-is-bounded-length-array.mjs.map +1 -0
- package/dist/rules/prefer-arr-is-fixed-length-array.d.mts +6 -0
- package/dist/rules/prefer-arr-is-fixed-length-array.d.mts.map +1 -0
- package/dist/rules/prefer-arr-is-fixed-length-array.mjs +87 -0
- package/dist/rules/prefer-arr-is-fixed-length-array.mjs.map +1 -0
- package/dist/rules/prefer-arr-is-max-length-array.d.mts +6 -0
- package/dist/rules/prefer-arr-is-max-length-array.d.mts.map +1 -0
- package/dist/rules/prefer-arr-is-max-length-array.mjs +83 -0
- package/dist/rules/prefer-arr-is-max-length-array.mjs.map +1 -0
- package/dist/rules/prefer-arr-is-min-length-array.d.mts +6 -0
- package/dist/rules/prefer-arr-is-min-length-array.d.mts.map +1 -0
- package/dist/rules/prefer-arr-is-min-length-array.mjs +83 -0
- package/dist/rules/prefer-arr-is-min-length-array.mjs.map +1 -0
- package/dist/rules/prefer-arr-is-non-empty.d.mts +6 -0
- package/dist/rules/prefer-arr-is-non-empty.d.mts.map +1 -0
- package/dist/rules/prefer-arr-is-non-empty.mjs +80 -0
- package/dist/rules/prefer-arr-is-non-empty.mjs.map +1 -0
- package/dist/rules/prefer-arr-sum.d.mts +6 -0
- package/dist/rules/prefer-arr-sum.d.mts.map +1 -0
- package/dist/rules/prefer-arr-sum.mjs +136 -0
- package/dist/rules/prefer-arr-sum.mjs.map +1 -0
- package/dist/rules/prefer-as-int.d.mts +6 -0
- package/dist/rules/prefer-as-int.d.mts.map +1 -0
- package/dist/rules/prefer-as-int.mjs +77 -0
- package/dist/rules/prefer-as-int.mjs.map +1 -0
- package/dist/rules/prefer-canonical-array-slicing.d.mts +6 -0
- package/dist/rules/prefer-canonical-array-slicing.d.mts.map +1 -0
- package/dist/rules/prefer-canonical-array-slicing.mjs +362 -0
- package/dist/rules/prefer-canonical-array-slicing.mjs.map +1 -0
- package/dist/rules/prefer-comparison-over-nullish-guard.d.mts +6 -0
- package/dist/rules/prefer-comparison-over-nullish-guard.d.mts.map +1 -0
- package/dist/rules/prefer-comparison-over-nullish-guard.mjs +80 -0
- package/dist/rules/prefer-comparison-over-nullish-guard.mjs.map +1 -0
- package/dist/rules/prefer-is-non-null-object.d.mts +6 -0
- package/dist/rules/prefer-is-non-null-object.d.mts.map +1 -0
- package/dist/rules/prefer-is-non-null-object.mjs +81 -0
- package/dist/rules/prefer-is-non-null-object.mjs.map +1 -0
- package/dist/rules/prefer-is-record-and-has-key.d.mts +6 -0
- package/dist/rules/prefer-is-record-and-has-key.d.mts.map +1 -0
- package/dist/rules/prefer-is-record-and-has-key.mjs +97 -0
- package/dist/rules/prefer-is-record-and-has-key.mjs.map +1 -0
- package/dist/rules/prefer-num-safe-parse-float.d.mts +14 -0
- package/dist/rules/prefer-num-safe-parse-float.d.mts.map +1 -0
- package/dist/rules/prefer-num-safe-parse-float.mjs +84 -0
- package/dist/rules/prefer-num-safe-parse-float.mjs.map +1 -0
- package/dist/rules/prefer-num-safe-parse-int.d.mts +14 -0
- package/dist/rules/prefer-num-safe-parse-int.d.mts.map +1 -0
- package/dist/rules/prefer-num-safe-parse-int.mjs +88 -0
- package/dist/rules/prefer-num-safe-parse-int.mjs.map +1 -0
- package/dist/rules/prefer-range-for-loop.d.mts +6 -0
- package/dist/rules/prefer-range-for-loop.d.mts.map +1 -0
- package/dist/rules/prefer-range-for-loop.mjs +103 -0
- package/dist/rules/prefer-range-for-loop.mjs.map +1 -0
- package/dist/rules/rules.d.mts +21 -0
- package/dist/rules/rules.d.mts.map +1 -0
- package/dist/rules/rules.mjs +38 -0
- package/dist/rules/rules.mjs.map +1 -0
- package/dist/types.d.mts +4 -0
- package/dist/types.d.mts.map +1 -0
- package/dist/types.mjs +2 -0
- package/dist/types.mjs.map +1 -0
- package/package.json +20 -20
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prefer-range-for-loop.mjs","sources":["../../src/rules/prefer-range-for-loop.mts"],"sourcesContent":["import {\n AST_NODE_TYPES,\n type TSESLint,\n type TSESTree,\n} from '@typescript-eslint/utils';\nimport { Arr } from 'ts-data-forge';\nimport {\n buildImportFixes,\n getNamedImports,\n getTsDataForgeImport,\n} from './import-utils.mjs';\n\ntype Options = readonly [];\n\ntype MessageIds = 'useRangeForLoop';\n\nexport const preferRangeForLoop: TSESLint.RuleModule<MessageIds, Options> = {\n meta: {\n type: 'suggestion',\n docs: {\n description:\n 'Replace `for (let i = begin; i < end; ++i)` with `for (const i of range(begin, end))` from ts-data-forge.',\n },\n fixable: 'code',\n schema: [],\n messages: {\n useRangeForLoop:\n 'Replace with `for (const {{varName}} of range({{begin}}, {{end}}))` from ts-data-forge.',\n },\n },\n\n create: (context) => {\n const sourceCode = context.sourceCode;\n\n const program = sourceCode.ast;\n\n const tsDataForgeImport = getTsDataForgeImport(program);\n\n const mut_nodesToFix: {\n node: TSESTree.ForStatement;\n varName: string;\n begin: string;\n end: string;\n step?: string;\n }[] = [];\n\n return {\n ForStatement: (node) => {\n // Check init: let i = begin\n if (\n node.init?.type !== AST_NODE_TYPES.VariableDeclaration ||\n node.init.kind !== 'let' ||\n !Arr.isFixedLengthTuple(node.init.declarations, 1)\n ) {\n return;\n }\n\n const declaration = node.init.declarations[0];\n\n if (\n declaration.id.type !== AST_NODE_TYPES.Identifier ||\n declaration.init === null\n ) {\n return;\n }\n\n const varName = declaration.id.name;\n\n const beginExpr = declaration.init;\n\n // Check test: i < end\n if (\n node.test?.type !== AST_NODE_TYPES.BinaryExpression ||\n node.test.operator !== '<' ||\n node.test.left.type !== AST_NODE_TYPES.Identifier ||\n node.test.left.name !== varName\n ) {\n return;\n }\n\n const endExpr = node.test.right;\n\n // Check update: ++i, i++, i += 1, or i += step\n if (node.update === null) return;\n\n let mut_step: string | undefined;\n\n if (node.update.type === AST_NODE_TYPES.UpdateExpression) {\n // ++i or i++\n if (\n node.update.operator === '++' &&\n node.update.argument.type === AST_NODE_TYPES.Identifier &&\n node.update.argument.name === varName\n ) {\n mut_step = undefined; // step defaults to 1\n } else {\n return;\n }\n } else if (\n node.update.type === AST_NODE_TYPES.AssignmentExpression &&\n node.update.operator === '+=' &&\n node.update.left.type === AST_NODE_TYPES.Identifier &&\n node.update.left.name === varName\n ) {\n // i += step\n const stepValue = node.update.right;\n\n if (stepValue.type === AST_NODE_TYPES.Literal) {\n const stepNum = stepValue.value;\n\n // Only support positive integer steps\n if (typeof stepNum === 'number' && stepNum > 0) {\n mut_step = stepNum === 1 ? undefined : String(stepNum);\n } else {\n return;\n }\n } else {\n // Variable step like i += step\n mut_step = sourceCode.getText(stepValue);\n }\n } else {\n return;\n }\n\n const beginText = sourceCode.getText(beginExpr);\n\n const endText = sourceCode.getText(endExpr);\n\n mut_nodesToFix.push({\n node,\n varName,\n begin: beginText,\n end: endText,\n step: mut_step,\n });\n },\n 'Program:exit': () => {\n const namedImports = getNamedImports(tsDataForgeImport);\n\n const hasRangeImport = namedImports.includes('range');\n\n for (const [\n index,\n { node, varName, begin, end, step },\n ] of mut_nodesToFix.entries()) {\n context.report({\n node: node.init ?? node,\n messageId: 'useRangeForLoop',\n data: {\n varName,\n begin,\n end,\n },\n fix: (fixer) => {\n const bodyText = sourceCode.getText(node.body);\n\n const rangeArgs =\n step === undefined\n ? `${begin}, ${end}`\n : `${begin}, ${end}, ${step}`;\n\n const replacement = `for (const ${varName} of range(${rangeArgs})) ${bodyText}`;\n\n const importFixes =\n index === 0 && !hasRangeImport\n ? buildImportFixes(fixer, program, tsDataForgeImport, [\n 'range',\n ])\n : [];\n\n return [...importFixes, fixer.replaceText(node, replacement)];\n },\n });\n }\n },\n };\n },\n defaultOptions: [],\n} as const;\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare const tsDataForgeRules: {
|
|
2
|
+
readonly 'prefer-canonical-array-slicing': import("@typescript-eslint/utils/ts-eslint").RuleModule<"preferCanonicalArraySlicing", readonly [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
3
|
+
readonly 'prefer-arr-is-min-length-array': import("@typescript-eslint/utils/ts-eslint").RuleModule<"useIsMinLengthArray", readonly [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
4
|
+
readonly 'prefer-arr-is-max-length-array': import("@typescript-eslint/utils/ts-eslint").RuleModule<"useIsMaxLengthArray", readonly [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
5
|
+
readonly 'prefer-arr-is-bounded-length-array': import("@typescript-eslint/utils/ts-eslint").RuleModule<"useIsBoundedLengthArray", readonly [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
6
|
+
readonly 'prefer-arr-is-fixed-length-array': import("@typescript-eslint/utils/ts-eslint").RuleModule<"useIsFixedLengthArray", readonly [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
7
|
+
readonly 'prefer-arr-is-array': import("@typescript-eslint/utils/ts-eslint").RuleModule<"useArrIsArray", readonly [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
8
|
+
readonly 'prefer-arr-is-non-empty': import("@typescript-eslint/utils/ts-eslint").RuleModule<"useIsNonEmpty", readonly [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
9
|
+
readonly 'prefer-arr-sum': import("@typescript-eslint/utils/ts-eslint").RuleModule<"useArrSum" | "useArrSumBy", readonly [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
10
|
+
readonly 'prefer-as-int': import("@typescript-eslint/utils/ts-eslint").RuleModule<"useBrandedNumberCastFunction", readonly [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
11
|
+
readonly 'prefer-is-non-null-object': import("@typescript-eslint/utils/ts-eslint").RuleModule<"useIsNonNullObject", readonly [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
12
|
+
readonly 'prefer-range-for-loop': import("@typescript-eslint/utils/ts-eslint").RuleModule<"useRangeForLoop", readonly [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
13
|
+
readonly 'prefer-is-record-and-has-key': import("@typescript-eslint/utils/ts-eslint").RuleModule<"useIsRecordAndHasKey", readonly [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
14
|
+
readonly 'prefer-num-safe-parse-int': import("@typescript-eslint/utils/ts-eslint").RuleModule<"useSafeParseInt", readonly [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
15
|
+
readonly 'prefer-num-safe-parse-float': import("@typescript-eslint/utils/ts-eslint").RuleModule<"useSafeParseFloat", readonly [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
16
|
+
readonly 'no-unnecessary-type-guard': import("@typescript-eslint/utils/ts-eslint").RuleModule<"alwaysFalse" | "alwaysTrue" | "replaceTypeGuard", readonly [(Readonly<{
|
|
17
|
+
ignore?: readonly string[];
|
|
18
|
+
}> | undefined)?], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
19
|
+
readonly 'prefer-comparison-over-nullish-guard': import("@typescript-eslint/utils/ts-eslint").RuleModule<"preferComparison", readonly [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=rules.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rules.d.mts","sourceRoot":"","sources":["../../src/rules/rules.mts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;CAiBa,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { noUnnecessaryTypeGuard } from './no-unnecessary-type-guard.mjs';
|
|
2
|
+
import { preferArrIsArray } from './prefer-arr-is-array.mjs';
|
|
3
|
+
import { preferArrIsBoundedLengthArray } from './prefer-arr-is-bounded-length-array.mjs';
|
|
4
|
+
import { preferArrIsFixedLengthArray } from './prefer-arr-is-fixed-length-array.mjs';
|
|
5
|
+
import { preferArrIsMaxLengthArray } from './prefer-arr-is-max-length-array.mjs';
|
|
6
|
+
import { preferArrIsMinLengthArray } from './prefer-arr-is-min-length-array.mjs';
|
|
7
|
+
import { preferArrIsNonEmpty } from './prefer-arr-is-non-empty.mjs';
|
|
8
|
+
import { preferArrSum } from './prefer-arr-sum.mjs';
|
|
9
|
+
import { preferAsInt } from './prefer-as-int.mjs';
|
|
10
|
+
import { preferCanonicalArraySlicing } from './prefer-canonical-array-slicing.mjs';
|
|
11
|
+
import { preferComparisonOverNullishGuard } from './prefer-comparison-over-nullish-guard.mjs';
|
|
12
|
+
import { preferIsNonNullObject } from './prefer-is-non-null-object.mjs';
|
|
13
|
+
import { preferIsRecordAndHasKey } from './prefer-is-record-and-has-key.mjs';
|
|
14
|
+
import { preferNumSafeParseFloat } from './prefer-num-safe-parse-float.mjs';
|
|
15
|
+
import { preferNumSafeParseInt } from './prefer-num-safe-parse-int.mjs';
|
|
16
|
+
import { preferRangeForLoop } from './prefer-range-for-loop.mjs';
|
|
17
|
+
|
|
18
|
+
const tsDataForgeRules = {
|
|
19
|
+
"prefer-canonical-array-slicing": preferCanonicalArraySlicing,
|
|
20
|
+
"prefer-arr-is-min-length-array": preferArrIsMinLengthArray,
|
|
21
|
+
"prefer-arr-is-max-length-array": preferArrIsMaxLengthArray,
|
|
22
|
+
"prefer-arr-is-bounded-length-array": preferArrIsBoundedLengthArray,
|
|
23
|
+
"prefer-arr-is-fixed-length-array": preferArrIsFixedLengthArray,
|
|
24
|
+
"prefer-arr-is-array": preferArrIsArray,
|
|
25
|
+
"prefer-arr-is-non-empty": preferArrIsNonEmpty,
|
|
26
|
+
"prefer-arr-sum": preferArrSum,
|
|
27
|
+
"prefer-as-int": preferAsInt,
|
|
28
|
+
"prefer-is-non-null-object": preferIsNonNullObject,
|
|
29
|
+
"prefer-range-for-loop": preferRangeForLoop,
|
|
30
|
+
"prefer-is-record-and-has-key": preferIsRecordAndHasKey,
|
|
31
|
+
"prefer-num-safe-parse-int": preferNumSafeParseInt,
|
|
32
|
+
"prefer-num-safe-parse-float": preferNumSafeParseFloat,
|
|
33
|
+
"no-unnecessary-type-guard": noUnnecessaryTypeGuard,
|
|
34
|
+
"prefer-comparison-over-nullish-guard": preferComparisonOverNullishGuard
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export { tsDataForgeRules };
|
|
38
|
+
//# sourceMappingURL=rules.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rules.mjs","sources":["../../src/rules/rules.mts"],"sourcesContent":["import { type ESLintPlugin } from '../types.mjs';\nimport { noUnnecessaryTypeGuard } from './no-unnecessary-type-guard.mjs';\nimport { preferArrIsArray } from './prefer-arr-is-array.mjs';\nimport { preferArrIsBoundedLengthArray } from './prefer-arr-is-bounded-length-array.mjs';\nimport { preferArrIsFixedLengthArray } from './prefer-arr-is-fixed-length-array.mjs';\nimport { preferArrIsMaxLengthArray } from './prefer-arr-is-max-length-array.mjs';\nimport { preferArrIsMinLengthArray } from './prefer-arr-is-min-length-array.mjs';\nimport { preferArrIsNonEmpty } from './prefer-arr-is-non-empty.mjs';\nimport { preferArrSum } from './prefer-arr-sum.mjs';\nimport { preferAsInt } from './prefer-as-int.mjs';\nimport { preferCanonicalArraySlicing } from './prefer-canonical-array-slicing.mjs';\nimport { preferComparisonOverNullishGuard } from './prefer-comparison-over-nullish-guard.mjs';\nimport { preferIsNonNullObject } from './prefer-is-non-null-object.mjs';\nimport { preferIsRecordAndHasKey } from './prefer-is-record-and-has-key.mjs';\nimport { preferNumSafeParseFloat } from './prefer-num-safe-parse-float.mjs';\nimport { preferNumSafeParseInt } from './prefer-num-safe-parse-int.mjs';\nimport { preferRangeForLoop } from './prefer-range-for-loop.mjs';\n\nexport const tsDataForgeRules = {\n 'prefer-canonical-array-slicing': preferCanonicalArraySlicing,\n 'prefer-arr-is-min-length-array': preferArrIsMinLengthArray,\n 'prefer-arr-is-max-length-array': preferArrIsMaxLengthArray,\n 'prefer-arr-is-bounded-length-array': preferArrIsBoundedLengthArray,\n 'prefer-arr-is-fixed-length-array': preferArrIsFixedLengthArray,\n 'prefer-arr-is-array': preferArrIsArray,\n 'prefer-arr-is-non-empty': preferArrIsNonEmpty,\n 'prefer-arr-sum': preferArrSum,\n 'prefer-as-int': preferAsInt,\n 'prefer-is-non-null-object': preferIsNonNullObject,\n 'prefer-range-for-loop': preferRangeForLoop,\n 'prefer-is-record-and-has-key': preferIsRecordAndHasKey,\n 'prefer-num-safe-parse-int': preferNumSafeParseInt,\n 'prefer-num-safe-parse-float': preferNumSafeParseFloat,\n 'no-unnecessary-type-guard': noUnnecessaryTypeGuard,\n 'prefer-comparison-over-nullish-guard': preferComparisonOverNullishGuard,\n} as const satisfies ESLintPlugin['rules'];\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAkBO,MAAM,gBAAA,GAAmB;AAAA,EAC9B,gCAAA,EAAkC,2BAAA;AAAA,EAClC,gCAAA,EAAkC,yBAAA;AAAA,EAClC,gCAAA,EAAkC,yBAAA;AAAA,EAClC,oCAAA,EAAsC,6BAAA;AAAA,EACtC,kCAAA,EAAoC,2BAAA;AAAA,EACpC,qBAAA,EAAuB,gBAAA;AAAA,EACvB,yBAAA,EAA2B,mBAAA;AAAA,EAC3B,gBAAA,EAAkB,YAAA;AAAA,EAClB,eAAA,EAAiB,WAAA;AAAA,EACjB,2BAAA,EAA6B,qBAAA;AAAA,EAC7B,uBAAA,EAAyB,kBAAA;AAAA,EACzB,8BAAA,EAAgC,uBAAA;AAAA,EAChC,2BAAA,EAA6B,qBAAA;AAAA,EAC7B,6BAAA,EAA+B,uBAAA;AAAA,EAC/B,2BAAA,EAA6B,sBAAA;AAAA,EAC7B,sCAAA,EAAwC;AAC1C;;;;"}
|
package/dist/types.d.mts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/types.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC"}
|
package/dist/types.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-plugin-ts-data-forge",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "ESLint rules that steer code toward ts-data-forge idioms.",
|
|
6
6
|
"keywords": [
|
|
@@ -33,6 +33,24 @@
|
|
|
33
33
|
"README.md",
|
|
34
34
|
"LICENSE"
|
|
35
35
|
],
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"@typescript-eslint/utils": "8.63.0",
|
|
38
|
+
"ts-type-forge": "^7.0.0",
|
|
39
|
+
"ts-data-forge": "11.0.0"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@typescript-eslint/parser": "8.63.0",
|
|
43
|
+
"@typescript-eslint/rule-tester": "8.63.0",
|
|
44
|
+
"dedent": "1.7.2"
|
|
45
|
+
},
|
|
46
|
+
"peerDependencies": {
|
|
47
|
+
"eslint": ">=9.0.0",
|
|
48
|
+
"typescript": ">=5.0.0"
|
|
49
|
+
},
|
|
50
|
+
"engines": {
|
|
51
|
+
"node": ">=22.22.2",
|
|
52
|
+
"pnpm": ">=9.0.0"
|
|
53
|
+
},
|
|
36
54
|
"scripts": {
|
|
37
55
|
"build": "tsx ./scripts/cmd/build.mts",
|
|
38
56
|
"build:min": "tsx ./scripts/cmd/build.mts --skip-check",
|
|
@@ -52,23 +70,5 @@
|
|
|
52
70
|
"type-check": "node ../../node_modules/typescript-native/bin/tsc --noEmit",
|
|
53
71
|
"z:prettier": "prettier --config ../../.prettierrc --ignore-path ../../.prettierignore --ignore-path ../../.gitignore --ignore-unknown --no-error-on-unmatched-pattern --write",
|
|
54
72
|
"z:vitest": "vitest --config ./configs/vitest.config.mts"
|
|
55
|
-
},
|
|
56
|
-
"dependencies": {
|
|
57
|
-
"@typescript-eslint/utils": "8.63.0",
|
|
58
|
-
"ts-data-forge": "workspace:*",
|
|
59
|
-
"ts-type-forge": "^7.0.0"
|
|
60
|
-
},
|
|
61
|
-
"devDependencies": {
|
|
62
|
-
"@typescript-eslint/parser": "8.63.0",
|
|
63
|
-
"@typescript-eslint/rule-tester": "8.63.0",
|
|
64
|
-
"dedent": "1.7.2"
|
|
65
|
-
},
|
|
66
|
-
"peerDependencies": {
|
|
67
|
-
"eslint": ">=9.0.0",
|
|
68
|
-
"typescript": ">=5.0.0"
|
|
69
|
-
},
|
|
70
|
-
"engines": {
|
|
71
|
-
"node": ">=22.22.2",
|
|
72
|
-
"pnpm": ">=9.0.0"
|
|
73
73
|
}
|
|
74
|
-
}
|
|
74
|
+
}
|