@xylabs/ts-scripts-yarn3 3.2.26 → 3.2.28
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.
|
@@ -38,6 +38,7 @@ var import_lib = require("../../lib");
|
|
|
38
38
|
const packageDeps = async () => {
|
|
39
39
|
const pkg = process.env.INIT_CWD;
|
|
40
40
|
const pkgName = process.env.npm_package_name;
|
|
41
|
+
const packageContent = (0, import_fs.existsSync)(`${pkg}/package.json`) ? JSON.parse((0, import_fs.readFileSync)(`${pkg}/package.json`, { encoding: "utf8" })) : void 0;
|
|
41
42
|
const rawIgnore = (0, import_fs.existsSync)(`${pkg}/.depcheckrc`) ? (0, import_fs.readFileSync)(`${pkg}/.depcheckrc`, { encoding: "utf8" }).replace("ignores:", '"ignores":') : void 0;
|
|
42
43
|
let ignoreMatches = [];
|
|
43
44
|
try {
|
|
@@ -56,13 +57,15 @@ const packageDeps = async () => {
|
|
|
56
57
|
"typescript"
|
|
57
58
|
];
|
|
58
59
|
const [codeResults, testsResults] = await Promise.all([
|
|
59
|
-
(0, import_depcheck.default)(`${pkg}
|
|
60
|
+
(0, import_depcheck.default)(`${pkg}/src`, {
|
|
60
61
|
ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],
|
|
61
|
-
ignorePatterns: ["*.stories.*", "*.spec.*", ...defaultIgnorePatterns]
|
|
62
|
+
ignorePatterns: ["*.stories.*", "*.spec.*", ...defaultIgnorePatterns],
|
|
63
|
+
package: packageContent
|
|
62
64
|
}),
|
|
63
65
|
(0, import_depcheck.default)(`${pkg}/.`, {
|
|
64
66
|
ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],
|
|
65
67
|
ignorePatterns: [...defaultIgnorePatterns],
|
|
68
|
+
package: packageContent,
|
|
66
69
|
specials: [import_depcheck.special.eslint, import_depcheck.special.babel, import_depcheck.special.bin, import_depcheck.special.prettier, import_depcheck.special.jest, import_depcheck.special.mocha]
|
|
67
70
|
})
|
|
68
71
|
]);
|
|
@@ -93,7 +96,10 @@ const packageDeps = async () => {
|
|
|
93
96
|
if (Object.entries(unused.invalidFiles).length) {
|
|
94
97
|
Object.entries(unused.invalidFiles).forEach(([key, value]) => console.warn(import_chalk.default.gray(`Invalid File: ${key}: ${value}`)));
|
|
95
98
|
}
|
|
96
|
-
const
|
|
99
|
+
const declaredDeps = Object.keys(packageContent.dependencies ?? {});
|
|
100
|
+
const missingDeps = Object.keys(codeResults.using).filter(
|
|
101
|
+
(key) => !declaredDeps.includes(key) && !key.startsWith("@types/") && !defaultIgnoreMatches.includes(key)
|
|
102
|
+
);
|
|
97
103
|
if (Object.entries(codeResults.missing).length) {
|
|
98
104
|
const message = [import_chalk.default.yellow(`${Object.entries(codeResults.missing).length} Missing dependencies`)];
|
|
99
105
|
Object.entries(codeResults.missing).forEach(([key, value]) => {
|
|
@@ -102,7 +108,7 @@ const packageDeps = async () => {
|
|
|
102
108
|
});
|
|
103
109
|
console.log(import_chalk.default.yellow(message.join("\n")));
|
|
104
110
|
}
|
|
105
|
-
if (
|
|
111
|
+
if (missingDeps.length) {
|
|
106
112
|
const message = [import_chalk.default.yellow(`${missingDeps.length} Missing dependencies [alt]`)];
|
|
107
113
|
missingDeps.forEach((key) => {
|
|
108
114
|
message.push(`${key}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/actions/package/deps.ts"],"sourcesContent":["/* eslint-disable max-statements */\nimport chalk from 'chalk'\nimport depcheck, { special } from 'depcheck'\nimport { existsSync, readFileSync } from 'fs'\n\nimport { checkResult } from '../../lib'\n\nexport const packageDeps = async () => {\n const pkg = process.env.INIT_CWD\n const pkgName = process.env.npm_package_name\n\n const rawIgnore = existsSync(`${pkg}/.depcheckrc`)\n ? readFileSync(`${pkg}/.depcheckrc`, { encoding: 'utf8' }).replace('ignores:', '\"ignores\":')\n : undefined\n let ignoreMatches: string[] = []\n try {\n ignoreMatches = rawIgnore ? (JSON.parse(`{${rawIgnore}}`).ignores as string[]) : []\n } catch (ex) {\n const error = ex as Error\n console.log(`${pkgName} [${error.message}] Failed to parse .depcheckrc [${rawIgnore}]`)\n }\n\n const defaultIgnorePatterns = ['*.d.ts', 'dist', '.*']\n const defaultIgnoreMatches = [\n '@xylabs/ts-scripts-yarn3',\n '@xylabs/tsconfig',\n '@xylabs/tsconfig-dom',\n '@xylabs/tsconfig-react',\n '@xylabs/tsconfig-jest',\n 'typescript',\n ]\n\n const [codeResults, testsResults] = await Promise.all([\n depcheck(`${pkg}
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/package/deps.ts"],"sourcesContent":["/* eslint-disable max-statements */\nimport chalk from 'chalk'\nimport depcheck, { special } from 'depcheck'\nimport { existsSync, readFileSync } from 'fs'\n\nimport { checkResult } from '../../lib'\n\nexport const packageDeps = async () => {\n const pkg = process.env.INIT_CWD\n const pkgName = process.env.npm_package_name\n\n const packageContent = existsSync(`${pkg}/package.json`) ? JSON.parse(readFileSync(`${pkg}/package.json`, { encoding: 'utf8' })) : undefined\n\n const rawIgnore = existsSync(`${pkg}/.depcheckrc`)\n ? readFileSync(`${pkg}/.depcheckrc`, { encoding: 'utf8' }).replace('ignores:', '\"ignores\":')\n : undefined\n let ignoreMatches: string[] = []\n try {\n ignoreMatches = rawIgnore ? (JSON.parse(`{${rawIgnore}}`).ignores as string[]) : []\n } catch (ex) {\n const error = ex as Error\n console.log(`${pkgName} [${error.message}] Failed to parse .depcheckrc [${rawIgnore}]`)\n }\n\n const defaultIgnorePatterns = ['*.d.ts', 'dist', '.*']\n const defaultIgnoreMatches = [\n '@xylabs/ts-scripts-yarn3',\n '@xylabs/tsconfig',\n '@xylabs/tsconfig-dom',\n '@xylabs/tsconfig-react',\n '@xylabs/tsconfig-jest',\n 'typescript',\n ]\n\n const [codeResults, testsResults] = await Promise.all([\n depcheck(`${pkg}/src`, {\n ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],\n ignorePatterns: ['*.stories.*', '*.spec.*', ...defaultIgnorePatterns],\n package: packageContent,\n }),\n depcheck(`${pkg}/.`, {\n ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],\n ignorePatterns: [...defaultIgnorePatterns],\n package: packageContent,\n specials: [special.eslint, special.babel, special.bin, special.prettier, special.jest, special.mocha],\n }),\n ])\n\n const unused: depcheck.Results = {\n ...codeResults,\n /* we only reports the unused devDeps if both are not using it */\n devDependencies: testsResults.devDependencies.filter((value) => codeResults.devDependencies.includes(value)),\n }\n\n const errorCount =\n unused.dependencies.length +\n unused.devDependencies.length +\n Object.entries(unused.invalidDirs).length +\n Object.entries(unused.invalidFiles).length +\n Object.entries(unused.missing).length\n\n if (errorCount > 0) {\n console.log(`Deps [${pkgName}]`)\n } else {\n console.log(`Deps [${pkgName}] - Ok`)\n }\n\n if (unused.dependencies.length) {\n const message = [chalk.yellow(`${unused.dependencies.length} Unused dependencies`)]\n unused.dependencies.forEach((value) => message.push(chalk.gray(` ${value}`)))\n console.log(message.join('\\n'))\n }\n\n if (unused.devDependencies.length) {\n const message = [chalk.yellow(`${unused.devDependencies.length} Unused devDependencies`)]\n unused.devDependencies.forEach((value) => message.push(chalk.gray(` ${value}`)))\n console.log(message.join('\\n'))\n }\n\n if (Object.entries(unused.invalidDirs).length) {\n Object.entries(unused.invalidDirs).forEach(([key, value]) => console.warn(chalk.gray(`Invalid Dir: ${key}: ${value}`)))\n }\n\n if (Object.entries(unused.invalidFiles).length) {\n Object.entries(unused.invalidFiles).forEach(([key, value]) => console.warn(chalk.gray(`Invalid File: ${key}: ${value}`)))\n }\n\n const declaredDeps = Object.keys(packageContent.dependencies ?? {})\n\n const missingDeps = Object.keys(codeResults.using).filter(\n (key) => !declaredDeps.includes(key) && !key.startsWith('@types/') && !defaultIgnoreMatches.includes(key),\n )\n\n if (Object.entries(codeResults.missing).length) {\n const message = [chalk.yellow(`${Object.entries(codeResults.missing).length} Missing dependencies`)]\n Object.entries(codeResults.missing).forEach(([key, value]) => {\n message.push(`${key}`)\n message.push(chalk.gray(` ${value.pop()}`))\n })\n console.log(chalk.yellow(message.join('\\n')))\n }\n\n if (missingDeps.length) {\n const message = [chalk.yellow(`${missingDeps.length} Missing dependencies [alt]`)]\n missingDeps.forEach((key) => {\n message.push(`${key}`)\n message.push(chalk.gray(` ${codeResults.using[key].pop()}`))\n })\n console.log(chalk.yellow(message.join('\\n')))\n }\n\n if (Object.entries(testsResults.missing).length) {\n const message = [chalk.yellow(`${Object.entries(testsResults.missing).length} Missing devDependencies`)]\n Object.entries(testsResults.missing).forEach(([key, value]) => {\n message.push(`${key}`)\n message.push(chalk.gray(` ${value.pop()}`))\n })\n console.log(chalk.yellow(message.join('\\n')))\n }\n\n checkResult(`Deps [${pkgName}]`, errorCount, 'warn', false)\n\n //returning 0 here since we never want deps to be fatal\n return 0\n}\n"],"mappings":"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","names":["depcheck","chalk"]}
|
|
@@ -5,6 +5,7 @@ import { checkResult } from "../../lib";
|
|
|
5
5
|
const packageDeps = async () => {
|
|
6
6
|
const pkg = process.env.INIT_CWD;
|
|
7
7
|
const pkgName = process.env.npm_package_name;
|
|
8
|
+
const packageContent = existsSync(`${pkg}/package.json`) ? JSON.parse(readFileSync(`${pkg}/package.json`, { encoding: "utf8" })) : void 0;
|
|
8
9
|
const rawIgnore = existsSync(`${pkg}/.depcheckrc`) ? readFileSync(`${pkg}/.depcheckrc`, { encoding: "utf8" }).replace("ignores:", '"ignores":') : void 0;
|
|
9
10
|
let ignoreMatches = [];
|
|
10
11
|
try {
|
|
@@ -23,13 +24,15 @@ const packageDeps = async () => {
|
|
|
23
24
|
"typescript"
|
|
24
25
|
];
|
|
25
26
|
const [codeResults, testsResults] = await Promise.all([
|
|
26
|
-
depcheck(`${pkg}
|
|
27
|
+
depcheck(`${pkg}/src`, {
|
|
27
28
|
ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],
|
|
28
|
-
ignorePatterns: ["*.stories.*", "*.spec.*", ...defaultIgnorePatterns]
|
|
29
|
+
ignorePatterns: ["*.stories.*", "*.spec.*", ...defaultIgnorePatterns],
|
|
30
|
+
package: packageContent
|
|
29
31
|
}),
|
|
30
32
|
depcheck(`${pkg}/.`, {
|
|
31
33
|
ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],
|
|
32
34
|
ignorePatterns: [...defaultIgnorePatterns],
|
|
35
|
+
package: packageContent,
|
|
33
36
|
specials: [special.eslint, special.babel, special.bin, special.prettier, special.jest, special.mocha]
|
|
34
37
|
})
|
|
35
38
|
]);
|
|
@@ -60,7 +63,10 @@ const packageDeps = async () => {
|
|
|
60
63
|
if (Object.entries(unused.invalidFiles).length) {
|
|
61
64
|
Object.entries(unused.invalidFiles).forEach(([key, value]) => console.warn(chalk.gray(`Invalid File: ${key}: ${value}`)));
|
|
62
65
|
}
|
|
63
|
-
const
|
|
66
|
+
const declaredDeps = Object.keys(packageContent.dependencies ?? {});
|
|
67
|
+
const missingDeps = Object.keys(codeResults.using).filter(
|
|
68
|
+
(key) => !declaredDeps.includes(key) && !key.startsWith("@types/") && !defaultIgnoreMatches.includes(key)
|
|
69
|
+
);
|
|
64
70
|
if (Object.entries(codeResults.missing).length) {
|
|
65
71
|
const message = [chalk.yellow(`${Object.entries(codeResults.missing).length} Missing dependencies`)];
|
|
66
72
|
Object.entries(codeResults.missing).forEach(([key, value]) => {
|
|
@@ -69,7 +75,7 @@ const packageDeps = async () => {
|
|
|
69
75
|
});
|
|
70
76
|
console.log(chalk.yellow(message.join("\n")));
|
|
71
77
|
}
|
|
72
|
-
if (
|
|
78
|
+
if (missingDeps.length) {
|
|
73
79
|
const message = [chalk.yellow(`${missingDeps.length} Missing dependencies [alt]`)];
|
|
74
80
|
missingDeps.forEach((key) => {
|
|
75
81
|
message.push(`${key}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/actions/package/deps.ts"],"sourcesContent":["/* eslint-disable max-statements */\nimport chalk from 'chalk'\nimport depcheck, { special } from 'depcheck'\nimport { existsSync, readFileSync } from 'fs'\n\nimport { checkResult } from '../../lib'\n\nexport const packageDeps = async () => {\n const pkg = process.env.INIT_CWD\n const pkgName = process.env.npm_package_name\n\n const rawIgnore = existsSync(`${pkg}/.depcheckrc`)\n ? readFileSync(`${pkg}/.depcheckrc`, { encoding: 'utf8' }).replace('ignores:', '\"ignores\":')\n : undefined\n let ignoreMatches: string[] = []\n try {\n ignoreMatches = rawIgnore ? (JSON.parse(`{${rawIgnore}}`).ignores as string[]) : []\n } catch (ex) {\n const error = ex as Error\n console.log(`${pkgName} [${error.message}] Failed to parse .depcheckrc [${rawIgnore}]`)\n }\n\n const defaultIgnorePatterns = ['*.d.ts', 'dist', '.*']\n const defaultIgnoreMatches = [\n '@xylabs/ts-scripts-yarn3',\n '@xylabs/tsconfig',\n '@xylabs/tsconfig-dom',\n '@xylabs/tsconfig-react',\n '@xylabs/tsconfig-jest',\n 'typescript',\n ]\n\n const [codeResults, testsResults] = await Promise.all([\n depcheck(`${pkg}
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/package/deps.ts"],"sourcesContent":["/* eslint-disable max-statements */\nimport chalk from 'chalk'\nimport depcheck, { special } from 'depcheck'\nimport { existsSync, readFileSync } from 'fs'\n\nimport { checkResult } from '../../lib'\n\nexport const packageDeps = async () => {\n const pkg = process.env.INIT_CWD\n const pkgName = process.env.npm_package_name\n\n const packageContent = existsSync(`${pkg}/package.json`) ? JSON.parse(readFileSync(`${pkg}/package.json`, { encoding: 'utf8' })) : undefined\n\n const rawIgnore = existsSync(`${pkg}/.depcheckrc`)\n ? readFileSync(`${pkg}/.depcheckrc`, { encoding: 'utf8' }).replace('ignores:', '\"ignores\":')\n : undefined\n let ignoreMatches: string[] = []\n try {\n ignoreMatches = rawIgnore ? (JSON.parse(`{${rawIgnore}}`).ignores as string[]) : []\n } catch (ex) {\n const error = ex as Error\n console.log(`${pkgName} [${error.message}] Failed to parse .depcheckrc [${rawIgnore}]`)\n }\n\n const defaultIgnorePatterns = ['*.d.ts', 'dist', '.*']\n const defaultIgnoreMatches = [\n '@xylabs/ts-scripts-yarn3',\n '@xylabs/tsconfig',\n '@xylabs/tsconfig-dom',\n '@xylabs/tsconfig-react',\n '@xylabs/tsconfig-jest',\n 'typescript',\n ]\n\n const [codeResults, testsResults] = await Promise.all([\n depcheck(`${pkg}/src`, {\n ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],\n ignorePatterns: ['*.stories.*', '*.spec.*', ...defaultIgnorePatterns],\n package: packageContent,\n }),\n depcheck(`${pkg}/.`, {\n ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],\n ignorePatterns: [...defaultIgnorePatterns],\n package: packageContent,\n specials: [special.eslint, special.babel, special.bin, special.prettier, special.jest, special.mocha],\n }),\n ])\n\n const unused: depcheck.Results = {\n ...codeResults,\n /* we only reports the unused devDeps if both are not using it */\n devDependencies: testsResults.devDependencies.filter((value) => codeResults.devDependencies.includes(value)),\n }\n\n const errorCount =\n unused.dependencies.length +\n unused.devDependencies.length +\n Object.entries(unused.invalidDirs).length +\n Object.entries(unused.invalidFiles).length +\n Object.entries(unused.missing).length\n\n if (errorCount > 0) {\n console.log(`Deps [${pkgName}]`)\n } else {\n console.log(`Deps [${pkgName}] - Ok`)\n }\n\n if (unused.dependencies.length) {\n const message = [chalk.yellow(`${unused.dependencies.length} Unused dependencies`)]\n unused.dependencies.forEach((value) => message.push(chalk.gray(` ${value}`)))\n console.log(message.join('\\n'))\n }\n\n if (unused.devDependencies.length) {\n const message = [chalk.yellow(`${unused.devDependencies.length} Unused devDependencies`)]\n unused.devDependencies.forEach((value) => message.push(chalk.gray(` ${value}`)))\n console.log(message.join('\\n'))\n }\n\n if (Object.entries(unused.invalidDirs).length) {\n Object.entries(unused.invalidDirs).forEach(([key, value]) => console.warn(chalk.gray(`Invalid Dir: ${key}: ${value}`)))\n }\n\n if (Object.entries(unused.invalidFiles).length) {\n Object.entries(unused.invalidFiles).forEach(([key, value]) => console.warn(chalk.gray(`Invalid File: ${key}: ${value}`)))\n }\n\n const declaredDeps = Object.keys(packageContent.dependencies ?? {})\n\n const missingDeps = Object.keys(codeResults.using).filter(\n (key) => !declaredDeps.includes(key) && !key.startsWith('@types/') && !defaultIgnoreMatches.includes(key),\n )\n\n if (Object.entries(codeResults.missing).length) {\n const message = [chalk.yellow(`${Object.entries(codeResults.missing).length} Missing dependencies`)]\n Object.entries(codeResults.missing).forEach(([key, value]) => {\n message.push(`${key}`)\n message.push(chalk.gray(` ${value.pop()}`))\n })\n console.log(chalk.yellow(message.join('\\n')))\n }\n\n if (missingDeps.length) {\n const message = [chalk.yellow(`${missingDeps.length} Missing dependencies [alt]`)]\n missingDeps.forEach((key) => {\n message.push(`${key}`)\n message.push(chalk.gray(` ${codeResults.using[key].pop()}`))\n })\n console.log(chalk.yellow(message.join('\\n')))\n }\n\n if (Object.entries(testsResults.missing).length) {\n const message = [chalk.yellow(`${Object.entries(testsResults.missing).length} Missing devDependencies`)]\n Object.entries(testsResults.missing).forEach(([key, value]) => {\n message.push(`${key}`)\n message.push(chalk.gray(` ${value.pop()}`))\n })\n console.log(chalk.yellow(message.join('\\n')))\n }\n\n checkResult(`Deps [${pkgName}]`, errorCount, 'warn', false)\n\n //returning 0 here since we never want deps to be fatal\n return 0\n}\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"@types/yargs": "^17.0.32",
|
|
65
65
|
"@typescript-eslint/eslint-plugin": "^6.17.0",
|
|
66
66
|
"@typescript-eslint/parser": "^6.17.0",
|
|
67
|
-
"@xylabs/tsconfig": "~3.2.
|
|
67
|
+
"@xylabs/tsconfig": "~3.2.28",
|
|
68
68
|
"async-mutex": "^0.4.0",
|
|
69
69
|
"chalk": "^4.1.2",
|
|
70
70
|
"cosmiconfig": "^8.3.6",
|
|
@@ -112,8 +112,8 @@
|
|
|
112
112
|
"@types/license-checker": "^25.0.6",
|
|
113
113
|
"@types/lodash": "^4.14.202",
|
|
114
114
|
"@types/parse-git-config": "^3.0.4",
|
|
115
|
-
"@xylabs/eslint-config": "~3.2.
|
|
116
|
-
"@xylabs/tsconfig": "~3.2.
|
|
115
|
+
"@xylabs/eslint-config": "~3.2.28",
|
|
116
|
+
"@xylabs/tsconfig": "~3.2.28",
|
|
117
117
|
"publint": "^0.2.7",
|
|
118
118
|
"typescript": "^5.3.3"
|
|
119
119
|
},
|
|
@@ -169,5 +169,5 @@
|
|
|
169
169
|
"package-clean": "echo Not cleaning..."
|
|
170
170
|
},
|
|
171
171
|
"sideEffects": false,
|
|
172
|
-
"version": "3.2.
|
|
172
|
+
"version": "3.2.28"
|
|
173
173
|
}
|
|
@@ -9,6 +9,8 @@ export const packageDeps = async () => {
|
|
|
9
9
|
const pkg = process.env.INIT_CWD
|
|
10
10
|
const pkgName = process.env.npm_package_name
|
|
11
11
|
|
|
12
|
+
const packageContent = existsSync(`${pkg}/package.json`) ? JSON.parse(readFileSync(`${pkg}/package.json`, { encoding: 'utf8' })) : undefined
|
|
13
|
+
|
|
12
14
|
const rawIgnore = existsSync(`${pkg}/.depcheckrc`)
|
|
13
15
|
? readFileSync(`${pkg}/.depcheckrc`, { encoding: 'utf8' }).replace('ignores:', '"ignores":')
|
|
14
16
|
: undefined
|
|
@@ -31,13 +33,15 @@ export const packageDeps = async () => {
|
|
|
31
33
|
]
|
|
32
34
|
|
|
33
35
|
const [codeResults, testsResults] = await Promise.all([
|
|
34
|
-
depcheck(`${pkg}
|
|
36
|
+
depcheck(`${pkg}/src`, {
|
|
35
37
|
ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],
|
|
36
38
|
ignorePatterns: ['*.stories.*', '*.spec.*', ...defaultIgnorePatterns],
|
|
39
|
+
package: packageContent,
|
|
37
40
|
}),
|
|
38
41
|
depcheck(`${pkg}/.`, {
|
|
39
42
|
ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],
|
|
40
43
|
ignorePatterns: [...defaultIgnorePatterns],
|
|
44
|
+
package: packageContent,
|
|
41
45
|
specials: [special.eslint, special.babel, special.bin, special.prettier, special.jest, special.mocha],
|
|
42
46
|
}),
|
|
43
47
|
])
|
|
@@ -81,7 +85,11 @@ export const packageDeps = async () => {
|
|
|
81
85
|
Object.entries(unused.invalidFiles).forEach(([key, value]) => console.warn(chalk.gray(`Invalid File: ${key}: ${value}`)))
|
|
82
86
|
}
|
|
83
87
|
|
|
84
|
-
const
|
|
88
|
+
const declaredDeps = Object.keys(packageContent.dependencies ?? {})
|
|
89
|
+
|
|
90
|
+
const missingDeps = Object.keys(codeResults.using).filter(
|
|
91
|
+
(key) => !declaredDeps.includes(key) && !key.startsWith('@types/') && !defaultIgnoreMatches.includes(key),
|
|
92
|
+
)
|
|
85
93
|
|
|
86
94
|
if (Object.entries(codeResults.missing).length) {
|
|
87
95
|
const message = [chalk.yellow(`${Object.entries(codeResults.missing).length} Missing dependencies`)]
|
|
@@ -92,7 +100,7 @@ export const packageDeps = async () => {
|
|
|
92
100
|
console.log(chalk.yellow(message.join('\n')))
|
|
93
101
|
}
|
|
94
102
|
|
|
95
|
-
if (
|
|
103
|
+
if (missingDeps.length) {
|
|
96
104
|
const message = [chalk.yellow(`${missingDeps.length} Missing dependencies [alt]`)]
|
|
97
105
|
missingDeps.forEach((key) => {
|
|
98
106
|
message.push(`${key}`)
|
package/tsconfig.json
CHANGED