@xylabs/ts-scripts-yarn3 3.0.11 → 3.0.12

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.
Files changed (73) hide show
  1. package/dist/actions/package/compile/CompileParams.js +17 -0
  2. package/dist/actions/package/compile/CompileParams.js.map +1 -0
  3. package/dist/actions/package/compile/CompileParams.mjs +1 -0
  4. package/dist/actions/package/compile/CompileParams.mjs.map +1 -0
  5. package/dist/actions/package/compile/compile.js +86 -0
  6. package/dist/actions/package/compile/compile.js.map +1 -0
  7. package/dist/actions/package/compile/compile.mjs +52 -0
  8. package/dist/actions/package/compile/compile.mjs.map +1 -0
  9. package/dist/actions/package/compile/copyTypeFiles.js +49 -0
  10. package/dist/actions/package/compile/copyTypeFiles.js.map +1 -0
  11. package/dist/actions/package/compile/copyTypeFiles.mjs +25 -0
  12. package/dist/actions/package/compile/copyTypeFiles.mjs.map +1 -0
  13. package/dist/actions/package/compile/index.js +29 -0
  14. package/dist/actions/package/compile/index.js.map +1 -0
  15. package/dist/actions/package/compile/index.mjs +5 -0
  16. package/dist/actions/package/compile/index.mjs.map +1 -0
  17. package/dist/actions/package/compile/inputs.js +58 -0
  18. package/dist/actions/package/compile/inputs.js.map +1 -0
  19. package/dist/actions/package/compile/inputs.mjs +32 -0
  20. package/dist/actions/package/compile/inputs.mjs.map +1 -0
  21. package/dist/actions/package/{compile.js → compile/rollup.js} +24 -75
  22. package/dist/actions/package/compile/rollup.js.map +1 -0
  23. package/dist/actions/package/compile/rollup.mjs +98 -0
  24. package/dist/actions/package/compile/rollup.mjs.map +1 -0
  25. package/dist/actions/package/compile/tsc.js +114 -0
  26. package/dist/actions/package/compile/tsc.js.map +1 -0
  27. package/dist/actions/package/compile/tsc.mjs +80 -0
  28. package/dist/actions/package/compile/tsc.mjs.map +1 -0
  29. package/dist/actions/package/compile/tscTypes.js +55 -0
  30. package/dist/actions/package/compile/tscTypes.js.map +1 -0
  31. package/dist/actions/package/compile/tscTypes.mjs +31 -0
  32. package/dist/actions/package/compile/tscTypes.mjs.map +1 -0
  33. package/dist/actions/package/compile/tsup.js +75 -0
  34. package/dist/actions/package/compile/tsup.js.map +1 -0
  35. package/dist/actions/package/compile/tsup.mjs +51 -0
  36. package/dist/actions/package/compile/tsup.mjs.map +1 -0
  37. package/dist/actions/package/publint.js +1 -1
  38. package/dist/actions/package/publint.js.map +1 -1
  39. package/dist/actions/package/publint.mjs +1 -1
  40. package/dist/actions/package/publint.mjs.map +1 -1
  41. package/dist/bin/package/compile-tsup.js +31 -0
  42. package/dist/bin/package/compile-tsup.js.map +1 -0
  43. package/dist/bin/package/compile-tsup.mjs +8 -0
  44. package/dist/bin/package/compile-tsup.mjs.map +1 -0
  45. package/dist/index.d.mts +53 -10
  46. package/dist/index.d.ts +53 -10
  47. package/dist/lib/index.js +3 -1
  48. package/dist/lib/index.js.map +1 -1
  49. package/dist/lib/index.mjs +1 -0
  50. package/dist/lib/index.mjs.map +1 -1
  51. package/dist/lib/loadConfig.js +54 -0
  52. package/dist/lib/loadConfig.js.map +1 -0
  53. package/dist/lib/loadConfig.mjs +20 -0
  54. package/dist/lib/loadConfig.mjs.map +1 -0
  55. package/package.json +5 -6
  56. package/src/actions/package/compile/CompileParams.ts +10 -0
  57. package/src/actions/package/compile/compile.ts +59 -0
  58. package/src/actions/package/compile/copyTypeFiles.ts +27 -0
  59. package/src/actions/package/compile/index.ts +4 -0
  60. package/src/actions/package/compile/inputs.ts +33 -0
  61. package/src/actions/package/compile/rollup.ts +108 -0
  62. package/src/actions/package/compile/tsc.ts +100 -0
  63. package/src/actions/package/compile/tscTypes.ts +32 -0
  64. package/src/actions/package/compile/tsup.ts +64 -0
  65. package/src/actions/package/publint.ts +5 -1
  66. package/src/bin/package/compile-tsup.ts +9 -0
  67. package/src/lib/index.ts +1 -0
  68. package/src/lib/loadConfig.ts +19 -0
  69. package/tsconfig.json +1 -7
  70. package/dist/actions/package/compile.js.map +0 -1
  71. package/dist/actions/package/compile.mjs +0 -150
  72. package/dist/actions/package/compile.mjs.map +0 -1
  73. package/src/actions/package/compile.ts +0 -177
@@ -1,177 +0,0 @@
1
- import commonjs from '@rollup/plugin-commonjs'
2
- import json from '@rollup/plugin-json'
3
- import typescript from '@rollup/plugin-typescript'
4
- import chalk from 'chalk'
5
- import { cosmiconfig } from 'cosmiconfig'
6
- import { copyFile, readdir } from 'fs/promises'
7
- import { OutputOptions, rollup, RollupLog, RollupOptions } from 'rollup'
8
- import externalDeps from 'rollup-plugin-exclude-dependencies-from-bundle'
9
- import nodeExternals from 'rollup-plugin-node-externals'
10
-
11
- import { loadPackageConfig, PackageJsonEx } from '../../loadPackageConfig'
12
- import { packagePublint } from './publint'
13
-
14
- export interface CompilePackageParams {
15
- publint?: boolean
16
- verbose?: boolean
17
- }
18
-
19
- const rollItUp = async (format: 'cjs' | 'esm', ext: string, subDir?: string) => {
20
- const dir = subDir === '.' ? undefined : subDir
21
- const input = await getInputs(dir)
22
- const tsPlugIn = typescript({
23
- baseUrl: 'src',
24
- declaration: !dir || !subDir,
25
- declarationMap: !dir || !subDir,
26
- emitDeclarationOnly: false,
27
- esModuleInterop: true,
28
- exclude: ['**/*.spec.*', 'dist', 'docs', 'node_modules', 'packages'],
29
- outDir: dir ? `dist/${dir}` : 'dist',
30
- rootDir: 'src',
31
- tsconfig: 'tsconfig.json',
32
- })
33
-
34
- const errors: RollupLog[] = []
35
- const warnings: RollupLog[] = []
36
- const infos: RollupLog[] = []
37
- const debugs: RollupLog[] = []
38
-
39
- const options: RollupOptions = {
40
- input: subDir ? input.map((file) => `./src/${file}`) : ['./src/index.ts'],
41
- logLevel: 'warn',
42
- onLog: (level, log, defaultHandler) => {
43
- const pushLog = !(log.code === 'EMPTY_BUNDLE' || log.code === 'MIXED_EXPORTS' || log.code === 'UNUSED_EXTERNAL_IMPORT')
44
- if (pushLog) {
45
- switch (level) {
46
- case 'warn': {
47
- warnings.push(log)
48
- break
49
- }
50
- case 'info': {
51
- infos.push(log)
52
- break
53
- }
54
- case 'debug': {
55
- debugs.push(log)
56
- break
57
- }
58
- default: {
59
- errors.push(log)
60
- break
61
- }
62
- }
63
- }
64
- console.log(chalk.yellow(`${level}: ${log.message} [${log.code}]`))
65
- if (log.id) {
66
- console.log(chalk.gray(log.id))
67
- }
68
- log.ids?.map((id) => {
69
- console.log(chalk.gray(id))
70
- })
71
- return defaultHandler(level, log)
72
- },
73
- plugins: [commonjs(), externalDeps(), nodeExternals(), json(), tsPlugIn],
74
- }
75
-
76
- const outputOptions: OutputOptions = {
77
- dir: subDir ? `dist/${subDir}` : 'dist',
78
- dynamicImportInCjs: true,
79
- entryFileNames: (chunkInfo) => `${chunkInfo.name}.${ext}`,
80
- format,
81
- sourcemap: true,
82
- }
83
-
84
- if (input.length) {
85
- await (await rollup(options)).write(outputOptions)
86
- }
87
-
88
- return errors.length + warnings.length
89
- }
90
-
91
- const getInputs = async (subDir?: string) => {
92
- return (await readdir(subDir ? `src/${subDir}` : 'src', { recursive: false }))
93
- .filter((file) => (file.endsWith('.ts') || file.endsWith('.tsx')) && !file.endsWith('d.ts') && !file.endsWith('spec.ts'))
94
- .map((file) => (subDir ? `${subDir}/${file}` : file))
95
- }
96
-
97
- const getInputDirs = async (depth: number) => {
98
- if (depth === 0) {
99
- return []
100
- }
101
- return [
102
- '.',
103
- ...(await readdir('src', { recursive: depth > 1, withFileTypes: true }))
104
- .filter((file) => file.isDirectory())
105
- .map((file) => {
106
- const pathParts = file.path.split('/')
107
- pathParts.shift()
108
- if (pathParts.length) {
109
- const root = pathParts.join('/')
110
- return `${root}/${file.name}`
111
- } else {
112
- return file.name
113
- }
114
- }),
115
- ]
116
- }
117
-
118
- const getDistTypeFiles = async () => {
119
- return (await readdir('dist', { recursive: true })).filter((file) => file.endsWith('d.ts')).map((file) => `dist/${file}`)
120
- }
121
-
122
- const getDistTypeMapFiles = async () => {
123
- return (await readdir('dist', { recursive: true })).filter((file) => file.endsWith('d.ts.map')).map((file) => `dist/${file}`)
124
- }
125
-
126
- const buildIt = async (pkg: PackageJsonEx, compileDepth: number) => {
127
- console.log(`Compile Depth: ${compileDepth}`)
128
- const inputDirs = await getInputDirs(compileDepth)
129
-
130
- const pkgType = pkg.type ?? 'commonjs'
131
-
132
- const esmExt = pkgType === 'module' ? 'js' : 'mjs'
133
- const cjsExt = pkgType === 'commonjs' ? 'js' : 'cjs'
134
-
135
- const rollupResult = inputDirs.length
136
- ? await Promise.all(
137
- inputDirs.map(async (inputDir) => {
138
- return (await rollItUp('esm', esmExt, inputDir)) + (await rollItUp('cjs', cjsExt, inputDir))
139
- }),
140
- )
141
- : [(await rollItUp('esm', esmExt)) + (await rollItUp('cjs', cjsExt))]
142
-
143
- //hybrid packages want two copies of the types
144
- const distTypeFiles = await getDistTypeFiles()
145
- await Promise.all(
146
- distTypeFiles.map(async (file) => {
147
- await copyFile(file, file.replace('d.ts', 'd.mts'))
148
- }),
149
- )
150
-
151
- const distTypeMapFiles = await getDistTypeMapFiles()
152
- await Promise.all(
153
- distTypeMapFiles.map(async (file) => {
154
- await copyFile(file, file.replace('d.ts.map', 'd.mts.map'))
155
- }),
156
- )
157
-
158
- return rollupResult.reduce((prev, item) => prev + item, 0)
159
- }
160
-
161
- export const packageCompile = async ({ publint = true, verbose }: CompilePackageParams = { verbose: false }) => {
162
- const xyConfig = await cosmiconfig('xy').search()
163
- const compileDepth: number = xyConfig?.config.compile?.depth ?? 0
164
- const pkgName = process.env.npm_package_name
165
- if (verbose) {
166
- console.log(chalk.green(`Compiling ${pkgName} Start`))
167
- }
168
- const result = (await buildIt(await loadPackageConfig(), compileDepth)) + (publint ? await packagePublint() : 0)
169
- if (result) {
170
- const input = await getInputs()
171
- console.log(`Inputs: ${JSON.stringify(input, null, 2)}`)
172
- console.error(chalk.red(`Compiling ${pkgName} Failed [${result}]`))
173
- } else if (verbose) {
174
- console.log(chalk.green(`Compiling ${pkgName} Done`))
175
- }
176
- return result
177
- }