diff --git a/eslint.config.mjs b/eslint.config.mjs index 87f89c5..daaf9f6 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -10,19 +10,17 @@ export default [ ...tseslint.configs.recommended, { rules: { - "@typescript-eslint/ban-ts-comment": "warn", - "@typescript-eslint/no-empty-object-type": "warn", - "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-empty-object-type": ["error", { allowInterfaces: "with-single-extends" }], "@typescript-eslint/no-namespace": ["error", { allowDeclarations: true }], + "no-empty": ["error", { allowEmptyCatch: true }], + "prefer-const": ["error", { destructuring: "all" }], + }, + }, + { + rules: { + "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-require-imports": "off", - "@typescript-eslint/no-unsafe-function-type": "warn", "@typescript-eslint/no-unused-vars": "warn", - "no-case-declarations": "warn", - "no-empty": "warn", - "no-useless-escape": "warn", - "prefer-const": "off", - "prefer-rest-params": "warn", - "prefer-spread": "warn", }, }, ]; diff --git a/src/harmony/versions/three-eight.ts b/src/harmony/versions/three-eight.ts index 9684bb7..1058850 100644 --- a/src/harmony/versions/three-eight.ts +++ b/src/harmony/versions/three-eight.ts @@ -108,7 +108,7 @@ export function handler(context: TsTransformPathsContext, prop: string | symbol) dsNode.modifiers, dsExportClause, dsModuleSpecifier, - // @ts-ignore - This was added in later versions of 3.x + // @ts-expect-error - This was added in later versions of 3.x dsNode.isTypeOnly, ); }; diff --git a/src/register.ts b/src/register.ts index f683f9e..d951da8 100755 --- a/src/register.ts +++ b/src/register.ts @@ -68,7 +68,7 @@ export function register(): TSNode.RegisterOptions | undefined { const registerOptions: TSNode.RegisterOptions = Object.assign({}, tsNodeInstance.options); if (registerOptions.transformers) { if (typeof registerOptions.transformers === "function") { - let oldTransformersFactory = registerOptions.transformers; + const oldTransformersFactory = registerOptions.transformers; registerOptions.transformers = (program) => { const transformers = getTransformers(program, beforeConfig, afterDeclarationsConfig); const baseTransformers = oldTransformersFactory(program); diff --git a/src/transformer.ts b/src/transformer.ts index 03fc611..2c6ff89 100755 --- a/src/transformer.ts +++ b/src/transformer.ts @@ -12,7 +12,6 @@ import { TransformerExtras } from "ts-patch"; /* ****************************************************************************************************************** */ function getTsProperties(args: Parameters) { - let tsInstance: typeof ts; let fileNames: readonly string[] | undefined; let compilerOptions: CompilerOptions; let runMode: RunMode; @@ -20,7 +19,8 @@ function getTsProperties(args: Parameters) { const { 0: program, 2: extras, 3: manualTransformOptions } = args; - tsInstance = extras?.ts ?? ts; + const tsInstance = extras?.ts ?? ts; + if (program) compilerOptions = program.getCompilerOptions(); const tsNodeProps = getTsNodeRegistrationProperties(tsInstance); diff --git a/src/utils/resolve-module-name.ts b/src/utils/resolve-module-name.ts index ba0e3b5..c49ed9b 100755 --- a/src/utils/resolve-module-name.ts +++ b/src/utils/resolve-module-name.ts @@ -38,7 +38,7 @@ enum IndexType { /* ****************************************************************************************************************** */ function getPathDetail(moduleName: string, resolvedModule: ResolvedModuleFull) { - let resolvedFileName = resolvedModule.originalPath ?? resolvedModule.resolvedFileName; + const resolvedFileName = resolvedModule.originalPath ?? resolvedModule.resolvedFileName; const implicitPackageIndex = resolvedModule.packageId?.subModuleName; const resolvedDir = implicitPackageIndex diff --git a/test/tests/transformer/specific.test.ts b/test/tests/transformer/specific.test.ts index 3696003..8f8aab0 100755 --- a/test/tests/transformer/specific.test.ts +++ b/test/tests/transformer/specific.test.ts @@ -60,7 +60,7 @@ describe(`Specific Tests`, () => { beforeAll(() => { switch (mode) { - case "program": + case "program": { const program = createTsProgram({ tsInstance, tsConfigFile, @@ -81,6 +81,7 @@ describe(`Specific Tests`, () => { }); rootDirsEmit = getEmitResultFromProgram(rootDirsProgram); break; + } case "manual": { skipDts = true; const pcl = tsInstance.getParsedCommandLineOfConfigFile( @@ -159,7 +160,7 @@ describe(`Specific Tests`, () => { describe(`Tags`, () => { test(`(@no-transform-path) Doesn't transform path`, () => { for (let i = 1; i <= 4; i++) - expect(tagFile).transformedMatches(`import * as skipTransform${i} from "#root\/index`); + expect(tagFile).transformedMatches(`import * as skipTransform${i} from "#root/index`); }); test(`(@transform-path) Transforms path with explicit value`, () => { diff --git a/test/utils/helpers.ts b/test/utils/helpers.ts index 1093e51..9fe02ff 100755 --- a/test/utils/helpers.ts +++ b/test/utils/helpers.ts @@ -41,7 +41,10 @@ function createWriteFile(outputFiles: EmittedFiles) { }; } -function createReadFile(outputFiles: EmittedFiles, originalReadFile: Function) { +function createReadFile( + outputFiles: EmittedFiles, + originalReadFile: (path: string, encoding?: string) => string | undefined, +) { return (fileName: string) => { let { 1: rootName, 2: ext } = fileName.match(/(.+)\.((d.ts)|(js))$/) ?? []; if (ext) { @@ -111,10 +114,10 @@ export function createTsProgram( /* Patch host to feed mock files */ const originalGetSourceFile: any = host.getSourceFile; - host.getSourceFile = function (fileName: string, scriptTarget: ts.ScriptTarget) { + host.getSourceFile = function (fileName: string, scriptTarget: ts.ScriptTarget, ...rest) { if (Object.keys(files).includes(fileName)) return tsInstance.createSourceFile(fileName, files[fileName], scriptTarget); - else originalGetSourceFile.apply(undefined, arguments); + else originalGetSourceFile(fileName, scriptTarget, ...rest); }; }