@xylabs/ts-scripts-yarn3 6.5.18 → 7.0.0-rc.10
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/dist/actions/index.mjs +110 -130
- package/dist/actions/index.mjs.map +1 -1
- package/dist/actions/package/compile/buildEntries.mjs +8 -1
- package/dist/actions/package/compile/buildEntries.mjs.map +1 -1
- package/dist/actions/package/compile/compile.mjs +87 -107
- package/dist/actions/package/compile/compile.mjs.map +1 -1
- package/dist/actions/package/compile/index.mjs +88 -108
- package/dist/actions/package/compile/index.mjs.map +1 -1
- package/dist/actions/package/compile/packageCompileTsc.mjs +9 -35
- package/dist/actions/package/compile/packageCompileTsc.mjs.map +1 -1
- package/dist/actions/package/compile/packageCompileTscTypes.mjs +29 -102
- package/dist/actions/package/compile/packageCompileTscTypes.mjs.map +1 -1
- package/dist/actions/package/compile/packageCompileTsup.mjs +96 -135
- package/dist/actions/package/compile/packageCompileTsup.mjs.map +1 -1
- package/dist/actions/package/index.mjs +100 -120
- package/dist/actions/package/index.mjs.map +1 -1
- package/dist/actions/package/recompile.mjs +87 -107
- package/dist/actions/package/recompile.mjs.map +1 -1
- package/dist/bin/package/build-only.mjs +89 -109
- package/dist/bin/package/build-only.mjs.map +1 -1
- package/dist/bin/package/build.mjs +89 -109
- package/dist/bin/package/build.mjs.map +1 -1
- package/dist/bin/package/compile-only.mjs +89 -109
- package/dist/bin/package/compile-only.mjs.map +1 -1
- package/dist/bin/package/compile-tsup.mjs +101 -140
- package/dist/bin/package/compile-tsup.mjs.map +1 -1
- package/dist/bin/package/compile.mjs +89 -109
- package/dist/bin/package/compile.mjs.map +1 -1
- package/dist/bin/package/recompile.mjs +89 -109
- package/dist/bin/package/recompile.mjs.map +1 -1
- package/dist/index.d.ts +24 -7
- package/dist/index.mjs +122 -142
- package/dist/index.mjs.map +1 -1
- package/package.json +8 -5
- package/dist/actions/package/compile/compileTypes.mjs +0 -138
- package/dist/actions/package/compile/compileTypes.mjs.map +0 -1
- package/dist/bin/package/compile-types.mjs +0 -150
- package/dist/bin/package/compile-types.mjs.map +0 -1
|
@@ -1,26 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
// src/bin/package/compile-tsup.ts
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
// src/lib/loadConfig.ts
|
|
7
|
-
import chalk from "chalk";
|
|
8
|
-
import { cosmiconfig } from "cosmiconfig";
|
|
9
|
-
import { TypeScriptLoader } from "cosmiconfig-typescript-loader";
|
|
10
|
-
import deepmerge from "deepmerge";
|
|
11
|
-
var config;
|
|
12
|
-
var loadConfig = async (params) => {
|
|
13
|
-
if (config) {
|
|
14
|
-
return deepmerge(config, params ?? {});
|
|
15
|
-
}
|
|
16
|
-
const cosmicConfigResult = await cosmiconfig("xy", { cache: true, loaders: { ".ts": TypeScriptLoader() } }).search();
|
|
17
|
-
config = cosmicConfigResult?.config;
|
|
18
|
-
const configFilePath = cosmicConfigResult?.filepath;
|
|
19
|
-
if (configFilePath) {
|
|
20
|
-
console.log(chalk.gray(`Loading config from ${configFilePath}`));
|
|
21
|
-
}
|
|
22
|
-
return deepmerge(config, params ?? {});
|
|
23
|
-
};
|
|
4
|
+
import chalk2 from "chalk";
|
|
24
5
|
|
|
25
6
|
// src/actions/package/compile/packageCompileTsup.ts
|
|
26
7
|
import { build, defineConfig } from "tsup";
|
|
@@ -32,7 +13,7 @@ var getAllInputs = (folder) => {
|
|
|
32
13
|
};
|
|
33
14
|
|
|
34
15
|
// src/actions/package/compile/buildEntries.ts
|
|
35
|
-
var buildEntries = (folder, entryMode = "single", excludeSpecAndStories = true, verbose = false) => {
|
|
16
|
+
var buildEntries = (folder, entryMode = "single", options, excludeSpecAndStories = true, verbose = false) => {
|
|
36
17
|
let entries = [];
|
|
37
18
|
switch (entryMode) {
|
|
38
19
|
case "platform": {
|
|
@@ -43,18 +24,48 @@ var buildEntries = (folder, entryMode = "single", excludeSpecAndStories = true,
|
|
|
43
24
|
entries = excludeSpecAndStories ? getAllInputs(folder).filter((entry) => !entry.includes(".spec.") && !entry.includes(".stories.")) : getAllInputs(folder);
|
|
44
25
|
break;
|
|
45
26
|
}
|
|
27
|
+
case "custom": {
|
|
28
|
+
entries = [];
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
46
31
|
default: {
|
|
47
32
|
entries = [`${folder}/index.ts`];
|
|
48
33
|
break;
|
|
49
34
|
}
|
|
50
35
|
}
|
|
36
|
+
if (typeof options !== "boolean" && Array.isArray(options?.entry)) {
|
|
37
|
+
entries.push(...options.entry);
|
|
38
|
+
}
|
|
51
39
|
if (verbose) console.log(`buildEntries [${entryMode}] ${entries.length}`);
|
|
52
40
|
return entries;
|
|
53
41
|
};
|
|
54
42
|
|
|
55
|
-
// src/actions/package/compile/
|
|
43
|
+
// src/actions/package/compile/deepMerge.ts
|
|
44
|
+
function deepMerge(target, source) {
|
|
45
|
+
if (!source || typeof source !== "object") return target;
|
|
46
|
+
for (const key of Object.keys(source)) {
|
|
47
|
+
if (typeof source[key] === "object" && source[key] !== null && !Array.isArray(source[key])) {
|
|
48
|
+
if (!target[key] || typeof target[key] !== "object") {
|
|
49
|
+
target[key] = {};
|
|
50
|
+
}
|
|
51
|
+
deepMerge(target[key], source[key]);
|
|
52
|
+
} else {
|
|
53
|
+
target[key] = source[key];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return target;
|
|
57
|
+
}
|
|
58
|
+
function deepMergeObjects(objects) {
|
|
59
|
+
const result = {};
|
|
60
|
+
for (const obj of objects) {
|
|
61
|
+
deepMerge(result, obj);
|
|
62
|
+
}
|
|
63
|
+
return result;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// src/actions/package/compile/packageCompileTsc.ts
|
|
56
67
|
import { cwd } from "process";
|
|
57
|
-
import
|
|
68
|
+
import chalk from "chalk";
|
|
58
69
|
import { createProgramFromConfig } from "tsc-prog";
|
|
59
70
|
import {
|
|
60
71
|
DiagnosticCategory,
|
|
@@ -65,57 +76,57 @@ import {
|
|
|
65
76
|
|
|
66
77
|
// src/actions/package/compile/getCompilerOptions.ts
|
|
67
78
|
import { createRequire } from "module";
|
|
68
|
-
import
|
|
79
|
+
import deepmerge from "deepmerge";
|
|
69
80
|
import {
|
|
70
81
|
findConfigFile,
|
|
71
82
|
readConfigFile,
|
|
72
83
|
sys
|
|
73
84
|
} from "typescript";
|
|
74
|
-
var getNested = (
|
|
75
|
-
if (
|
|
85
|
+
var getNested = (config) => {
|
|
86
|
+
if (config.extends) {
|
|
76
87
|
const require2 = createRequire(import.meta.url);
|
|
77
|
-
const opts = require2(
|
|
78
|
-
return
|
|
88
|
+
const opts = require2(config.extends);
|
|
89
|
+
return deepmerge(getNested(opts), config.compilerOptions ?? {});
|
|
79
90
|
}
|
|
80
|
-
return
|
|
91
|
+
return config.compilerOptions;
|
|
81
92
|
};
|
|
82
93
|
var getCompilerOptionsJSONFollowExtends = (filename) => {
|
|
83
|
-
const
|
|
84
|
-
return getNested(
|
|
94
|
+
const config = readConfigFile(filename, sys.readFile).config;
|
|
95
|
+
return getNested(config);
|
|
85
96
|
};
|
|
86
97
|
var getCompilerOptions = (options = {}, tsconfig = "tsconfig.json") => {
|
|
87
98
|
const configFileName = findConfigFile("./", sys.fileExists, tsconfig);
|
|
88
99
|
const configFileCompilerOptions = (configFileName ? getCompilerOptionsJSONFollowExtends(configFileName) : void 0) ?? {};
|
|
89
|
-
return
|
|
100
|
+
return deepmerge(configFileCompilerOptions, options);
|
|
90
101
|
};
|
|
91
102
|
|
|
92
|
-
// src/actions/package/compile/
|
|
93
|
-
var
|
|
103
|
+
// src/actions/package/compile/packageCompileTsc.ts
|
|
104
|
+
var packageCompileTsc = (entries, folder = "src", config = {}, compilerOptionsParam) => {
|
|
94
105
|
const pkg = process.env.INIT_CWD ?? cwd();
|
|
95
|
-
const verbose =
|
|
106
|
+
const verbose = config?.verbose ?? false;
|
|
96
107
|
const compilerOptions = {
|
|
97
108
|
...getCompilerOptions({
|
|
98
|
-
|
|
99
|
-
outDir: config2.compile?.tsup?.options?.outDir ?? "dist/types",
|
|
109
|
+
outDir: "dist/types",
|
|
100
110
|
removeComments: false,
|
|
101
111
|
skipDefaultLibCheck: true,
|
|
102
112
|
skipLibCheck: true,
|
|
103
113
|
sourceMap: false
|
|
104
114
|
}),
|
|
105
115
|
...compilerOptionsParam,
|
|
106
|
-
emitDeclarationOnly:
|
|
107
|
-
noEmit:
|
|
116
|
+
emitDeclarationOnly: false,
|
|
117
|
+
noEmit: true
|
|
108
118
|
};
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
119
|
+
console.log(chalk.green(`Validating Files: ${entries.length}`));
|
|
120
|
+
if (verbose) {
|
|
121
|
+
for (const entry of entries) {
|
|
122
|
+
console.log(chalk.grey(`Validating: ${entry}`));
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
if (entries.length > 0) {
|
|
114
126
|
const program = createProgramFromConfig({
|
|
115
127
|
basePath: pkg ?? cwd(),
|
|
116
128
|
compilerOptions,
|
|
117
|
-
|
|
118
|
-
files
|
|
129
|
+
files: entries
|
|
119
130
|
});
|
|
120
131
|
const diagnostics = getPreEmitDiagnostics(program);
|
|
121
132
|
if (diagnostics.length > 0) {
|
|
@@ -135,102 +146,54 @@ var packageCompileTscTypes = (folder = "src", config2 = {}, compilerOptionsParam
|
|
|
135
146
|
return 0;
|
|
136
147
|
};
|
|
137
148
|
|
|
138
|
-
// src/actions/package/compile/
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
if (
|
|
150
|
-
|
|
151
|
-
}
|
|
152
|
-
deepMerge(target[key], source[key]);
|
|
153
|
-
} else {
|
|
154
|
-
target[key] = source[key];
|
|
149
|
+
// src/actions/package/compile/packageCompileTscTypes.ts
|
|
150
|
+
import { cwd as cwd2 } from "process";
|
|
151
|
+
import { rollup } from "rollup";
|
|
152
|
+
import dts from "rollup-plugin-dts";
|
|
153
|
+
import nodeExternals from "rollup-plugin-node-externals";
|
|
154
|
+
async function bundleDts(inputPath, outputPath, platform) {
|
|
155
|
+
const nodePlugIns = platform === "node" ? [nodeExternals()] : [];
|
|
156
|
+
const bundle = await rollup({
|
|
157
|
+
input: inputPath,
|
|
158
|
+
plugins: [dts(), ...nodePlugIns],
|
|
159
|
+
onwarn(warning, warn) {
|
|
160
|
+
if (warning.code === "UNUSED_EXTERNAL_IMPORT") return;
|
|
161
|
+
warn(warning);
|
|
155
162
|
}
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
deepMerge(result, obj);
|
|
163
|
-
}
|
|
164
|
-
return result;
|
|
163
|
+
});
|
|
164
|
+
await bundle.write({
|
|
165
|
+
file: outputPath,
|
|
166
|
+
format: "es"
|
|
167
|
+
});
|
|
168
|
+
console.log(`Bundled declarations written to ${outputPath}`);
|
|
165
169
|
}
|
|
166
|
-
|
|
167
|
-
// src/actions/package/compile/packageCompileTsc.ts
|
|
168
|
-
import { cwd as cwd2 } from "process";
|
|
169
|
-
import chalk3 from "chalk";
|
|
170
|
-
import { createProgramFromConfig as createProgramFromConfig2 } from "tsc-prog";
|
|
171
|
-
import {
|
|
172
|
-
DiagnosticCategory as DiagnosticCategory2,
|
|
173
|
-
formatDiagnosticsWithColorAndContext as formatDiagnosticsWithColorAndContext2,
|
|
174
|
-
getPreEmitDiagnostics as getPreEmitDiagnostics2,
|
|
175
|
-
sys as sys3
|
|
176
|
-
} from "typescript";
|
|
177
|
-
var packageCompileTsc = (folder = "src", config2 = {}, compilerOptionsParam) => {
|
|
170
|
+
var packageCompileTscTypes = async (entries, outDir, platform, folder = "src") => {
|
|
178
171
|
const pkg = process.env.INIT_CWD ?? cwd2();
|
|
179
|
-
const
|
|
180
|
-
const
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
skipDefaultLibCheck: true,
|
|
185
|
-
skipLibCheck: true,
|
|
186
|
-
sourceMap: false
|
|
187
|
-
}),
|
|
188
|
-
...compilerOptionsParam,
|
|
189
|
-
emitDeclarationOnly: false,
|
|
190
|
-
noEmit: true
|
|
172
|
+
const srcRoot = `${pkg}/${folder}`;
|
|
173
|
+
const entryNameToTypeName = (entry) => {
|
|
174
|
+
const splitEntryName = entry.split(".");
|
|
175
|
+
const newEntryExtension = "d." + splitEntryName.at(-1);
|
|
176
|
+
return [...splitEntryName.slice(0, -1), newEntryExtension].join(".");
|
|
191
177
|
};
|
|
192
|
-
const
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
if (files.length > 0) {
|
|
197
|
-
const program = createProgramFromConfig2({
|
|
198
|
-
basePath: pkg ?? cwd2(),
|
|
199
|
-
compilerOptions,
|
|
200
|
-
exclude: ["dist", "docs"],
|
|
201
|
-
files
|
|
202
|
-
});
|
|
203
|
-
const diagnostics = getPreEmitDiagnostics2(program);
|
|
204
|
-
if (diagnostics.length > 0) {
|
|
205
|
-
const formattedDiagnostics = formatDiagnosticsWithColorAndContext2(
|
|
206
|
-
diagnostics,
|
|
207
|
-
{
|
|
208
|
-
getCanonicalFileName: (fileName) => fileName,
|
|
209
|
-
getCurrentDirectory: () => folder,
|
|
210
|
-
getNewLine: () => sys3.newLine
|
|
211
|
-
}
|
|
212
|
-
);
|
|
213
|
-
console.error(formattedDiagnostics);
|
|
214
|
-
}
|
|
215
|
-
program.emit();
|
|
216
|
-
return diagnostics.reduce((acc, diag) => acc + (diag.category === DiagnosticCategory2.Error ? 1 : 0), 0);
|
|
217
|
-
}
|
|
178
|
+
const entryNames = entries.map((entry) => entry.split(`${folder}/`).at(-1) ?? entry);
|
|
179
|
+
await Promise.all(entryNames.map(async (entryName) => {
|
|
180
|
+
await bundleDts(`${srcRoot}/${entryName}`, outDir + "/" + entryNameToTypeName(entryName), platform);
|
|
181
|
+
}));
|
|
218
182
|
return 0;
|
|
219
183
|
};
|
|
220
184
|
|
|
221
185
|
// src/actions/package/compile/packageCompileTsup.ts
|
|
222
|
-
var compileFolder = async (folder,
|
|
186
|
+
var compileFolder = async (folder, entries, options, verbose) => {
|
|
223
187
|
const outDir = options?.outDir ?? "dist";
|
|
224
188
|
if (verbose) {
|
|
225
189
|
console.log(`compileFolder [${folder}]`);
|
|
226
190
|
}
|
|
227
|
-
const entry = buildEntries(folder, entryMode);
|
|
228
191
|
const optionsResult = defineConfig({
|
|
229
192
|
bundle: true,
|
|
230
193
|
cjsInterop: true,
|
|
231
194
|
clean: true,
|
|
232
195
|
dts: false,
|
|
233
|
-
entry,
|
|
196
|
+
entry: entries,
|
|
234
197
|
format: ["esm"],
|
|
235
198
|
outDir,
|
|
236
199
|
silent: true,
|
|
@@ -239,6 +202,11 @@ var compileFolder = async (folder, entryMode = "single", options, verbose) => {
|
|
|
239
202
|
tsconfig: "tsconfig.json",
|
|
240
203
|
...options
|
|
241
204
|
});
|
|
205
|
+
const validationResult = packageCompileTsc(entries);
|
|
206
|
+
if (validationResult !== 0) {
|
|
207
|
+
console.error(`Compile:Validation had ${validationResult} errors`);
|
|
208
|
+
return validationResult;
|
|
209
|
+
}
|
|
242
210
|
const optionsList = (await Promise.all(
|
|
243
211
|
(Array.isArray(optionsResult) ? optionsResult : [optionsResult]).flatMap(async (options2) => {
|
|
244
212
|
const result = typeof options2 === "function" ? await options2({}) : [options2];
|
|
@@ -252,6 +220,7 @@ var compileFolder = async (folder, entryMode = "single", options, verbose) => {
|
|
|
252
220
|
if (verbose) {
|
|
253
221
|
console.log(`TSUP:build:stop [${folder}]`);
|
|
254
222
|
}
|
|
223
|
+
await packageCompileTscTypes(entries, outDir, options?.platform ?? "neutral", folder);
|
|
255
224
|
return 0;
|
|
256
225
|
};
|
|
257
226
|
var tsupOptions = (options = []) => {
|
|
@@ -275,30 +244,22 @@ var tsupOptions = (options = []) => {
|
|
|
275
244
|
};
|
|
276
245
|
return deepMergeObjects([standardOptions, ...options]);
|
|
277
246
|
};
|
|
278
|
-
var packageCompileTsup = async (
|
|
279
|
-
const compile =
|
|
280
|
-
const verbose =
|
|
247
|
+
var packageCompileTsup = async (config) => {
|
|
248
|
+
const compile = config?.compile;
|
|
249
|
+
const verbose = config?.verbose ?? false;
|
|
281
250
|
if (verbose) {
|
|
282
251
|
console.log(`Compiling with TSUP [Depth: ${compile?.depth}]`);
|
|
283
252
|
}
|
|
284
253
|
const compileForNode = compile?.node ?? { src: {} };
|
|
285
254
|
const compileForBrowser = compile?.browser ?? { src: {} };
|
|
286
255
|
const compileForNeutral = compile?.neutral ?? { src: {} };
|
|
287
|
-
if (verbose) {
|
|
288
|
-
console.log("Calling packageCompileTscTypes");
|
|
289
|
-
}
|
|
290
|
-
let errors = await packageCompileTypes(config2);
|
|
291
|
-
errors = errors + packageCompileTsc(void 0, config2);
|
|
292
|
-
if (errors > 0) {
|
|
293
|
-
return errors;
|
|
294
|
-
}
|
|
295
256
|
return (await Promise.all(
|
|
296
257
|
Object.entries(compileForNode).map(async ([folder, options]) => {
|
|
297
258
|
const optionsObject = typeof options === "object" ? options : {};
|
|
298
259
|
const inEsBuildOptions = typeof compile?.node?.esbuildOptions === "object" ? compile?.node?.esbuildOptions : {};
|
|
299
260
|
return typeof folder === "string" ? await compileFolder(
|
|
300
261
|
folder,
|
|
301
|
-
compile?.entryMode,
|
|
262
|
+
buildEntries(folder, compile?.entryMode, options, true, verbose),
|
|
302
263
|
tsupOptions([
|
|
303
264
|
inEsBuildOptions,
|
|
304
265
|
compile?.tsup?.options ?? {},
|
|
@@ -314,7 +275,7 @@ var packageCompileTsup = async (config2) => {
|
|
|
314
275
|
const inEsBuildOptions = typeof compile?.browser?.esbuildOptions === "object" ? compile?.browser?.esbuildOptions : {};
|
|
315
276
|
return typeof folder === "string" ? await compileFolder(
|
|
316
277
|
folder,
|
|
317
|
-
compile?.entryMode,
|
|
278
|
+
buildEntries(folder, compile?.entryMode, options, true, verbose),
|
|
318
279
|
tsupOptions([
|
|
319
280
|
inEsBuildOptions,
|
|
320
281
|
compile?.tsup?.options ?? {},
|
|
@@ -330,7 +291,7 @@ var packageCompileTsup = async (config2) => {
|
|
|
330
291
|
const inEsBuildOptions = typeof compile?.neutral?.esbuildOptions === "object" ? compile?.neutral?.esbuildOptions : {};
|
|
331
292
|
return typeof folder === "string" ? await compileFolder(
|
|
332
293
|
folder,
|
|
333
|
-
compile?.entryMode,
|
|
294
|
+
buildEntries(folder, compile?.entryMode, options, true, verbose),
|
|
334
295
|
tsupOptions([
|
|
335
296
|
inEsBuildOptions,
|
|
336
297
|
compile?.tsup?.options ?? {},
|
|
@@ -345,7 +306,7 @@ var packageCompileTsup = async (config2) => {
|
|
|
345
306
|
|
|
346
307
|
// src/bin/package/compile-tsup.ts
|
|
347
308
|
packageCompileTsup({ verbose: true }).then((value) => process.exitCode = value).catch((reason) => {
|
|
348
|
-
console.error(
|
|
309
|
+
console.error(chalk2.red(reason));
|
|
349
310
|
process.exitCode = 1;
|
|
350
311
|
});
|
|
351
312
|
//# sourceMappingURL=compile-tsup.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/bin/package/compile-tsup.ts","../../../src/lib/loadConfig.ts","../../../src/actions/package/compile/packageCompileTsup.ts","../../../src/actions/package/compile/inputs.ts","../../../src/actions/package/compile/buildEntries.ts","../../../src/actions/package/compile/packageCompileTscTypes.ts","../../../src/actions/package/compile/getCompilerOptions.ts","../../../src/actions/package/compile/compileTypes.ts","../../../src/actions/package/compile/deepMerge.ts","../../../src/actions/package/compile/packageCompileTsc.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport chalk from 'chalk'\n\nimport { packageCompileTsup } from '../../actions/index.ts'\n\npackageCompileTsup({ verbose: true })\n .then(value => (process.exitCode = value))\n .catch((reason) => {\n console.error(chalk.red(reason))\n process.exitCode = 1\n })\n","import chalk from 'chalk'\nimport { cosmiconfig } from 'cosmiconfig'\nimport { TypeScriptLoader } from 'cosmiconfig-typescript-loader'\nimport deepmerge from 'deepmerge'\n\nlet config: Record<string, unknown>\n\nexport const loadConfig = async <T extends object>(params?: T): Promise<T> => {\n if (config) {\n return deepmerge(config, params ?? {}) as T\n }\n\n const cosmicConfigResult = await cosmiconfig('xy', { cache: true, loaders: { '.ts': TypeScriptLoader() } }).search()\n config = cosmicConfigResult?.config\n const configFilePath = cosmicConfigResult?.filepath\n if (configFilePath) {\n console.log(chalk.gray(`Loading config from ${configFilePath}`))\n }\n return deepmerge(config, params ?? {}) as T\n}\n","import type { Loader } from 'esbuild'\nimport type { Options } from 'tsup'\nimport { build, defineConfig } from 'tsup'\n\nimport { buildEntries } from './buildEntries.ts'\nimport { packageCompileTypes } from './compileTypes.ts'\nimport { deepMergeObjects } from './deepMerge.ts'\nimport { packageCompileTsc } from './packageCompileTsc.ts'\nimport type { EntryMode, XyTsupConfig } from './XyConfig.ts'\n\nconst compileFolder = async (\n folder: string,\n entryMode: EntryMode = 'single',\n options?: Options,\n verbose?: boolean,\n): Promise<number> => {\n const outDir = options?.outDir ?? 'dist'\n\n if (verbose) {\n console.log(`compileFolder [${folder}]`)\n }\n\n const entry = buildEntries(folder, entryMode)\n const optionsResult = defineConfig({\n bundle: true,\n cjsInterop: true,\n clean: true,\n dts: false,\n entry,\n format: ['esm'],\n outDir,\n silent: true,\n sourcemap: true,\n splitting: false,\n tsconfig: 'tsconfig.json',\n ...options,\n })\n const optionsList = (\n await Promise.all(\n (Array.isArray(optionsResult) ? optionsResult : [optionsResult]).flatMap<Promise<Options[]>>(async (options) => {\n const result = typeof options === 'function' ? await options({}) : [options]\n return Array.isArray(result) ? result : [result]\n }),\n )\n ).flat()\n\n if (verbose) {\n console.log(`TSUP:build:start [${folder}]`)\n }\n\n await Promise.all(optionsList.map(options => build(options)))\n\n if (verbose) {\n console.log(`TSUP:build:stop [${folder}]`)\n }\n\n return 0\n}\n\nexport const tsupOptions = (options: Options[] = []): Options => {\n const standardLoaders: Record<string, Loader> = {\n '.gif': 'copy', '.html': 'copy', '.jpg': 'copy', '.json': 'json', '.png': 'copy', '.svg': 'copy', '.webp': 'copy',\n }\n\n const standardOptions: Options = {\n bundle: true,\n format: ['esm'],\n loader: standardLoaders,\n outExtension: ({ format }) => (format === 'esm' ? { js: '.mjs' } : { js: '.cjs' }),\n skipNodeModulesBundle: true,\n sourcemap: true,\n target: 'esnext',\n }\n\n return deepMergeObjects([standardOptions, ...options])\n}\n\nexport const packageCompileTsup = async (config?: XyTsupConfig) => {\n const compile = config?.compile\n const verbose = config?.verbose ?? false\n if (verbose) {\n console.log(`Compiling with TSUP [Depth: ${compile?.depth}]`)\n }\n\n const compileForNode = compile?.node ?? { src: {} }\n const compileForBrowser = compile?.browser ?? { src: {} }\n const compileForNeutral = compile?.neutral ?? { src: {} }\n\n if (verbose) {\n console.log('Calling packageCompileTscTypes')\n }\n\n let errors = await packageCompileTypes(config)\n errors = errors + packageCompileTsc(undefined, config)\n if (errors > 0) {\n return errors\n }\n\n return (\n (\n await Promise.all(\n Object.entries(compileForNode).map(async ([folder, options]) => {\n const optionsObject: Options = typeof options === 'object' ? options : {}\n const inEsBuildOptions = typeof compile?.node?.esbuildOptions === 'object' ? compile?.node?.esbuildOptions : {}\n return typeof folder === 'string'\n ? await compileFolder(\n folder,\n compile?.entryMode,\n tsupOptions([inEsBuildOptions,\n compile?.tsup?.options ?? {},\n (typeof options === 'object' ? options : {}),\n { platform: 'node', outDir: optionsObject.outDir ?? 'dist/node' }]),\n verbose,\n )\n : 0\n }),\n )\n ).reduce((prev, value) => prev + value, 0)\n + (\n await Promise.all(\n Object.entries(compileForBrowser).map(async ([folder, options]) => {\n const optionsObject: Options = typeof options === 'object' ? options : {}\n const inEsBuildOptions = typeof compile?.browser?.esbuildOptions === 'object' ? compile?.browser?.esbuildOptions : {}\n return typeof folder === 'string'\n ? await compileFolder(\n folder,\n compile?.entryMode,\n tsupOptions([inEsBuildOptions,\n compile?.tsup?.options ?? {},\n (typeof options === 'object' ? options : {}),\n { platform: 'browser', outDir: optionsObject.outDir ?? 'dist/browser' }]),\n verbose,\n )\n : 0\n }),\n )\n ).reduce((prev, value) => prev + value, 0)\n + (\n await Promise.all(\n Object.entries(compileForNeutral).map(async ([folder, options]) => {\n const optionsObject: Options = typeof options === 'object' ? options : {}\n const inEsBuildOptions = typeof compile?.neutral?.esbuildOptions === 'object' ? compile?.neutral?.esbuildOptions : {}\n return typeof folder === 'string'\n ? await compileFolder(\n folder,\n compile?.entryMode,\n tsupOptions([inEsBuildOptions,\n compile?.tsup?.options ?? {},\n (typeof options === 'object' ? options : {}),\n { platform: 'neutral', outDir: optionsObject.outDir ?? 'dist/neutral' }]),\n verbose,\n )\n : 0\n }),\n )\n ).reduce((prev, value) => prev + value, 0)\n + 0\n )\n}\n","import { glob } from 'glob'\n\nexport const getAllInputs = (folder: string) => {\n /* tsup wants posix paths */\n return glob.sync(`${folder}/**/*.*`, { posix: true })\n}\n","import { getAllInputs } from './inputs.ts'\nimport type { EntryMode } from './XyConfig.ts'\n\nexport const buildEntries = (folder: string, entryMode: EntryMode = 'single', excludeSpecAndStories = true, verbose = false) => {\n let entries: string[] = []\n switch (entryMode) {\n case 'platform': {\n entries = [`${folder}/index-node.ts`, `${folder}/index-browser.ts`]\n break\n }\n case 'all': {\n entries = excludeSpecAndStories ? getAllInputs(folder).filter(entry => !entry.includes('.spec.') && !entry.includes('.stories.')) : getAllInputs(folder)\n break\n }\n default: {\n entries = [`${folder}/index.ts`]\n break\n }\n }\n if (verbose) console.log(`buildEntries [${entryMode}] ${entries.length}`)\n return entries\n}\n","import { cwd } from 'node:process'\n\nimport chalk from 'chalk'\nimport type { TsConfigCompilerOptions } from 'tsc-prog'\nimport { createProgramFromConfig } from 'tsc-prog'\nimport type { CompilerOptions } from 'typescript'\nimport {\n DiagnosticCategory, formatDiagnosticsWithColorAndContext, getPreEmitDiagnostics, sys,\n} from 'typescript'\n\nimport { buildEntries } from './buildEntries.ts'\nimport { getCompilerOptions } from './getCompilerOptions.ts'\nimport type { XyConfig, XyTsupConfig } from './XyConfig.ts'\n\nexport const packageCompileTscTypes = (\n folder: string = 'src',\n config: XyConfig = {},\n compilerOptionsParam?: CompilerOptions,\n): number => {\n const pkg = process.env.INIT_CWD ?? cwd()\n const verbose = config?.verbose ?? false\n\n const compilerOptions = {\n ...(getCompilerOptions({\n emitDeclarationOnly: true,\n outDir: (config as XyTsupConfig).compile?.tsup?.options?.outDir ?? 'dist/types',\n removeComments: false,\n skipDefaultLibCheck: true,\n skipLibCheck: true,\n sourceMap: false,\n })),\n ...compilerOptionsParam,\n emitDeclarationOnly: true,\n noEmit: false,\n } as TsConfigCompilerOptions\n\n const validTsExt = ['.ts', '.tsx', '.d.ts', '.cts', '.d.cts', '.mts', '.d.mts']\n const excludes = ['.stories.', '.spec.', '/stories/', '/spec/']\n\n // calling all here since the types do not get rolled up\n const files = buildEntries(folder, 'all', verbose)\n .filter(file => validTsExt.find(ext => file.endsWith(ext)) && !(excludes.some(exclude => file.includes(exclude))))\n\n console.log(chalk.green(`Compiling Types ${pkg}: ${files.length}`))\n\n if (files.length > 0) {\n const program = createProgramFromConfig({\n basePath: pkg ?? cwd(),\n compilerOptions,\n exclude: ['build', 'dist', 'docs', '**/*.spec.*', '**/*.stories.*', 'src/**/spec/**/*'],\n files,\n })\n\n const diagnostics = getPreEmitDiagnostics(program)\n\n if (diagnostics.length > 0) {\n const formattedDiagnostics = formatDiagnosticsWithColorAndContext(\n diagnostics,\n {\n getCanonicalFileName: fileName => fileName,\n getCurrentDirectory: () => folder,\n getNewLine: () => sys.newLine,\n },\n )\n console.error(formattedDiagnostics)\n }\n\n program.emit()\n return diagnostics.reduce((acc, diag) => acc + (diag.category === DiagnosticCategory.Error ? 1 : 0), 0)\n }\n return 0\n}\n","import { createRequire } from 'node:module'\n\nimport deepmerge from 'deepmerge'\nimport type { TsConfig } from 'tsc-prog'\nimport type { CompilerOptions } from 'typescript'\nimport {\n findConfigFile, readConfigFile, sys,\n} from 'typescript'\n\nconst getNested = (config: TsConfig): CompilerOptions => {\n if (config.extends) {\n const require = createRequire(import.meta.url)\n const opts = require(config.extends)\n return deepmerge(getNested(opts), config.compilerOptions ?? {}) as CompilerOptions\n }\n\n return config.compilerOptions as CompilerOptions\n}\n\nconst getCompilerOptionsJSONFollowExtends = (filename: string): CompilerOptions => {\n const config = readConfigFile(filename, sys.readFile).config\n return getNested(config)\n}\n\nexport const getCompilerOptions = (options: CompilerOptions = {}, tsconfig: string = 'tsconfig.json'): CompilerOptions => {\n const configFileName = findConfigFile('./', sys.fileExists, tsconfig)\n const configFileCompilerOptions = (configFileName ? getCompilerOptionsJSONFollowExtends(configFileName) : undefined) ?? {}\n\n return deepmerge(configFileCompilerOptions, options)\n}\n","import { loadConfig } from '../../../lib/index.ts'\nimport { packageCompileTscTypes } from './packageCompileTscTypes.ts'\nimport type { XyConfig, XyTscConfig } from './XyConfig.ts'\n\nexport const packageCompileTypes = async (inConfig: XyConfig = {}): Promise<number> => {\n const config = await loadConfig(inConfig)\n\n return packageCompileTscTypes(undefined, config as XyTscConfig)\n}\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyObject = Record<any, any>\n\nfunction deepMerge<T extends AnyObject>(target: AnyObject, source: AnyObject): T {\n if (!source || typeof source !== 'object') return target\n\n for (const key of Object.keys(source)) {\n if (\n typeof source[key] === 'object'\n && source[key] !== null\n && !Array.isArray(source[key])\n ) {\n // Recursively merge nested objects\n if (!target[key] || typeof target[key] !== 'object') {\n target[key] = {} as T[typeof key]\n }\n deepMerge(target[key], source[key])\n } else {\n // Overwrite with non-object values\n target[key] = source[key]\n }\n }\n\n return target\n}\n\nexport function deepMergeObjects<T extends AnyObject>(objects: T[]): T {\n const result = {} as T\n for (const obj of objects) {\n deepMerge(result, obj)\n }\n return result\n}\n","import { cwd } from 'node:process'\n\nimport chalk from 'chalk'\nimport type { TsConfigCompilerOptions } from 'tsc-prog'\nimport { createProgramFromConfig } from 'tsc-prog'\nimport type { CompilerOptions } from 'typescript'\nimport {\n DiagnosticCategory, formatDiagnosticsWithColorAndContext, getPreEmitDiagnostics, sys,\n} from 'typescript'\n\nimport { buildEntries } from './buildEntries.ts'\nimport { getCompilerOptions } from './getCompilerOptions.ts'\nimport type { XyConfig } from './XyConfig.ts'\n\nexport const packageCompileTsc = (\n folder: string = 'src',\n config: XyConfig = {},\n compilerOptionsParam?: CompilerOptions,\n): number => {\n const pkg = process.env.INIT_CWD ?? cwd()\n const verbose = config?.verbose ?? false\n\n const compilerOptions = {\n ...(getCompilerOptions({\n outDir: 'dist/types',\n removeComments: false,\n skipDefaultLibCheck: true,\n skipLibCheck: true,\n sourceMap: false,\n })),\n ...compilerOptionsParam,\n emitDeclarationOnly: false,\n noEmit: true,\n } as TsConfigCompilerOptions\n\n const validTsExt = ['.ts', '.tsx', '.d.ts', '.cts', '.d.cts', '.mts', '.d.mts']\n const includes = ['.stories.', '.spec.', '.d.ts', '.d.cts', '.d.mts']\n\n // calling all here since the types do not get rolled up\n const files = buildEntries(folder, 'all', verbose)\n .filter(file => validTsExt.find(ext => file.endsWith(ext)) && (includes.find(include => file.includes(include))))\n\n console.log(chalk.green(`Compiling Files ${pkg}: ${files.length}`))\n\n if (files.length > 0) {\n const program = createProgramFromConfig({\n basePath: pkg ?? cwd(),\n compilerOptions,\n exclude: ['dist', 'docs'],\n files,\n })\n\n const diagnostics = getPreEmitDiagnostics(program)\n\n if (diagnostics.length > 0) {\n const formattedDiagnostics = formatDiagnosticsWithColorAndContext(\n diagnostics,\n {\n getCanonicalFileName: fileName => fileName,\n getCurrentDirectory: () => folder,\n getNewLine: () => sys.newLine,\n },\n )\n console.error(formattedDiagnostics)\n }\n\n program.emit()\n return diagnostics.reduce((acc, diag) => acc + (diag.category === DiagnosticCategory.Error ? 1 : 0), 0)\n }\n return 0\n}\n"],"mappings":"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","names":["chalk","chalk","sys","deepmerge","config","require","config","chalk","sys","config","cwd","chalk","createProgramFromConfig","DiagnosticCategory","formatDiagnosticsWithColorAndContext","getPreEmitDiagnostics","sys","config","cwd","chalk","createProgramFromConfig","getPreEmitDiagnostics","formatDiagnosticsWithColorAndContext","sys","DiagnosticCategory","options","config","chalk"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/bin/package/compile-tsup.ts","../../../src/actions/package/compile/packageCompileTsup.ts","../../../src/actions/package/compile/inputs.ts","../../../src/actions/package/compile/buildEntries.ts","../../../src/actions/package/compile/deepMerge.ts","../../../src/actions/package/compile/packageCompileTsc.ts","../../../src/actions/package/compile/getCompilerOptions.ts","../../../src/actions/package/compile/packageCompileTscTypes.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport chalk from 'chalk'\n\nimport { packageCompileTsup } from '../../actions/index.ts'\n\npackageCompileTsup({ verbose: true })\n .then(value => (process.exitCode = value))\n .catch((reason) => {\n console.error(chalk.red(reason))\n process.exitCode = 1\n })\n","import type { Loader } from 'esbuild'\nimport type { Options } from 'tsup'\nimport { build, defineConfig } from 'tsup'\n\nimport { buildEntries } from './buildEntries.ts'\nimport { deepMergeObjects } from './deepMerge.ts'\nimport { packageCompileTsc } from './packageCompileTsc.ts'\nimport { packageCompileTscTypes } from './packageCompileTscTypes.ts'\nimport type { XyTsupConfig } from './XyConfig.ts'\n\nconst compileFolder = async (\n folder: string,\n entries: string[],\n options?: Options,\n verbose?: boolean,\n): Promise<number> => {\n const outDir = options?.outDir ?? 'dist'\n\n if (verbose) {\n console.log(`compileFolder [${folder}]`)\n }\n\n const optionsResult = defineConfig({\n bundle: true,\n cjsInterop: true,\n clean: true,\n dts: false,\n entry: entries,\n format: ['esm'],\n outDir,\n silent: true,\n sourcemap: true,\n splitting: false,\n tsconfig: 'tsconfig.json',\n ...options,\n })\n\n const validationResult = packageCompileTsc(entries)\n if (validationResult !== 0) {\n console.error(`Compile:Validation had ${validationResult} errors`)\n return validationResult\n }\n\n const optionsList = (\n await Promise.all(\n (Array.isArray(optionsResult) ? optionsResult : [optionsResult]).flatMap<Promise<Options[]>>(async (options) => {\n const result = typeof options === 'function' ? await options({}) : [options]\n return Array.isArray(result) ? result : [result]\n }),\n )\n ).flat()\n\n if (verbose) {\n console.log(`TSUP:build:start [${folder}]`)\n }\n\n await Promise.all(optionsList.map(options => build(options)))\n\n if (verbose) {\n console.log(`TSUP:build:stop [${folder}]`)\n }\n\n await packageCompileTscTypes(entries, outDir, options?.platform ?? 'neutral', folder)\n\n return 0\n}\n\nexport const tsupOptions = (options: Options[] = []): Options => {\n const standardLoaders: Record<string, Loader> = {\n '.gif': 'copy', '.html': 'copy', '.jpg': 'copy', '.json': 'json', '.png': 'copy', '.svg': 'copy', '.webp': 'copy',\n }\n\n const standardOptions: Options = {\n bundle: true,\n format: ['esm'],\n loader: standardLoaders,\n outExtension: ({ format }) => (format === 'esm' ? { js: '.mjs' } : { js: '.cjs' }),\n skipNodeModulesBundle: true,\n sourcemap: true,\n target: 'esnext',\n }\n\n return deepMergeObjects([standardOptions, ...options])\n}\n\nexport const packageCompileTsup = async (config?: XyTsupConfig) => {\n const compile = config?.compile\n const verbose = config?.verbose ?? false\n if (verbose) {\n console.log(`Compiling with TSUP [Depth: ${compile?.depth}]`)\n }\n\n const compileForNode = compile?.node ?? { src: {} }\n const compileForBrowser = compile?.browser ?? { src: {} }\n const compileForNeutral = compile?.neutral ?? { src: {} }\n\n return (\n (\n await Promise.all(\n Object.entries(compileForNode).map(async ([folder, options]) => {\n const optionsObject: Options = typeof options === 'object' ? options : {}\n const inEsBuildOptions = typeof compile?.node?.esbuildOptions === 'object' ? compile?.node?.esbuildOptions : {}\n return typeof folder === 'string'\n ? await compileFolder(\n folder,\n buildEntries(folder, compile?.entryMode, options, true, verbose),\n tsupOptions([inEsBuildOptions,\n compile?.tsup?.options ?? {},\n (typeof options === 'object' ? options : {}),\n { platform: 'node', outDir: optionsObject.outDir ?? 'dist/node' }]),\n verbose,\n )\n : 0\n }),\n )\n ).reduce((prev, value) => prev + value, 0)\n + (\n await Promise.all(\n Object.entries(compileForBrowser).map(async ([folder, options]) => {\n const optionsObject: Options = typeof options === 'object' ? options : {}\n const inEsBuildOptions = typeof compile?.browser?.esbuildOptions === 'object' ? compile?.browser?.esbuildOptions : {}\n return typeof folder === 'string'\n ? await compileFolder(\n folder,\n buildEntries(folder, compile?.entryMode, options, true, verbose),\n tsupOptions([inEsBuildOptions,\n compile?.tsup?.options ?? {},\n (typeof options === 'object' ? options : {}),\n { platform: 'browser', outDir: optionsObject.outDir ?? 'dist/browser' }]),\n verbose,\n )\n : 0\n }),\n )\n ).reduce((prev, value) => prev + value, 0)\n + (\n await Promise.all(\n Object.entries(compileForNeutral).map(async ([folder, options]) => {\n const optionsObject: Options = typeof options === 'object' ? options : {}\n const inEsBuildOptions = typeof compile?.neutral?.esbuildOptions === 'object' ? compile?.neutral?.esbuildOptions : {}\n return typeof folder === 'string'\n ? await compileFolder(\n folder,\n buildEntries(folder, compile?.entryMode, options, true, verbose),\n tsupOptions([inEsBuildOptions,\n compile?.tsup?.options ?? {},\n (typeof options === 'object' ? options : {}),\n { platform: 'neutral', outDir: optionsObject.outDir ?? 'dist/neutral' }]),\n verbose,\n )\n : 0\n }),\n )\n ).reduce((prev, value) => prev + value, 0)\n + 0\n )\n}\n","import { glob } from 'glob'\n\nexport const getAllInputs = (folder: string) => {\n /* tsup wants posix paths */\n return glob.sync(`${folder}/**/*.*`, { posix: true })\n}\n","import type { Options } from 'tsup'\n\nimport { getAllInputs } from './inputs.ts'\nimport type { EntryMode } from './XyConfig.ts'\n\nexport const buildEntries = (folder: string, entryMode: EntryMode = 'single', options?: Options | boolean, excludeSpecAndStories = true, verbose = false) => {\n let entries: string[] = []\n switch (entryMode) {\n case 'platform': {\n entries = [`${folder}/index-node.ts`, `${folder}/index-browser.ts`]\n break\n }\n case 'all': {\n entries = excludeSpecAndStories ? getAllInputs(folder).filter(entry => !entry.includes('.spec.') && !entry.includes('.stories.')) : getAllInputs(folder)\n break\n }\n case 'custom': {\n entries = []\n break\n }\n default: {\n entries = [`${folder}/index.ts`]\n break\n }\n }\n\n if (typeof options !== 'boolean' && Array.isArray(options?.entry)) {\n entries.push(...options.entry)\n }\n\n if (verbose) console.log(`buildEntries [${entryMode}] ${entries.length}`)\n return entries\n}\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyObject = Record<any, any>\n\nfunction deepMerge<T extends AnyObject>(target: AnyObject, source: AnyObject): T {\n if (!source || typeof source !== 'object') return target\n\n for (const key of Object.keys(source)) {\n if (\n typeof source[key] === 'object'\n && source[key] !== null\n && !Array.isArray(source[key])\n ) {\n // Recursively merge nested objects\n if (!target[key] || typeof target[key] !== 'object') {\n target[key] = {} as T[typeof key]\n }\n deepMerge(target[key], source[key])\n } else {\n // Overwrite with non-object values\n target[key] = source[key]\n }\n }\n\n return target\n}\n\nexport function deepMergeObjects<T extends AnyObject>(objects: T[]): T {\n const result = {} as T\n for (const obj of objects) {\n deepMerge(result, obj)\n }\n return result\n}\n","import { cwd } from 'node:process'\n\nimport chalk from 'chalk'\nimport type { TsConfigCompilerOptions } from 'tsc-prog'\nimport { createProgramFromConfig } from 'tsc-prog'\nimport type { CompilerOptions } from 'typescript'\nimport {\n DiagnosticCategory, formatDiagnosticsWithColorAndContext, getPreEmitDiagnostics, sys,\n} from 'typescript'\n\nimport { getCompilerOptions } from './getCompilerOptions.ts'\nimport type { XyConfig } from './XyConfig.ts'\n\nexport const packageCompileTsc = (\n entries: string[],\n folder: string = 'src',\n config: XyConfig = {},\n compilerOptionsParam?: CompilerOptions,\n): number => {\n const pkg = process.env.INIT_CWD ?? cwd()\n const verbose = config?.verbose ?? false\n\n const compilerOptions = {\n ...(getCompilerOptions({\n outDir: 'dist/types',\n removeComments: false,\n skipDefaultLibCheck: true,\n skipLibCheck: true,\n sourceMap: false,\n })),\n ...compilerOptionsParam,\n emitDeclarationOnly: false,\n noEmit: true,\n } as TsConfigCompilerOptions\n\n console.log(chalk.green(`Validating Files: ${entries.length}`))\n if (verbose) {\n for (const entry of entries) {\n console.log(chalk.grey(`Validating: ${entry}`))\n }\n }\n\n if (entries.length > 0) {\n const program = createProgramFromConfig({\n basePath: pkg ?? cwd(),\n compilerOptions,\n files: entries,\n })\n\n const diagnostics = getPreEmitDiagnostics(program)\n\n if (diagnostics.length > 0) {\n const formattedDiagnostics = formatDiagnosticsWithColorAndContext(\n diagnostics,\n {\n getCanonicalFileName: fileName => fileName,\n getCurrentDirectory: () => folder,\n getNewLine: () => sys.newLine,\n },\n )\n console.error(formattedDiagnostics)\n }\n\n program.emit()\n return diagnostics.reduce((acc, diag) => acc + (diag.category === DiagnosticCategory.Error ? 1 : 0), 0)\n }\n return 0\n}\n","import { createRequire } from 'node:module'\n\nimport deepmerge from 'deepmerge'\nimport type { TsConfig } from 'tsc-prog'\nimport type { CompilerOptions } from 'typescript'\nimport {\n findConfigFile, readConfigFile, sys,\n} from 'typescript'\n\nconst getNested = (config: TsConfig): CompilerOptions => {\n if (config.extends) {\n const require = createRequire(import.meta.url)\n const opts = require(config.extends)\n return deepmerge(getNested(opts), config.compilerOptions ?? {}) as CompilerOptions\n }\n\n return config.compilerOptions as CompilerOptions\n}\n\nconst getCompilerOptionsJSONFollowExtends = (filename: string): CompilerOptions => {\n const config = readConfigFile(filename, sys.readFile).config\n return getNested(config)\n}\n\nexport const getCompilerOptions = (options: CompilerOptions = {}, tsconfig: string = 'tsconfig.json'): CompilerOptions => {\n const configFileName = findConfigFile('./', sys.fileExists, tsconfig)\n const configFileCompilerOptions = (configFileName ? getCompilerOptionsJSONFollowExtends(configFileName) : undefined) ?? {}\n\n return deepmerge(configFileCompilerOptions, options)\n}\n","import { cwd } from 'node:process'\n\nimport { rollup } from 'rollup'\nimport dts from 'rollup-plugin-dts'\nimport nodeExternals from 'rollup-plugin-node-externals'\n\nexport async function bundleDts(inputPath: string, outputPath: string, platform: 'node' | 'browser' | 'neutral') {\n const nodePlugIns = platform === 'node' ? [nodeExternals()] : []\n const bundle = await rollup({\n input: inputPath,\n plugins: [dts(), ...nodePlugIns],\n onwarn(warning, warn) {\n // Ignore certain warnings if needed\n if (warning.code === 'UNUSED_EXTERNAL_IMPORT') return\n warn(warning)\n },\n })\n\n await bundle.write({\n file: outputPath,\n format: 'es',\n })\n\n console.log(`Bundled declarations written to ${outputPath}`)\n}\n\nexport const packageCompileTscTypes = async (\n entries: string[],\n outDir: string,\n platform: 'node' | 'browser' | 'neutral',\n folder: string = 'src',\n): Promise<number> => {\n const pkg = process.env.INIT_CWD ?? cwd()\n const srcRoot = `${pkg}/${folder}`\n\n const entryNameToTypeName = (entry: string): string => {\n const splitEntryName = entry.split('.')\n const newEntryExtension = 'd.' + splitEntryName.at(-1)\n return [...splitEntryName.slice(0, -1), newEntryExtension].join('.')\n }\n\n const entryNames = entries.map(entry => entry.split(`${folder}/`).at(-1) ?? entry)\n\n await Promise.all(entryNames.map(async (entryName) => {\n await bundleDts(`${srcRoot}/${entryName}`, outDir + '/' + entryNameToTypeName(entryName), platform)\n }))\n return 0\n}\n"],"mappings":"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","names":["chalk","sys","require","sys","cwd","options","chalk"]}
|