From e127e23d8e65eb78d239273ccd7a24601fdba500 Mon Sep 17 00:00:00 2001 From: Lars Kappert Date: Sat, 29 Jun 2024 09:34:44 +0200 Subject: [PATCH] Migrate to jiti v2 --- bun.lockb | Bin 405040 -> 405040 bytes packages/knip/.gitignore | 1 + packages/knip/package.json | 2 +- packages/knip/src/util/jiti.ts | 9 +++------ packages/knip/src/util/loader.ts | 8 ++------ .../util/find-and-parse-gitignores.test.ts | 6 ++++++ 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/bun.lockb b/bun.lockb index ef55315d0cce3bc5d7ae8f0ea219469503699d26..4237d2352fd6fed335a171e99066dbf798fc7d1d 100755 GIT binary patch delta 32678 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 delta 32818 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 bHK|TOiRx7I#S+`~b{!k!K6tT2nEL+#ZZpgs diff --git a/packages/knip/.gitignore b/packages/knip/.gitignore index dc65baea2..e5fb1bd66 100644 --- a/packages/knip/.gitignore +++ b/packages/knip/.gitignore @@ -3,3 +3,4 @@ /tmp /node_modules !/fixtures/** +.cache diff --git a/packages/knip/package.json b/packages/knip/package.json index 03c776217..2387f493b 100644 --- a/packages/knip/package.json +++ b/packages/knip/package.json @@ -66,7 +66,7 @@ "easy-table": "1.2.0", "enhanced-resolve": "^5.17.1", "fast-glob": "^3.3.2", - "jiti": "^1.21.6", + "jiti": "^2.0.0", "js-yaml": "^4.1.0", "minimist": "^1.2.8", "picocolors": "^1.0.0", diff --git a/packages/knip/src/util/jiti.ts b/packages/knip/src/util/jiti.ts index c955a9ff3..26667703a 100644 --- a/packages/knip/src/util/jiti.ts +++ b/packages/knip/src/util/jiti.ts @@ -1,5 +1,5 @@ import { fileURLToPath } from 'node:url'; -import createJITI, { type JITIOptions } from 'jiti'; +import { type JitiOptions, createJiti } from 'jiti'; import { DEFAULT_EXTENSIONS } from '../constants.js'; import { join } from './path.js'; @@ -15,9 +15,6 @@ const options = { }, }; -// @ts-expect-error Our package.json has type=module (for globby, picocolors, etc), but here it confuses TypeScript -const createLoader = (options: JITIOptions) => createJITI(process.cwd(), options); +const createLoader = (options: JitiOptions) => createJiti(process.cwd(), options); -export const jitiCJS = createLoader(options); - -export const jitiESM = createLoader({ ...options, esmResolve: true }); +export const jiti = createLoader(options); diff --git a/packages/knip/src/util/loader.ts b/packages/knip/src/util/loader.ts index 94231e716..0578a88d9 100644 --- a/packages/knip/src/util/loader.ts +++ b/packages/knip/src/util/loader.ts @@ -3,7 +3,7 @@ import { timerify } from './Performance.js'; import { LoaderError } from './errors.js'; import { loadFile, loadJSON, loadTOML, loadYAML, parseJSON, parseYAML } from './fs.js'; import { isTypeModule } from './fs.js'; -import { jitiCJS, jitiESM } from './jiti.js'; +import { jiti } from './jiti.js'; import { extname, isInternal } from './path.js'; const load = async (filePath: string) => { @@ -45,11 +45,7 @@ const load = async (filePath: string) => { return imported.default ?? imported; } - if (ext === '.mts' || ((ext === '.ts' || ext === '.tsx') && isTypeModule(filePath))) { - return await jitiESM(filePath); - } - - return await jitiCJS(filePath); + return await jiti(filePath); } catch (error) { throw new LoaderError(`Error loading ${filePath}`, { cause: error }); } diff --git a/packages/knip/test/util/find-and-parse-gitignores.test.ts b/packages/knip/test/util/find-and-parse-gitignores.test.ts index 4de2f80c8..604a49c6a 100644 --- a/packages/knip/test/util/find-and-parse-gitignores.test.ts +++ b/packages/knip/test/util/find-and-parse-gitignores.test.ts @@ -9,6 +9,8 @@ test('findAndParseGitignores', async () => { assert.deepEqual(gitignore, { gitignoreFiles: ['../../.gitignore', '../../../../.gitignore', '.gitignore', 'a/.gitignore', 'a/b/.gitignore'], ignores: new Set([ + '**/.cache', + '**/.cache/**', '**/.idea', '**/.idea/**', '.git', @@ -34,6 +36,8 @@ test('findAndParseGitignores (/a)', async () => { '.yarn', '**/b/c', '**/b/c/**', + '**/.cache', + '**/.cache/**', '**/.idea', '**/.idea/**', ]), @@ -59,6 +63,8 @@ test('findAndParseGitignores (/a/b', async () => { '.yarn', '**/c', '**/c/**', + '**/.cache', + '**/.cache/**', '**/.idea', '**/.idea/**', ]),