@xylabs/ts-scripts-yarn3 2.12.32 → 2.13.0
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/.tsconfig.build.cjs.json +3 -1
- package/.tsconfig.build.esm.json +5 -3
- package/dist/.tsconfig.build.cjs.tsbuildinfo +1 -1
- package/dist/.tsconfig.build.esm.tsbuildinfo +1 -1
- package/dist/cjs/actions/dupdeps.d.ts +2 -0
- package/dist/cjs/actions/dupdeps.d.ts.map +1 -0
- package/dist/cjs/actions/dupdeps.js +15 -0
- package/dist/cjs/actions/dupdeps.js.map +1 -0
- package/dist/cjs/actions/gitlint.d.ts +1 -1
- package/dist/cjs/actions/index.d.ts +2 -0
- package/dist/cjs/actions/index.d.ts.map +1 -1
- package/dist/cjs/actions/index.js +2 -0
- package/dist/cjs/actions/index.js.map +1 -1
- package/dist/cjs/actions/statics.d.ts +2 -0
- package/dist/cjs/actions/statics.d.ts.map +1 -0
- package/dist/cjs/actions/statics.js +15 -0
- package/dist/cjs/actions/statics.js.map +1 -0
- package/dist/cjs/actions/tsconfig-gen-cjs.d.ts +1 -1
- package/dist/cjs/actions/tsconfig-gen-cjs.d.ts.map +1 -1
- package/dist/cjs/actions/tsconfig-gen-cjs.js +1 -10
- package/dist/cjs/actions/tsconfig-gen-cjs.js.map +1 -1
- package/dist/cjs/actions/tsconfig-gen-clean.d.ts +1 -1
- package/dist/cjs/actions/tsconfig-gen-esm.d.ts +1 -1
- package/dist/cjs/actions/tsconfig-gen-esm.d.ts.map +1 -1
- package/dist/cjs/actions/tsconfig-gen-esm.js +1 -10
- package/dist/cjs/actions/tsconfig-gen-esm.js.map +1 -1
- package/dist/cjs/actions/tsconfig-gen-test.d.ts +1 -1
- package/dist/cjs/actions/tsconfig-gen.d.ts +1 -1
- package/dist/cjs/lib/createBuildConfig.d.ts +2 -0
- package/dist/cjs/lib/createBuildConfig.d.ts.map +1 -0
- package/dist/cjs/lib/createBuildConfig.js +22 -0
- package/dist/cjs/lib/createBuildConfig.js.map +1 -0
- package/dist/cjs/lib/defaultBuildConfig.d.ts +8 -0
- package/dist/cjs/lib/defaultBuildConfig.d.ts.map +1 -0
- package/dist/cjs/lib/defaultBuildConfig.js +11 -0
- package/dist/cjs/lib/defaultBuildConfig.js.map +1 -0
- package/dist/cjs/lib/dependencies/DuplicateDetector.d.ts +9 -0
- package/dist/cjs/lib/dependencies/DuplicateDetector.d.ts.map +1 -0
- package/dist/cjs/lib/dependencies/DuplicateDetector.js +46 -0
- package/dist/cjs/lib/dependencies/DuplicateDetector.js.map +1 -0
- package/dist/cjs/lib/dependencies/detectDuplicateDependencies.d.ts +2 -0
- package/dist/cjs/lib/dependencies/detectDuplicateDependencies.d.ts.map +1 -0
- package/dist/cjs/lib/dependencies/detectDuplicateDependencies.js +44 -0
- package/dist/cjs/lib/dependencies/detectDuplicateDependencies.js.map +1 -0
- package/dist/cjs/lib/dependencies/index.d.ts +3 -0
- package/dist/cjs/lib/dependencies/index.d.ts.map +1 -0
- package/dist/cjs/lib/dependencies/index.js +6 -0
- package/dist/cjs/lib/dependencies/index.js.map +1 -0
- package/dist/cjs/lib/index.d.ts +5 -0
- package/dist/cjs/lib/index.d.ts.map +1 -1
- package/dist/cjs/lib/index.js +5 -0
- package/dist/cjs/lib/index.js.map +1 -1
- package/dist/cjs/lib/jsonFormatters.d.ts +2 -0
- package/dist/cjs/lib/jsonFormatters.d.ts.map +1 -0
- package/dist/cjs/lib/jsonFormatters.js +11 -0
- package/dist/cjs/lib/jsonFormatters.js.map +1 -0
- package/dist/cjs/lib/parsedPackageJSON.d.ts +2 -0
- package/dist/cjs/lib/parsedPackageJSON.d.ts.map +1 -0
- package/dist/cjs/lib/parsedPackageJSON.js +12 -0
- package/dist/cjs/lib/parsedPackageJSON.js.map +1 -0
- package/dist/cjs/lib/withErrnoException.d.ts +0 -1
- package/dist/cjs/lib/withErrnoException.d.ts.map +1 -1
- package/dist/cjs/lib/xy/xy.d.ts.map +1 -1
- package/dist/cjs/lib/xy/xy.js +4 -1
- package/dist/cjs/lib/xy/xy.js.map +1 -1
- package/dist/cjs/lib/xy/xyInstallCommands.d.ts.map +1 -1
- package/dist/cjs/lib/xy/xyInstallCommands.js +14 -0
- package/dist/cjs/lib/xy/xyInstallCommands.js.map +1 -1
- package/dist/esm/actions/dupdeps.d.ts +2 -0
- package/dist/esm/actions/dupdeps.d.ts.map +1 -0
- package/dist/esm/actions/dupdeps.js +9 -0
- package/dist/esm/actions/dupdeps.js.map +1 -0
- package/dist/esm/actions/gitlint.d.ts +1 -1
- package/dist/esm/actions/index.d.ts +2 -0
- package/dist/esm/actions/index.d.ts.map +1 -1
- package/dist/esm/actions/index.js +2 -0
- package/dist/esm/actions/index.js.map +1 -1
- package/dist/esm/actions/statics.d.ts +2 -0
- package/dist/esm/actions/statics.d.ts.map +1 -0
- package/dist/esm/actions/statics.js +9 -0
- package/dist/esm/actions/statics.js.map +1 -0
- package/dist/esm/actions/tsconfig-gen-cjs.d.ts +1 -1
- package/dist/esm/actions/tsconfig-gen-cjs.d.ts.map +1 -1
- package/dist/esm/actions/tsconfig-gen-cjs.js +2 -11
- package/dist/esm/actions/tsconfig-gen-cjs.js.map +1 -1
- package/dist/esm/actions/tsconfig-gen-clean.d.ts +1 -1
- package/dist/esm/actions/tsconfig-gen-esm.d.ts +1 -1
- package/dist/esm/actions/tsconfig-gen-esm.d.ts.map +1 -1
- package/dist/esm/actions/tsconfig-gen-esm.js +2 -11
- package/dist/esm/actions/tsconfig-gen-esm.js.map +1 -1
- package/dist/esm/actions/tsconfig-gen-test.d.ts +1 -1
- package/dist/esm/actions/tsconfig-gen.d.ts +1 -1
- package/dist/esm/lib/createBuildConfig.d.ts +2 -0
- package/dist/esm/lib/createBuildConfig.d.ts.map +1 -0
- package/dist/esm/lib/createBuildConfig.js +28 -0
- package/dist/esm/lib/createBuildConfig.js.map +1 -0
- package/dist/esm/lib/defaultBuildConfig.d.ts +8 -0
- package/dist/esm/lib/defaultBuildConfig.d.ts.map +1 -0
- package/dist/esm/lib/defaultBuildConfig.js +8 -0
- package/dist/esm/lib/defaultBuildConfig.js.map +1 -0
- package/dist/esm/lib/dependencies/DuplicateDetector.d.ts +9 -0
- package/dist/esm/lib/dependencies/DuplicateDetector.d.ts.map +1 -0
- package/dist/esm/lib/dependencies/DuplicateDetector.js +43 -0
- package/dist/esm/lib/dependencies/DuplicateDetector.js.map +1 -0
- package/dist/esm/lib/dependencies/detectDuplicateDependencies.d.ts +2 -0
- package/dist/esm/lib/dependencies/detectDuplicateDependencies.d.ts.map +1 -0
- package/dist/esm/lib/dependencies/detectDuplicateDependencies.js +40 -0
- package/dist/esm/lib/dependencies/detectDuplicateDependencies.js.map +1 -0
- package/dist/esm/lib/dependencies/index.d.ts +3 -0
- package/dist/esm/lib/dependencies/index.d.ts.map +1 -0
- package/dist/esm/lib/dependencies/index.js +3 -0
- package/dist/esm/lib/dependencies/index.js.map +1 -0
- package/dist/esm/lib/index.d.ts +5 -0
- package/dist/esm/lib/index.d.ts.map +1 -1
- package/dist/esm/lib/index.js +5 -0
- package/dist/esm/lib/index.js.map +1 -1
- package/dist/esm/lib/jsonFormatters.d.ts +2 -0
- package/dist/esm/lib/jsonFormatters.d.ts.map +1 -0
- package/dist/esm/lib/jsonFormatters.js +7 -0
- package/dist/esm/lib/jsonFormatters.js.map +1 -0
- package/dist/esm/lib/parsedPackageJSON.d.ts +2 -0
- package/dist/esm/lib/parsedPackageJSON.d.ts.map +1 -0
- package/dist/esm/lib/parsedPackageJSON.js +7 -0
- package/dist/esm/lib/parsedPackageJSON.js.map +1 -0
- package/dist/esm/lib/withErrnoException.d.ts +0 -1
- package/dist/esm/lib/withErrnoException.d.ts.map +1 -1
- package/dist/esm/lib/xy/xy.d.ts.map +1 -1
- package/dist/esm/lib/xy/xy.js +4 -1
- package/dist/esm/lib/xy/xy.js.map +1 -1
- package/dist/esm/lib/xy/xyInstallCommands.d.ts.map +1 -1
- package/dist/esm/lib/xy/xyInstallCommands.js +15 -1
- package/dist/esm/lib/xy/xyInstallCommands.js.map +1 -1
- package/dist/tsconfig.build.cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.build.esm.tsbuildinfo +1 -1
- package/package.json +6 -6
- package/src/actions/dupdeps.ts +12 -0
- package/src/actions/index.ts +2 -0
- package/src/actions/statics.ts +13 -0
- package/src/actions/tsconfig-gen-cjs.ts +2 -16
- package/src/actions/tsconfig-gen-esm.ts +2 -16
- package/src/lib/createBuildConfig.ts +35 -0
- package/src/lib/defaultBuildConfig.ts +7 -0
- package/src/lib/dependencies/DuplicateDetector.ts +62 -0
- package/src/lib/dependencies/detectDuplicateDependencies.ts +42 -0
- package/src/lib/dependencies/index.ts +2 -0
- package/src/lib/index.ts +5 -0
- package/src/lib/jsonFormatters.ts +6 -0
- package/src/lib/parsedPackageJSON.ts +7 -0
- package/src/lib/xy/xy.ts +4 -1
- package/src/lib/xy/xyInstallCommands.ts +23 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import chalk from 'chalk'
|
|
2
2
|
import { readFileSync, writeFileSync } from 'fs'
|
|
3
3
|
|
|
4
|
-
import { yarnWorkspaces } from '../lib'
|
|
4
|
+
import { createBuildConfig, yarnWorkspaces } from '../lib'
|
|
5
5
|
|
|
6
6
|
export const tsconfigGenEsm = (pkg?: string) => {
|
|
7
7
|
const workspaces = yarnWorkspaces()
|
|
@@ -11,24 +11,10 @@ export const tsconfigGenEsm = (pkg?: string) => {
|
|
|
11
11
|
|
|
12
12
|
console.log(chalk.green('Generate Configs [ESM]'))
|
|
13
13
|
|
|
14
|
-
const config = JSON.stringify(
|
|
15
|
-
{
|
|
16
|
-
compilerOptions: {
|
|
17
|
-
module: 'ESNEXT',
|
|
18
|
-
outDir: './dist/esm',
|
|
19
|
-
target: 'ESNEXT',
|
|
20
|
-
},
|
|
21
|
-
exclude: ['**/*.spec.*', '**/*.spec', '**/*.stories.*', '**/*.example.*', '**/spec/*', '**/stories/*'],
|
|
22
|
-
extends: './tsconfig.json',
|
|
23
|
-
include: ['src'],
|
|
24
|
-
},
|
|
25
|
-
null,
|
|
26
|
-
2,
|
|
27
|
-
)
|
|
28
|
-
|
|
29
14
|
return workspaceList
|
|
30
15
|
.map(({ location, name }) => {
|
|
31
16
|
try {
|
|
17
|
+
const config = JSON.stringify(createBuildConfig(location, 'ESNext', 'ESNext', 'esm'), null, 2)
|
|
32
18
|
let currentConfig: string | undefined
|
|
33
19
|
try {
|
|
34
20
|
currentConfig = readFileSync(`${location}/.tsconfig.build.esm.json`, { encoding: 'utf8' })
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { readFileSync } from 'fs'
|
|
2
|
+
|
|
3
|
+
import { defaultBuildConfig } from './defaultBuildConfig'
|
|
4
|
+
|
|
5
|
+
const getGeneralTypescriptConfig = (location: string) => {
|
|
6
|
+
let generalConfig: string | undefined
|
|
7
|
+
try {
|
|
8
|
+
generalConfig = readFileSync(`${location}/tsconfig.json`, { encoding: 'utf8' })
|
|
9
|
+
} catch (ex) {
|
|
10
|
+
throw new Error('No tsconfig.json file found')
|
|
11
|
+
}
|
|
12
|
+
return JSON.parse(generalConfig)
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export const createBuildConfig = (
|
|
16
|
+
location: string,
|
|
17
|
+
module: 'ESNext' | 'CommonJS',
|
|
18
|
+
target: 'ESNext' | 'ES6',
|
|
19
|
+
outDirSuffix: string,
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
21
|
+
): Record<string, any> => {
|
|
22
|
+
const generalConfigObject = getGeneralTypescriptConfig(location)
|
|
23
|
+
return {
|
|
24
|
+
...generalConfigObject,
|
|
25
|
+
compilerOptions: {
|
|
26
|
+
...defaultBuildConfig.compilerOptions,
|
|
27
|
+
...(generalConfigObject.compilerOptions ?? {}),
|
|
28
|
+
module,
|
|
29
|
+
outDir: `./${generalConfigObject.compilerOptions?.outDir ?? 'dist'}/${outDirSuffix}`,
|
|
30
|
+
target,
|
|
31
|
+
},
|
|
32
|
+
exclude: [...(generalConfigObject.exclude ?? []), ...defaultBuildConfig.exclude],
|
|
33
|
+
include: [...(generalConfigObject.include ?? []), ...defaultBuildConfig.include],
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import chalk from 'chalk'
|
|
2
|
+
// eslint-disable-next-line import/no-internal-modules
|
|
3
|
+
import uniq from 'lodash/uniq'
|
|
4
|
+
import { EOL } from 'os'
|
|
5
|
+
|
|
6
|
+
import { multiLineToJSONArray } from '../jsonFormatters'
|
|
7
|
+
|
|
8
|
+
interface DependencyEntry {
|
|
9
|
+
children: Record<string, Record<string, string>>
|
|
10
|
+
value: string
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
type DependencyEntries = DependencyEntry[]
|
|
14
|
+
|
|
15
|
+
interface Results {
|
|
16
|
+
currentVersion: string | undefined
|
|
17
|
+
dependency: string
|
|
18
|
+
duplicateVersions: string[]
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export class DuplicateDetector {
|
|
22
|
+
private dependency: string
|
|
23
|
+
private dependencyEntries: DependencyEntries
|
|
24
|
+
|
|
25
|
+
constructor(output: string, dependency: string) {
|
|
26
|
+
this.dependency = dependency
|
|
27
|
+
this.dependencyEntries = multiLineToJSONArray(output)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
public detect() {
|
|
31
|
+
const result = this.dependencyEntries.reduce(this.detectReducer, this.resultsFactory(this.dependency))
|
|
32
|
+
if (result.duplicateVersions.length) {
|
|
33
|
+
console.log(chalk.yellow(`${EOL}Duplicates found for: ${this.dependency}`))
|
|
34
|
+
console.log(chalk.grey(` ${result.duplicateVersions.toString().replaceAll(',', `${EOL} `)}`, EOL))
|
|
35
|
+
return 1
|
|
36
|
+
} else {
|
|
37
|
+
console.log(`${this.dependency} - OK`)
|
|
38
|
+
return 0
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
private detectReducer(acc: Results, entry: DependencyEntry) {
|
|
43
|
+
const version = Object.entries(entry.children).map(([k]) => k)[0]
|
|
44
|
+
|
|
45
|
+
if (!acc.currentVersion) {
|
|
46
|
+
acc.currentVersion = version
|
|
47
|
+
return acc
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
if (acc.currentVersion && acc.currentVersion !== version && !version.includes('@virtual:')) {
|
|
51
|
+
// if first duplicate, push the current version as the first duplicate
|
|
52
|
+
if (acc.duplicateVersions.length === 0) {
|
|
53
|
+
acc.duplicateVersions.push(acc.currentVersion)
|
|
54
|
+
}
|
|
55
|
+
acc.duplicateVersions.push(version)
|
|
56
|
+
acc.duplicateVersions = uniq(acc.duplicateVersions)
|
|
57
|
+
}
|
|
58
|
+
return acc
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
private resultsFactory = (dependency: string): Results => ({ currentVersion: undefined, dependency, duplicateVersions: [] })
|
|
62
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { execSync } from 'child_process'
|
|
2
|
+
|
|
3
|
+
import { safeExit } from '../safeExit'
|
|
4
|
+
import { DuplicateDetector } from './DuplicateDetector'
|
|
5
|
+
|
|
6
|
+
export const detectDuplicateDependencies = (depsFromPackageJSON?: string[], DefaultDependencies?: string[]) => {
|
|
7
|
+
let exitCode = 0
|
|
8
|
+
|
|
9
|
+
const dependencies = depsFromPackageJSON?.length ? depsFromPackageJSON : DefaultDependencies
|
|
10
|
+
|
|
11
|
+
return safeExit(() => {
|
|
12
|
+
if (dependencies) {
|
|
13
|
+
dependencies.forEach((dependency) => {
|
|
14
|
+
let output: string
|
|
15
|
+
|
|
16
|
+
try {
|
|
17
|
+
const cmd = `yarn why ${dependency} --json`
|
|
18
|
+
output = execSync(cmd).toString()
|
|
19
|
+
} catch (e) {
|
|
20
|
+
console.error(`Error running yarn why: ${e}`)
|
|
21
|
+
exitCode = 1
|
|
22
|
+
return
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if (output) {
|
|
26
|
+
exitCode = new DuplicateDetector(output, dependency).detect()
|
|
27
|
+
return
|
|
28
|
+
} else {
|
|
29
|
+
console.log(`${dependency} - N/A`)
|
|
30
|
+
if (depsFromPackageJSON) {
|
|
31
|
+
console.log(`🚨 Library ${dependency} was requested in package.json but not found`)
|
|
32
|
+
}
|
|
33
|
+
exitCode = 1
|
|
34
|
+
return
|
|
35
|
+
}
|
|
36
|
+
})
|
|
37
|
+
return exitCode
|
|
38
|
+
} else {
|
|
39
|
+
console.log('🚨 No dependencies where passed')
|
|
40
|
+
}
|
|
41
|
+
})
|
|
42
|
+
}
|
package/src/lib/index.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
+
export * from './createBuildConfig'
|
|
2
|
+
export * from './defaultBuildConfig'
|
|
3
|
+
export * from './dependencies'
|
|
1
4
|
export * from './isYarnVersionOrGreater'
|
|
5
|
+
export * from './jsonFormatters'
|
|
6
|
+
export * from './parsedPackageJSON'
|
|
2
7
|
export * from './processEx'
|
|
3
8
|
export * from './runSteps'
|
|
4
9
|
export * from './runStepsAsync'
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export const multiLineToJSONArray = (output: string) => {
|
|
2
|
+
const withCommas = output.replace(/\r\n/g, '').replace(/\n/g, ',')
|
|
3
|
+
const cleanCollection = withCommas.substring(0, withCommas.length - 1)
|
|
4
|
+
const collection = `[${cleanCollection}]`
|
|
5
|
+
return JSON.parse(collection)
|
|
6
|
+
}
|
package/src/lib/xy/xy.ts
CHANGED
|
@@ -6,5 +6,8 @@ import { xyLintCommands } from './xyLintCommands'
|
|
|
6
6
|
import { xyParseOptions } from './xyParseOptions'
|
|
7
7
|
|
|
8
8
|
export const xy = () => {
|
|
9
|
-
return xyBuildCommands(xyCommonCommands(xyInstallCommands(xyDeployCommands(xyLintCommands(xyParseOptions())))))
|
|
9
|
+
return xyBuildCommands(xyCommonCommands(xyInstallCommands(xyDeployCommands(xyLintCommands(xyParseOptions())))))
|
|
10
|
+
.demandCommand(1)
|
|
11
|
+
.version()
|
|
12
|
+
.help().argv
|
|
10
13
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import yargs from 'yargs'
|
|
2
2
|
|
|
3
|
-
import { clean, reinstall, up, updo } from '../../actions'
|
|
3
|
+
import { clean, dupdeps, reinstall, statics, up, updo } from '../../actions'
|
|
4
4
|
|
|
5
5
|
export const xyInstallCommands = (args: yargs.Argv) => {
|
|
6
6
|
return args
|
|
@@ -50,4 +50,26 @@ export const xyInstallCommands = (args: yargs.Argv) => {
|
|
|
50
50
|
process.exitCode = updo()
|
|
51
51
|
},
|
|
52
52
|
)
|
|
53
|
+
.command(
|
|
54
|
+
'statics',
|
|
55
|
+
'Statics - Confirming Static Packages',
|
|
56
|
+
(yargs) => {
|
|
57
|
+
return yargs
|
|
58
|
+
},
|
|
59
|
+
(argv) => {
|
|
60
|
+
if (argv.verbose) console.log('Statics')
|
|
61
|
+
process.exitCode = statics()
|
|
62
|
+
},
|
|
63
|
+
)
|
|
64
|
+
.command(
|
|
65
|
+
'dupdeps',
|
|
66
|
+
'Dupdeps - Duplicate Dependencies in package.json',
|
|
67
|
+
(yargs) => {
|
|
68
|
+
return yargs
|
|
69
|
+
},
|
|
70
|
+
(argv) => {
|
|
71
|
+
if (argv.verbose) console.log('Dupdeps')
|
|
72
|
+
process.exitCode = dupdeps()
|
|
73
|
+
},
|
|
74
|
+
)
|
|
53
75
|
}
|