@xylabs/ts-scripts-yarn3 3.2.24 → 3.2.26

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.
@@ -43,14 +43,15 @@ const depsPackage = ({ pkg }) => {
43
43
  const steps = [["yarn", ["workspace", pkg, "run", "package-deps"]]];
44
44
  return (0, import_lib.runSteps)(`Deps [${pkg}]`, [...steps]);
45
45
  };
46
- const depsAll = ({ incremental, jobs }) => {
46
+ const depsAll = ({ incremental, jobs, verbose }) => {
47
47
  const start = Date.now();
48
48
  const jobsOptions = jobs ? ["-j", `${jobs}`] : [];
49
+ const verboseOptions = verbose ? ["--verbose"] : ["--no-verbose"];
49
50
  if (jobs) {
50
51
  console.log(import_chalk.default.blue(`Jobs set to [${jobs}]`));
51
52
  }
52
53
  const incrementalOptions = incremental ? ["--since", "-pA"] : ["-pA"];
53
- const steps = [["yarn", ["workspaces", "foreach", ...jobsOptions, ...incrementalOptions, "run", "package-deps"]]];
54
+ const steps = [["yarn", ["workspaces", "foreach", ...jobsOptions, ...incrementalOptions, ...verboseOptions, "run", "package-deps"]]];
54
55
  const result = (0, import_lib.runSteps)(`Deps${incremental ? "-Incremental" : ""} [All]`, [...steps]);
55
56
  console.log(`${import_chalk.default.gray("Dep checked in")} [${import_chalk.default.magenta(((Date.now() - start) / 1e3).toFixed(2))}] ${import_chalk.default.gray("seconds")}`);
56
57
  return result;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/actions/deps.ts"],"sourcesContent":["import chalk from 'chalk'\n\nimport { runSteps, ScriptStep } from '../lib'\n\nexport interface DepsParams {\n incremental?: boolean\n jobs?: number\n pkg?: string\n}\n\nexport interface DepsPackageParams {\n pkg: string\n}\n\nexport const deps = ({ pkg, incremental }: DepsParams) => {\n pkg ? depsPackage({ pkg }) : depsAll({ incremental })\n //returning 0 here since we never wants deps to be fatal\n return 0\n}\n\nexport const depsPackage = ({ pkg }: DepsPackageParams) => {\n const steps: ScriptStep[] = [['yarn', ['workspace', pkg, 'run', 'package-deps']]]\n\n return runSteps(`Deps [${pkg}]`, [...steps])\n}\n\nexport const depsAll = ({ incremental, jobs }: DepsParams) => {\n const start = Date.now()\n const jobsOptions = jobs ? ['-j', `${jobs}`] : []\n if (jobs) {\n console.log(chalk.blue(`Jobs set to [${jobs}]`))\n }\n const incrementalOptions = incremental ? ['--since', '-pA'] : ['-pA']\n const steps: ScriptStep[] = [['yarn', ['workspaces', 'foreach', ...jobsOptions, ...incrementalOptions, 'run', 'package-deps']]]\n\n const result = runSteps(`Deps${incremental ? '-Incremental' : ''} [All]`, [...steps])\n console.log(`${chalk.gray('Dep checked in')} [${chalk.magenta(((Date.now() - start) / 1000).toFixed(2))}] ${chalk.gray('seconds')}`)\n return result\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAElB,iBAAqC;AAY9B,MAAM,OAAO,CAAC,EAAE,KAAK,YAAY,MAAkB;AACxD,QAAM,YAAY,EAAE,IAAI,CAAC,IAAI,QAAQ,EAAE,YAAY,CAAC;AAEpD,SAAO;AACT;AAEO,MAAM,cAAc,CAAC,EAAE,IAAI,MAAyB;AACzD,QAAM,QAAsB,CAAC,CAAC,QAAQ,CAAC,aAAa,KAAK,OAAO,cAAc,CAAC,CAAC;AAEhF,aAAO,qBAAS,SAAS,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;AAC7C;AAEO,MAAM,UAAU,CAAC,EAAE,aAAa,KAAK,MAAkB;AAC5D,QAAM,QAAQ,KAAK,IAAI;AACvB,QAAM,cAAc,OAAO,CAAC,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC;AAChD,MAAI,MAAM;AACR,YAAQ,IAAI,aAAAA,QAAM,KAAK,gBAAgB,IAAI,GAAG,CAAC;AAAA,EACjD;AACA,QAAM,qBAAqB,cAAc,CAAC,WAAW,KAAK,IAAI,CAAC,KAAK;AACpE,QAAM,QAAsB,CAAC,CAAC,QAAQ,CAAC,cAAc,WAAW,GAAG,aAAa,GAAG,oBAAoB,OAAO,cAAc,CAAC,CAAC;AAE9H,QAAM,aAAS,qBAAS,OAAO,cAAc,iBAAiB,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC;AACpF,UAAQ,IAAI,GAAG,aAAAA,QAAM,KAAK,gBAAgB,CAAC,KAAK,aAAAA,QAAM,UAAU,KAAK,IAAI,IAAI,SAAS,KAAM,QAAQ,CAAC,CAAC,CAAC,KAAK,aAAAA,QAAM,KAAK,SAAS,CAAC,EAAE;AACnI,SAAO;AACT;","names":["chalk"]}
1
+ {"version":3,"sources":["../../src/actions/deps.ts"],"sourcesContent":["import chalk from 'chalk'\n\nimport { runSteps, ScriptStep } from '../lib'\n\nexport interface DepsParams {\n incremental?: boolean\n jobs?: number\n pkg?: string\n verbose?: boolean\n}\n\nexport interface DepsPackageParams {\n pkg: string\n}\n\nexport const deps = ({ pkg, incremental }: DepsParams) => {\n pkg ? depsPackage({ pkg }) : depsAll({ incremental })\n //returning 0 here since we never wants deps to be fatal\n return 0\n}\n\nexport const depsPackage = ({ pkg }: DepsPackageParams) => {\n const steps: ScriptStep[] = [['yarn', ['workspace', pkg, 'run', 'package-deps']]]\n\n return runSteps(`Deps [${pkg}]`, [...steps])\n}\n\nexport const depsAll = ({ incremental, jobs, verbose }: DepsParams) => {\n const start = Date.now()\n const jobsOptions = jobs ? ['-j', `${jobs}`] : []\n const verboseOptions = verbose ? ['--verbose'] : ['--no-verbose']\n if (jobs) {\n console.log(chalk.blue(`Jobs set to [${jobs}]`))\n }\n const incrementalOptions = incremental ? ['--since', '-pA'] : ['-pA']\n const steps: ScriptStep[] = [['yarn', ['workspaces', 'foreach', ...jobsOptions, ...incrementalOptions, ...verboseOptions, 'run', 'package-deps']]]\n\n const result = runSteps(`Deps${incremental ? '-Incremental' : ''} [All]`, [...steps])\n console.log(`${chalk.gray('Dep checked in')} [${chalk.magenta(((Date.now() - start) / 1000).toFixed(2))}] ${chalk.gray('seconds')}`)\n return result\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAElB,iBAAqC;AAa9B,MAAM,OAAO,CAAC,EAAE,KAAK,YAAY,MAAkB;AACxD,QAAM,YAAY,EAAE,IAAI,CAAC,IAAI,QAAQ,EAAE,YAAY,CAAC;AAEpD,SAAO;AACT;AAEO,MAAM,cAAc,CAAC,EAAE,IAAI,MAAyB;AACzD,QAAM,QAAsB,CAAC,CAAC,QAAQ,CAAC,aAAa,KAAK,OAAO,cAAc,CAAC,CAAC;AAEhF,aAAO,qBAAS,SAAS,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;AAC7C;AAEO,MAAM,UAAU,CAAC,EAAE,aAAa,MAAM,QAAQ,MAAkB;AACrE,QAAM,QAAQ,KAAK,IAAI;AACvB,QAAM,cAAc,OAAO,CAAC,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC;AAChD,QAAM,iBAAiB,UAAU,CAAC,WAAW,IAAI,CAAC,cAAc;AAChE,MAAI,MAAM;AACR,YAAQ,IAAI,aAAAA,QAAM,KAAK,gBAAgB,IAAI,GAAG,CAAC;AAAA,EACjD;AACA,QAAM,qBAAqB,cAAc,CAAC,WAAW,KAAK,IAAI,CAAC,KAAK;AACpE,QAAM,QAAsB,CAAC,CAAC,QAAQ,CAAC,cAAc,WAAW,GAAG,aAAa,GAAG,oBAAoB,GAAG,gBAAgB,OAAO,cAAc,CAAC,CAAC;AAEjJ,QAAM,aAAS,qBAAS,OAAO,cAAc,iBAAiB,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC;AACpF,UAAQ,IAAI,GAAG,aAAAA,QAAM,KAAK,gBAAgB,CAAC,KAAK,aAAAA,QAAM,UAAU,KAAK,IAAI,IAAI,SAAS,KAAM,QAAQ,CAAC,CAAC,CAAC,KAAK,aAAAA,QAAM,KAAK,SAAS,CAAC,EAAE;AACnI,SAAO;AACT;","names":["chalk"]}
@@ -8,14 +8,15 @@ const depsPackage = ({ pkg }) => {
8
8
  const steps = [["yarn", ["workspace", pkg, "run", "package-deps"]]];
9
9
  return runSteps(`Deps [${pkg}]`, [...steps]);
10
10
  };
11
- const depsAll = ({ incremental, jobs }) => {
11
+ const depsAll = ({ incremental, jobs, verbose }) => {
12
12
  const start = Date.now();
13
13
  const jobsOptions = jobs ? ["-j", `${jobs}`] : [];
14
+ const verboseOptions = verbose ? ["--verbose"] : ["--no-verbose"];
14
15
  if (jobs) {
15
16
  console.log(chalk.blue(`Jobs set to [${jobs}]`));
16
17
  }
17
18
  const incrementalOptions = incremental ? ["--since", "-pA"] : ["-pA"];
18
- const steps = [["yarn", ["workspaces", "foreach", ...jobsOptions, ...incrementalOptions, "run", "package-deps"]]];
19
+ const steps = [["yarn", ["workspaces", "foreach", ...jobsOptions, ...incrementalOptions, ...verboseOptions, "run", "package-deps"]]];
19
20
  const result = runSteps(`Deps${incremental ? "-Incremental" : ""} [All]`, [...steps]);
20
21
  console.log(`${chalk.gray("Dep checked in")} [${chalk.magenta(((Date.now() - start) / 1e3).toFixed(2))}] ${chalk.gray("seconds")}`);
21
22
  return result;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/actions/deps.ts"],"sourcesContent":["import chalk from 'chalk'\n\nimport { runSteps, ScriptStep } from '../lib'\n\nexport interface DepsParams {\n incremental?: boolean\n jobs?: number\n pkg?: string\n}\n\nexport interface DepsPackageParams {\n pkg: string\n}\n\nexport const deps = ({ pkg, incremental }: DepsParams) => {\n pkg ? depsPackage({ pkg }) : depsAll({ incremental })\n //returning 0 here since we never wants deps to be fatal\n return 0\n}\n\nexport const depsPackage = ({ pkg }: DepsPackageParams) => {\n const steps: ScriptStep[] = [['yarn', ['workspace', pkg, 'run', 'package-deps']]]\n\n return runSteps(`Deps [${pkg}]`, [...steps])\n}\n\nexport const depsAll = ({ incremental, jobs }: DepsParams) => {\n const start = Date.now()\n const jobsOptions = jobs ? ['-j', `${jobs}`] : []\n if (jobs) {\n console.log(chalk.blue(`Jobs set to [${jobs}]`))\n }\n const incrementalOptions = incremental ? ['--since', '-pA'] : ['-pA']\n const steps: ScriptStep[] = [['yarn', ['workspaces', 'foreach', ...jobsOptions, ...incrementalOptions, 'run', 'package-deps']]]\n\n const result = runSteps(`Deps${incremental ? '-Incremental' : ''} [All]`, [...steps])\n console.log(`${chalk.gray('Dep checked in')} [${chalk.magenta(((Date.now() - start) / 1000).toFixed(2))}] ${chalk.gray('seconds')}`)\n return result\n}\n"],"mappings":"AAAA,OAAO,WAAW;AAElB,SAAS,gBAA4B;AAY9B,MAAM,OAAO,CAAC,EAAE,KAAK,YAAY,MAAkB;AACxD,QAAM,YAAY,EAAE,IAAI,CAAC,IAAI,QAAQ,EAAE,YAAY,CAAC;AAEpD,SAAO;AACT;AAEO,MAAM,cAAc,CAAC,EAAE,IAAI,MAAyB;AACzD,QAAM,QAAsB,CAAC,CAAC,QAAQ,CAAC,aAAa,KAAK,OAAO,cAAc,CAAC,CAAC;AAEhF,SAAO,SAAS,SAAS,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;AAC7C;AAEO,MAAM,UAAU,CAAC,EAAE,aAAa,KAAK,MAAkB;AAC5D,QAAM,QAAQ,KAAK,IAAI;AACvB,QAAM,cAAc,OAAO,CAAC,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC;AAChD,MAAI,MAAM;AACR,YAAQ,IAAI,MAAM,KAAK,gBAAgB,IAAI,GAAG,CAAC;AAAA,EACjD;AACA,QAAM,qBAAqB,cAAc,CAAC,WAAW,KAAK,IAAI,CAAC,KAAK;AACpE,QAAM,QAAsB,CAAC,CAAC,QAAQ,CAAC,cAAc,WAAW,GAAG,aAAa,GAAG,oBAAoB,OAAO,cAAc,CAAC,CAAC;AAE9H,QAAM,SAAS,SAAS,OAAO,cAAc,iBAAiB,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC;AACpF,UAAQ,IAAI,GAAG,MAAM,KAAK,gBAAgB,CAAC,KAAK,MAAM,UAAU,KAAK,IAAI,IAAI,SAAS,KAAM,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,KAAK,SAAS,CAAC,EAAE;AACnI,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../src/actions/deps.ts"],"sourcesContent":["import chalk from 'chalk'\n\nimport { runSteps, ScriptStep } from '../lib'\n\nexport interface DepsParams {\n incremental?: boolean\n jobs?: number\n pkg?: string\n verbose?: boolean\n}\n\nexport interface DepsPackageParams {\n pkg: string\n}\n\nexport const deps = ({ pkg, incremental }: DepsParams) => {\n pkg ? depsPackage({ pkg }) : depsAll({ incremental })\n //returning 0 here since we never wants deps to be fatal\n return 0\n}\n\nexport const depsPackage = ({ pkg }: DepsPackageParams) => {\n const steps: ScriptStep[] = [['yarn', ['workspace', pkg, 'run', 'package-deps']]]\n\n return runSteps(`Deps [${pkg}]`, [...steps])\n}\n\nexport const depsAll = ({ incremental, jobs, verbose }: DepsParams) => {\n const start = Date.now()\n const jobsOptions = jobs ? ['-j', `${jobs}`] : []\n const verboseOptions = verbose ? ['--verbose'] : ['--no-verbose']\n if (jobs) {\n console.log(chalk.blue(`Jobs set to [${jobs}]`))\n }\n const incrementalOptions = incremental ? ['--since', '-pA'] : ['-pA']\n const steps: ScriptStep[] = [['yarn', ['workspaces', 'foreach', ...jobsOptions, ...incrementalOptions, ...verboseOptions, 'run', 'package-deps']]]\n\n const result = runSteps(`Deps${incremental ? '-Incremental' : ''} [All]`, [...steps])\n console.log(`${chalk.gray('Dep checked in')} [${chalk.magenta(((Date.now() - start) / 1000).toFixed(2))}] ${chalk.gray('seconds')}`)\n return result\n}\n"],"mappings":"AAAA,OAAO,WAAW;AAElB,SAAS,gBAA4B;AAa9B,MAAM,OAAO,CAAC,EAAE,KAAK,YAAY,MAAkB;AACxD,QAAM,YAAY,EAAE,IAAI,CAAC,IAAI,QAAQ,EAAE,YAAY,CAAC;AAEpD,SAAO;AACT;AAEO,MAAM,cAAc,CAAC,EAAE,IAAI,MAAyB;AACzD,QAAM,QAAsB,CAAC,CAAC,QAAQ,CAAC,aAAa,KAAK,OAAO,cAAc,CAAC,CAAC;AAEhF,SAAO,SAAS,SAAS,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;AAC7C;AAEO,MAAM,UAAU,CAAC,EAAE,aAAa,MAAM,QAAQ,MAAkB;AACrE,QAAM,QAAQ,KAAK,IAAI;AACvB,QAAM,cAAc,OAAO,CAAC,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC;AAChD,QAAM,iBAAiB,UAAU,CAAC,WAAW,IAAI,CAAC,cAAc;AAChE,MAAI,MAAM;AACR,YAAQ,IAAI,MAAM,KAAK,gBAAgB,IAAI,GAAG,CAAC;AAAA,EACjD;AACA,QAAM,qBAAqB,cAAc,CAAC,WAAW,KAAK,IAAI,CAAC,KAAK;AACpE,QAAM,QAAsB,CAAC,CAAC,QAAQ,CAAC,cAAc,WAAW,GAAG,aAAa,GAAG,oBAAoB,GAAG,gBAAgB,OAAO,cAAc,CAAC,CAAC;AAEjJ,QAAM,SAAS,SAAS,OAAO,cAAc,iBAAiB,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC;AACpF,UAAQ,IAAI,GAAG,MAAM,KAAK,gBAAgB,CAAC,KAAK,MAAM,UAAU,KAAK,IAAI,IAAI,SAAS,KAAM,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,KAAK,SAAS,CAAC,EAAE;AACnI,SAAO;AACT;","names":[]}
@@ -55,7 +55,7 @@ const packageDeps = async () => {
55
55
  "@xylabs/tsconfig-jest",
56
56
  "typescript"
57
57
  ];
58
- const unusedList = await Promise.all([
58
+ const [codeResults, testsResults] = await Promise.all([
59
59
  (0, import_depcheck.default)(`${pkg}/.`, {
60
60
  ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],
61
61
  ignorePatterns: ["*.stories.*", "*.spec.*", ...defaultIgnorePatterns]
@@ -66,12 +66,10 @@ const packageDeps = async () => {
66
66
  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
67
  })
68
68
  ]);
69
- const unusedCode = unusedList[0];
70
- const unusedTests = unusedList[1];
71
69
  const unused = {
72
- ...unusedCode,
70
+ ...codeResults,
73
71
  /* we only reports the unused devDeps if both are not using it */
74
- devDependencies: unusedTests.devDependencies.filter((value) => !!unusedCode.devDependencies.find((devValue) => devValue === value))
72
+ devDependencies: testsResults.devDependencies.filter((value) => codeResults.devDependencies.includes(value))
75
73
  };
76
74
  const errorCount = unused.dependencies.length + unused.devDependencies.length + Object.entries(unused.invalidDirs).length + Object.entries(unused.invalidFiles).length + Object.entries(unused.missing).length;
77
75
  if (errorCount > 0) {
@@ -95,17 +93,26 @@ const packageDeps = async () => {
95
93
  if (Object.entries(unused.invalidFiles).length) {
96
94
  Object.entries(unused.invalidFiles).forEach(([key, value]) => console.warn(import_chalk.default.gray(`Invalid File: ${key}: ${value}`)));
97
95
  }
98
- if (Object.entries(unusedCode.missing).length) {
99
- const message = [import_chalk.default.yellow(`${Object.entries(unusedCode.missing).length} Missing dependencies`)];
100
- Object.entries(unusedCode.missing).forEach(([key, value]) => {
96
+ const missingDeps = Object.keys(codeResults.using).filter((key) => !codeResults.dependencies.includes(key));
97
+ if (Object.entries(codeResults.missing).length) {
98
+ const message = [import_chalk.default.yellow(`${Object.entries(codeResults.missing).length} Missing dependencies`)];
99
+ Object.entries(codeResults.missing).forEach(([key, value]) => {
101
100
  message.push(`${key}`);
102
101
  message.push(import_chalk.default.gray(` ${value.pop()}`));
103
102
  });
104
103
  console.log(import_chalk.default.yellow(message.join("\n")));
105
104
  }
106
- if (Object.entries(unusedTests.missing).length) {
107
- const message = [import_chalk.default.yellow(`${Object.entries(unusedTests.missing).length} Missing devDependencies`)];
108
- Object.entries(unusedTests.missing).forEach(([key, value]) => {
105
+ if (Object.entries(codeResults.missing).length) {
106
+ const message = [import_chalk.default.yellow(`${missingDeps.length} Missing dependencies [alt]`)];
107
+ missingDeps.forEach((key) => {
108
+ message.push(`${key}`);
109
+ message.push(import_chalk.default.gray(` ${codeResults.using[key].pop()}`));
110
+ });
111
+ console.log(import_chalk.default.yellow(message.join("\n")));
112
+ }
113
+ if (Object.entries(testsResults.missing).length) {
114
+ const message = [import_chalk.default.yellow(`${Object.entries(testsResults.missing).length} Missing devDependencies`)];
115
+ Object.entries(testsResults.missing).forEach(([key, value]) => {
109
116
  message.push(`${key}`);
110
117
  message.push(import_chalk.default.gray(` ${value.pop()}`));
111
118
  });
@@ -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 unusedList = await Promise.all([\n depcheck(`${pkg}/.`, {\n ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],\n ignorePatterns: ['*.stories.*', '*.spec.*', ...defaultIgnorePatterns],\n }),\n depcheck(`${pkg}/.`, {\n ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],\n ignorePatterns: [...defaultIgnorePatterns],\n specials: [special.eslint, special.babel, special.bin, special.prettier, special.jest, special.mocha],\n }),\n ])\n\n const unusedCode = unusedList[0]\n const unusedTests = unusedList[1]\n\n const unused: depcheck.Results = {\n ...unusedCode,\n /* we only reports the unused devDeps if both are not using it */\n devDependencies: unusedTests.devDependencies.filter((value) => !!unusedCode.devDependencies.find((devValue) => devValue === 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 if (Object.entries(unusedCode.missing).length) {\n const message = [chalk.yellow(`${Object.entries(unusedCode.missing).length} Missing dependencies`)]\n Object.entries(unusedCode.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 (Object.entries(unusedTests.missing).length) {\n const message = [chalk.yellow(`${Object.entries(unusedTests.missing).length} Missing devDependencies`)]\n Object.entries(unusedTests.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"]}
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}/.`, {\n ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],\n ignorePatterns: ['*.stories.*', '*.spec.*', ...defaultIgnorePatterns],\n }),\n depcheck(`${pkg}/.`, {\n ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],\n ignorePatterns: [...defaultIgnorePatterns],\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 missingDeps = Object.keys(codeResults.using).filter((key) => !codeResults.dependencies.includes(key))\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 (Object.entries(codeResults.missing).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"]}
@@ -22,7 +22,7 @@ const packageDeps = async () => {
22
22
  "@xylabs/tsconfig-jest",
23
23
  "typescript"
24
24
  ];
25
- const unusedList = await Promise.all([
25
+ const [codeResults, testsResults] = await Promise.all([
26
26
  depcheck(`${pkg}/.`, {
27
27
  ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],
28
28
  ignorePatterns: ["*.stories.*", "*.spec.*", ...defaultIgnorePatterns]
@@ -33,12 +33,10 @@ const packageDeps = async () => {
33
33
  specials: [special.eslint, special.babel, special.bin, special.prettier, special.jest, special.mocha]
34
34
  })
35
35
  ]);
36
- const unusedCode = unusedList[0];
37
- const unusedTests = unusedList[1];
38
36
  const unused = {
39
- ...unusedCode,
37
+ ...codeResults,
40
38
  /* we only reports the unused devDeps if both are not using it */
41
- devDependencies: unusedTests.devDependencies.filter((value) => !!unusedCode.devDependencies.find((devValue) => devValue === value))
39
+ devDependencies: testsResults.devDependencies.filter((value) => codeResults.devDependencies.includes(value))
42
40
  };
43
41
  const errorCount = unused.dependencies.length + unused.devDependencies.length + Object.entries(unused.invalidDirs).length + Object.entries(unused.invalidFiles).length + Object.entries(unused.missing).length;
44
42
  if (errorCount > 0) {
@@ -62,17 +60,26 @@ const packageDeps = async () => {
62
60
  if (Object.entries(unused.invalidFiles).length) {
63
61
  Object.entries(unused.invalidFiles).forEach(([key, value]) => console.warn(chalk.gray(`Invalid File: ${key}: ${value}`)));
64
62
  }
65
- if (Object.entries(unusedCode.missing).length) {
66
- const message = [chalk.yellow(`${Object.entries(unusedCode.missing).length} Missing dependencies`)];
67
- Object.entries(unusedCode.missing).forEach(([key, value]) => {
63
+ const missingDeps = Object.keys(codeResults.using).filter((key) => !codeResults.dependencies.includes(key));
64
+ if (Object.entries(codeResults.missing).length) {
65
+ const message = [chalk.yellow(`${Object.entries(codeResults.missing).length} Missing dependencies`)];
66
+ Object.entries(codeResults.missing).forEach(([key, value]) => {
68
67
  message.push(`${key}`);
69
68
  message.push(chalk.gray(` ${value.pop()}`));
70
69
  });
71
70
  console.log(chalk.yellow(message.join("\n")));
72
71
  }
73
- if (Object.entries(unusedTests.missing).length) {
74
- const message = [chalk.yellow(`${Object.entries(unusedTests.missing).length} Missing devDependencies`)];
75
- Object.entries(unusedTests.missing).forEach(([key, value]) => {
72
+ if (Object.entries(codeResults.missing).length) {
73
+ const message = [chalk.yellow(`${missingDeps.length} Missing dependencies [alt]`)];
74
+ missingDeps.forEach((key) => {
75
+ message.push(`${key}`);
76
+ message.push(chalk.gray(` ${codeResults.using[key].pop()}`));
77
+ });
78
+ console.log(chalk.yellow(message.join("\n")));
79
+ }
80
+ if (Object.entries(testsResults.missing).length) {
81
+ const message = [chalk.yellow(`${Object.entries(testsResults.missing).length} Missing devDependencies`)];
82
+ Object.entries(testsResults.missing).forEach(([key, value]) => {
76
83
  message.push(`${key}`);
77
84
  message.push(chalk.gray(` ${value.pop()}`));
78
85
  });
@@ -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 unusedList = await Promise.all([\n depcheck(`${pkg}/.`, {\n ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],\n ignorePatterns: ['*.stories.*', '*.spec.*', ...defaultIgnorePatterns],\n }),\n depcheck(`${pkg}/.`, {\n ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],\n ignorePatterns: [...defaultIgnorePatterns],\n specials: [special.eslint, special.babel, special.bin, special.prettier, special.jest, special.mocha],\n }),\n ])\n\n const unusedCode = unusedList[0]\n const unusedTests = unusedList[1]\n\n const unused: depcheck.Results = {\n ...unusedCode,\n /* we only reports the unused devDeps if both are not using it */\n devDependencies: unusedTests.devDependencies.filter((value) => !!unusedCode.devDependencies.find((devValue) => devValue === 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 if (Object.entries(unusedCode.missing).length) {\n const message = [chalk.yellow(`${Object.entries(unusedCode.missing).length} Missing dependencies`)]\n Object.entries(unusedCode.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 (Object.entries(unusedTests.missing).length) {\n const message = [chalk.yellow(`${Object.entries(unusedTests.missing).length} Missing devDependencies`)]\n Object.entries(unusedTests.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":[]}
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}/.`, {\n ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],\n ignorePatterns: ['*.stories.*', '*.spec.*', ...defaultIgnorePatterns],\n }),\n depcheck(`${pkg}/.`, {\n ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],\n ignorePatterns: [...defaultIgnorePatterns],\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 missingDeps = Object.keys(codeResults.using).filter((key) => !codeResults.dependencies.includes(key))\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 (Object.entries(codeResults.missing).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/dist/index.d.mts CHANGED
@@ -68,13 +68,14 @@ interface DepsParams {
68
68
  incremental?: boolean;
69
69
  jobs?: number;
70
70
  pkg?: string;
71
+ verbose?: boolean;
71
72
  }
72
73
  interface DepsPackageParams {
73
74
  pkg: string;
74
75
  }
75
76
  declare const deps: ({ pkg, incremental }: DepsParams) => number;
76
77
  declare const depsPackage: ({ pkg }: DepsPackageParams) => number;
77
- declare const depsAll: ({ incremental, jobs }: DepsParams) => number;
78
+ declare const depsAll: ({ incremental, jobs, verbose }: DepsParams) => number;
78
79
 
79
80
  declare const dupdeps: () => number;
80
81
 
package/dist/index.d.ts CHANGED
@@ -68,13 +68,14 @@ interface DepsParams {
68
68
  incremental?: boolean;
69
69
  jobs?: number;
70
70
  pkg?: string;
71
+ verbose?: boolean;
71
72
  }
72
73
  interface DepsPackageParams {
73
74
  pkg: string;
74
75
  }
75
76
  declare const deps: ({ pkg, incremental }: DepsParams) => number;
76
77
  declare const depsPackage: ({ pkg }: DepsPackageParams) => number;
77
- declare const depsAll: ({ incremental, jobs }: DepsParams) => number;
78
+ declare const depsAll: ({ incremental, jobs, verbose }: DepsParams) => number;
78
79
 
79
80
  declare const dupdeps: () => number;
80
81
 
package/package.json CHANGED
@@ -60,20 +60,20 @@
60
60
  "@rollup/plugin-commonjs": "^25.0.7",
61
61
  "@rollup/plugin-json": "^6.1.0",
62
62
  "@rollup/plugin-typescript": "^11.1.5",
63
- "@types/node": "^20.10.4",
63
+ "@types/node": "^20.10.6",
64
64
  "@types/yargs": "^17.0.32",
65
- "@typescript-eslint/eslint-plugin": "^6.14.0",
66
- "@typescript-eslint/parser": "^6.14.0",
67
- "@xylabs/tsconfig": "~3.2.24",
65
+ "@typescript-eslint/eslint-plugin": "^6.17.0",
66
+ "@typescript-eslint/parser": "^6.17.0",
67
+ "@xylabs/tsconfig": "~3.2.26",
68
68
  "async-mutex": "^0.4.0",
69
69
  "chalk": "^4.1.2",
70
70
  "cosmiconfig": "^8.3.6",
71
71
  "cosmiconfig-typescript-loader": "^5.0.0",
72
72
  "cpy": "^8.1.2",
73
73
  "depcheck": "^1.4.7",
74
- "eslint": "^8.55.0",
74
+ "eslint": "^8.56.0",
75
75
  "eslint-config-prettier": "^9.1.0",
76
- "eslint-plugin-prettier": "^5.0.1",
76
+ "eslint-plugin-prettier": "^5.1.2",
77
77
  "eslint-plugin-sonarjs": "^0.23.0",
78
78
  "glob": "^10.3.10",
79
79
  "jest": "^29.7.0",
@@ -89,10 +89,10 @@
89
89
  "npm-package-json-lint-config-default": "^6.0.0",
90
90
  "parse-git-config": "^3.0.0",
91
91
  "prettier": "^3.1.1",
92
- "publint": "^0.2.6",
93
- "reflect-metadata": "^0.1.14",
92
+ "publint": "^0.2.7",
93
+ "reflect-metadata": "^0.2.1",
94
94
  "rimraf": "^4.4.1",
95
- "rollup": "^4.9.0",
95
+ "rollup": "^4.9.2",
96
96
  "rollup-plugin-exclude-dependencies-from-bundle": "^1.1.23",
97
97
  "rollup-plugin-node-externals": "^6.1.2",
98
98
  "supertest": "^6.3.3",
@@ -102,19 +102,19 @@
102
102
  "tsc-prog": "^2.3.0",
103
103
  "tslib": "^2.6.2",
104
104
  "tsup": "^7.3.0",
105
- "typedoc": "^0.25.4",
105
+ "typedoc": "^0.25.6",
106
106
  "types-package-json": "^2.0.39",
107
107
  "yargs": "^17.7.2"
108
108
  },
109
109
  "description": "TypeScript project scripts",
110
110
  "devDependencies": {
111
- "@types/eslint": "^8.44.9",
111
+ "@types/eslint": "^8.56.1",
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.24",
116
- "@xylabs/tsconfig": "~3.2.24",
117
- "publint": "^0.2.6",
115
+ "@xylabs/eslint-config": "~3.2.26",
116
+ "@xylabs/tsconfig": "~3.2.26",
117
+ "publint": "^0.2.7",
118
118
  "typescript": "^5.3.3"
119
119
  },
120
120
  "peerDependencies": {
@@ -169,5 +169,5 @@
169
169
  "package-clean": "echo Not cleaning..."
170
170
  },
171
171
  "sideEffects": false,
172
- "version": "3.2.24"
172
+ "version": "3.2.26"
173
173
  }
@@ -6,6 +6,7 @@ export interface DepsParams {
6
6
  incremental?: boolean
7
7
  jobs?: number
8
8
  pkg?: string
9
+ verbose?: boolean
9
10
  }
10
11
 
11
12
  export interface DepsPackageParams {
@@ -24,14 +25,15 @@ export const depsPackage = ({ pkg }: DepsPackageParams) => {
24
25
  return runSteps(`Deps [${pkg}]`, [...steps])
25
26
  }
26
27
 
27
- export const depsAll = ({ incremental, jobs }: DepsParams) => {
28
+ export const depsAll = ({ incremental, jobs, verbose }: DepsParams) => {
28
29
  const start = Date.now()
29
30
  const jobsOptions = jobs ? ['-j', `${jobs}`] : []
31
+ const verboseOptions = verbose ? ['--verbose'] : ['--no-verbose']
30
32
  if (jobs) {
31
33
  console.log(chalk.blue(`Jobs set to [${jobs}]`))
32
34
  }
33
35
  const incrementalOptions = incremental ? ['--since', '-pA'] : ['-pA']
34
- const steps: ScriptStep[] = [['yarn', ['workspaces', 'foreach', ...jobsOptions, ...incrementalOptions, 'run', 'package-deps']]]
36
+ const steps: ScriptStep[] = [['yarn', ['workspaces', 'foreach', ...jobsOptions, ...incrementalOptions, ...verboseOptions, 'run', 'package-deps']]]
35
37
 
36
38
  const result = runSteps(`Deps${incremental ? '-Incremental' : ''} [All]`, [...steps])
37
39
  console.log(`${chalk.gray('Dep checked in')} [${chalk.magenta(((Date.now() - start) / 1000).toFixed(2))}] ${chalk.gray('seconds')}`)
@@ -30,7 +30,7 @@ export const packageDeps = async () => {
30
30
  'typescript',
31
31
  ]
32
32
 
33
- const unusedList = await Promise.all([
33
+ const [codeResults, testsResults] = await Promise.all([
34
34
  depcheck(`${pkg}/.`, {
35
35
  ignoreMatches: [...defaultIgnoreMatches, ...ignoreMatches],
36
36
  ignorePatterns: ['*.stories.*', '*.spec.*', ...defaultIgnorePatterns],
@@ -42,13 +42,10 @@ export const packageDeps = async () => {
42
42
  }),
43
43
  ])
44
44
 
45
- const unusedCode = unusedList[0]
46
- const unusedTests = unusedList[1]
47
-
48
45
  const unused: depcheck.Results = {
49
- ...unusedCode,
46
+ ...codeResults,
50
47
  /* we only reports the unused devDeps if both are not using it */
51
- devDependencies: unusedTests.devDependencies.filter((value) => !!unusedCode.devDependencies.find((devValue) => devValue === value)),
48
+ devDependencies: testsResults.devDependencies.filter((value) => codeResults.devDependencies.includes(value)),
52
49
  }
53
50
 
54
51
  const errorCount =
@@ -84,18 +81,29 @@ export const packageDeps = async () => {
84
81
  Object.entries(unused.invalidFiles).forEach(([key, value]) => console.warn(chalk.gray(`Invalid File: ${key}: ${value}`)))
85
82
  }
86
83
 
87
- if (Object.entries(unusedCode.missing).length) {
88
- const message = [chalk.yellow(`${Object.entries(unusedCode.missing).length} Missing dependencies`)]
89
- Object.entries(unusedCode.missing).forEach(([key, value]) => {
84
+ const missingDeps = Object.keys(codeResults.using).filter((key) => !codeResults.dependencies.includes(key))
85
+
86
+ if (Object.entries(codeResults.missing).length) {
87
+ const message = [chalk.yellow(`${Object.entries(codeResults.missing).length} Missing dependencies`)]
88
+ Object.entries(codeResults.missing).forEach(([key, value]) => {
90
89
  message.push(`${key}`)
91
90
  message.push(chalk.gray(` ${value.pop()}`))
92
91
  })
93
92
  console.log(chalk.yellow(message.join('\n')))
94
93
  }
95
94
 
96
- if (Object.entries(unusedTests.missing).length) {
97
- const message = [chalk.yellow(`${Object.entries(unusedTests.missing).length} Missing devDependencies`)]
98
- Object.entries(unusedTests.missing).forEach(([key, value]) => {
95
+ if (Object.entries(codeResults.missing).length) {
96
+ const message = [chalk.yellow(`${missingDeps.length} Missing dependencies [alt]`)]
97
+ missingDeps.forEach((key) => {
98
+ message.push(`${key}`)
99
+ message.push(chalk.gray(` ${codeResults.using[key].pop()}`))
100
+ })
101
+ console.log(chalk.yellow(message.join('\n')))
102
+ }
103
+
104
+ if (Object.entries(testsResults.missing).length) {
105
+ const message = [chalk.yellow(`${Object.entries(testsResults.missing).length} Missing devDependencies`)]
106
+ Object.entries(testsResults.missing).forEach(([key, value]) => {
99
107
  message.push(`${key}`)
100
108
  message.push(chalk.gray(` ${value.pop()}`))
101
109
  })