@xylabs/ts-scripts-yarn3 6.5.17 → 7.0.0-rc.1
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/deplint/checkPackage/checkPackage.mjs +7 -25
- package/dist/actions/deplint/checkPackage/checkPackage.mjs.map +1 -1
- package/dist/actions/deplint/checkPackage/getUnlistedDependencies.mjs +2 -13
- package/dist/actions/deplint/checkPackage/getUnlistedDependencies.mjs.map +1 -1
- package/dist/actions/deplint/checkPackage/getUnlistedDevDependencies.mjs +1 -1
- package/dist/actions/deplint/checkPackage/getUnlistedDevDependencies.mjs.map +1 -1
- package/dist/actions/deplint/checkPackage/getUnusedDependencies.mjs +1 -1
- package/dist/actions/deplint/checkPackage/getUnusedDependencies.mjs.map +1 -1
- package/dist/actions/deplint/checkPackage/getUnusedPeerDependencies.mjs +1 -1
- package/dist/actions/deplint/checkPackage/getUnusedPeerDependencies.mjs.map +1 -1
- package/dist/actions/deplint/checkPackage/index.mjs +7 -25
- package/dist/actions/deplint/checkPackage/index.mjs.map +1 -1
- package/dist/actions/deplint/deplint.mjs +7 -25
- package/dist/actions/deplint/deplint.mjs.map +1 -1
- package/dist/actions/deplint/getExternalImportsFromFiles.mjs +2 -9
- package/dist/actions/deplint/getExternalImportsFromFiles.mjs.map +1 -1
- package/dist/actions/deplint/index.mjs +7 -25
- package/dist/actions/deplint/index.mjs.map +1 -1
- package/dist/actions/index.mjs +155 -129
- package/dist/actions/index.mjs.map +1 -1
- package/dist/actions/package/compile/compile.mjs +82 -91
- package/dist/actions/package/compile/compile.mjs.map +1 -1
- package/dist/actions/package/compile/index.mjs +136 -92
- package/dist/actions/package/compile/index.mjs.map +1 -1
- package/dist/actions/package/compile/packageCompileTscTypes.mjs +58 -3
- package/dist/actions/package/compile/packageCompileTscTypes.mjs.map +1 -1
- package/dist/actions/package/compile/packageCompileTsup.mjs +92 -120
- package/dist/actions/package/compile/packageCompileTsup.mjs.map +1 -1
- package/dist/actions/package/index.mjs +142 -98
- package/dist/actions/package/index.mjs.map +1 -1
- package/dist/actions/package/recompile.mjs +82 -91
- package/dist/actions/package/recompile.mjs.map +1 -1
- package/dist/bin/package/build-only.mjs +84 -93
- package/dist/bin/package/build-only.mjs.map +1 -1
- package/dist/bin/package/build.mjs +84 -93
- package/dist/bin/package/build.mjs.map +1 -1
- package/dist/bin/package/compile-only.mjs +84 -93
- package/dist/bin/package/compile-only.mjs.map +1 -1
- package/dist/bin/package/compile-tsup.mjs +97 -125
- package/dist/bin/package/compile-tsup.mjs.map +1 -1
- package/dist/bin/package/compile.mjs +84 -93
- package/dist/bin/package/compile.mjs.map +1 -1
- package/dist/bin/package/recompile.mjs +84 -93
- package/dist/bin/package/recompile.mjs.map +1 -1
- package/dist/bin/xy.mjs +7 -25
- package/dist/bin/xy.mjs.map +1 -1
- package/dist/index.d.ts +2 -4
- package/dist/index.mjs +155 -129
- package/dist/index.mjs.map +1 -1
- package/dist/xy/index.mjs +7 -25
- package/dist/xy/index.mjs.map +1 -1
- package/dist/xy/xy.mjs +7 -25
- package/dist/xy/xy.mjs.map +1 -1
- package/dist/xy/xyLintCommands.mjs +7 -25
- package/dist/xy/xyLintCommands.mjs.map +1 -1
- package/package.json +6 -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,5 +1,5 @@
|
|
|
1
1
|
// src/actions/package/compile/compile.ts
|
|
2
|
-
import
|
|
2
|
+
import chalk4 from "chalk";
|
|
3
3
|
|
|
4
4
|
// src/lib/loadConfig.ts
|
|
5
5
|
import chalk from "chalk";
|
|
@@ -94,8 +94,34 @@ var buildEntries = (folder, entryMode = "single", excludeSpecAndStories = true,
|
|
|
94
94
|
return entries;
|
|
95
95
|
};
|
|
96
96
|
|
|
97
|
+
// src/actions/package/compile/deepMerge.ts
|
|
98
|
+
function deepMerge(target, source) {
|
|
99
|
+
if (!source || typeof source !== "object") return target;
|
|
100
|
+
for (const key of Object.keys(source)) {
|
|
101
|
+
if (typeof source[key] === "object" && source[key] !== null && !Array.isArray(source[key])) {
|
|
102
|
+
if (!target[key] || typeof target[key] !== "object") {
|
|
103
|
+
target[key] = {};
|
|
104
|
+
}
|
|
105
|
+
deepMerge(target[key], source[key]);
|
|
106
|
+
} else {
|
|
107
|
+
target[key] = source[key];
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return target;
|
|
111
|
+
}
|
|
112
|
+
function deepMergeObjects(objects) {
|
|
113
|
+
const result = {};
|
|
114
|
+
for (const obj of objects) {
|
|
115
|
+
deepMerge(result, obj);
|
|
116
|
+
}
|
|
117
|
+
return result;
|
|
118
|
+
}
|
|
119
|
+
|
|
97
120
|
// src/actions/package/compile/packageCompileTscTypes.ts
|
|
121
|
+
import { rm, writeFileSync } from "fs";
|
|
122
|
+
import path from "path";
|
|
98
123
|
import { cwd } from "process";
|
|
124
|
+
import { Extractor, ExtractorConfig } from "@microsoft/api-extractor";
|
|
99
125
|
import chalk3 from "chalk";
|
|
100
126
|
import { createProgramFromConfig } from "tsc-prog";
|
|
101
127
|
import {
|
|
@@ -132,13 +158,20 @@ var getCompilerOptions = (options = {}, tsconfig = "tsconfig.json") => {
|
|
|
132
158
|
};
|
|
133
159
|
|
|
134
160
|
// src/actions/package/compile/packageCompileTscTypes.ts
|
|
135
|
-
var packageCompileTscTypes = (folder = "src", config2 = {}, compilerOptionsParam) => {
|
|
161
|
+
var packageCompileTscTypes = (entries, outDir, folder = "src", config2 = {}, compilerOptionsParam) => {
|
|
136
162
|
const pkg = process.env.INIT_CWD ?? cwd();
|
|
137
163
|
const verbose = config2?.verbose ?? false;
|
|
164
|
+
const tempDir = `${pkg}/.xylabs/ts-scripts-yarn3/compile/tsc/types/${Date.now()}`;
|
|
165
|
+
rm(tempDir, { force: true, recursive: true }, (err) => {
|
|
166
|
+
if (err) {
|
|
167
|
+
console.error(chalk3.red(`Error removing temporary directory: ${tempDir}`), err);
|
|
168
|
+
return 1;
|
|
169
|
+
}
|
|
170
|
+
});
|
|
138
171
|
const compilerOptions = {
|
|
139
172
|
...getCompilerOptions({
|
|
140
173
|
emitDeclarationOnly: true,
|
|
141
|
-
outDir:
|
|
174
|
+
outDir: tempDir,
|
|
142
175
|
removeComments: false,
|
|
143
176
|
skipDefaultLibCheck: true,
|
|
144
177
|
skipLibCheck: true,
|
|
@@ -172,90 +205,52 @@ var packageCompileTscTypes = (folder = "src", config2 = {}, compilerOptionsParam
|
|
|
172
205
|
console.error(formattedDiagnostics);
|
|
173
206
|
}
|
|
174
207
|
program.emit();
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
};
|
|
179
|
-
|
|
180
|
-
// src/actions/package/compile/compileTypes.ts
|
|
181
|
-
var packageCompileTypes = async (inConfig = {}) => {
|
|
182
|
-
const config2 = await loadConfig(inConfig);
|
|
183
|
-
return packageCompileTscTypes(void 0, config2);
|
|
184
|
-
};
|
|
185
|
-
|
|
186
|
-
// src/actions/package/compile/deepMerge.ts
|
|
187
|
-
function deepMerge(target, source) {
|
|
188
|
-
if (!source || typeof source !== "object") return target;
|
|
189
|
-
for (const key of Object.keys(source)) {
|
|
190
|
-
if (typeof source[key] === "object" && source[key] !== null && !Array.isArray(source[key])) {
|
|
191
|
-
if (!target[key] || typeof target[key] !== "object") {
|
|
192
|
-
target[key] = {};
|
|
193
|
-
}
|
|
194
|
-
deepMerge(target[key], source[key]);
|
|
195
|
-
} else {
|
|
196
|
-
target[key] = source[key];
|
|
208
|
+
const tscErrorCount = diagnostics.reduce((acc, diag) => acc + (diag.category === DiagnosticCategory.Error ? 1 : 0), 0);
|
|
209
|
+
if (tscErrorCount > 0) {
|
|
210
|
+
return tscErrorCount;
|
|
197
211
|
}
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
const program = createProgramFromConfig2({
|
|
240
|
-
basePath: pkg ?? cwd2(),
|
|
241
|
-
compilerOptions,
|
|
242
|
-
exclude: ["dist", "docs"],
|
|
243
|
-
files
|
|
244
|
-
});
|
|
245
|
-
const diagnostics = getPreEmitDiagnostics2(program);
|
|
246
|
-
if (diagnostics.length > 0) {
|
|
247
|
-
const formattedDiagnostics = formatDiagnosticsWithColorAndContext2(
|
|
248
|
-
diagnostics,
|
|
249
|
-
{
|
|
250
|
-
getCanonicalFileName: (fileName) => fileName,
|
|
251
|
-
getCurrentDirectory: () => folder,
|
|
252
|
-
getNewLine: () => sys3.newLine
|
|
253
|
-
}
|
|
254
|
-
);
|
|
255
|
-
console.error(formattedDiagnostics);
|
|
212
|
+
const entryNameToTypeName = (entry) => {
|
|
213
|
+
const splitEntryName = entry.split(".");
|
|
214
|
+
const newEntryExtension = "d." + splitEntryName.at(-1);
|
|
215
|
+
return [...splitEntryName.slice(0, -1), newEntryExtension].join(".");
|
|
216
|
+
};
|
|
217
|
+
const entryNames = entries.map((entry) => entry.split(`${folder}/`).at(-1) ?? entry);
|
|
218
|
+
for (const entry of entryNames) {
|
|
219
|
+
const entryTypeName = entryNameToTypeName(entry);
|
|
220
|
+
const configObject = {
|
|
221
|
+
projectFolder: ".",
|
|
222
|
+
mainEntryPointFilePath: path.resolve([tempDir, entryTypeName].join("/")),
|
|
223
|
+
bundledPackages: [],
|
|
224
|
+
compiler: { tsconfigFilePath: path.resolve(`${pkg}/tsconfig.json`) },
|
|
225
|
+
dtsRollup: {
|
|
226
|
+
enabled: true,
|
|
227
|
+
untrimmedFilePath: path.resolve(`${outDir}/${entryTypeName}`)
|
|
228
|
+
},
|
|
229
|
+
apiReport: { enabled: false },
|
|
230
|
+
docModel: { enabled: false },
|
|
231
|
+
tsdocMetadata: { enabled: false }
|
|
232
|
+
};
|
|
233
|
+
writeFileSync(`${tempDir}/api-extractor.json`, JSON.stringify(configObject, null, 2));
|
|
234
|
+
const extractorConfig = ExtractorConfig.prepare({
|
|
235
|
+
configObject,
|
|
236
|
+
configObjectFullPath: path.resolve(`${tempDir}/api-extractor.json`),
|
|
237
|
+
// just a virtual label, doesn't have to exist
|
|
238
|
+
packageJsonFullPath: path.resolve("package.json")
|
|
239
|
+
});
|
|
240
|
+
const extractorResult = Extractor.invoke(extractorConfig, {
|
|
241
|
+
localBuild: true,
|
|
242
|
+
showVerboseMessages: true
|
|
243
|
+
});
|
|
244
|
+
if (extractorResult.succeeded) {
|
|
245
|
+
console.log("API Extractor completed successfully");
|
|
246
|
+
process.exitCode = 0;
|
|
247
|
+
} else {
|
|
248
|
+
console.error(
|
|
249
|
+
`API Extractor completed with ${extractorResult.errorCount} errors and ${extractorResult.warningCount} warnings`
|
|
250
|
+
);
|
|
251
|
+
process.exitCode = 1;
|
|
252
|
+
}
|
|
256
253
|
}
|
|
257
|
-
program.emit();
|
|
258
|
-
return diagnostics.reduce((acc, diag) => acc + (diag.category === DiagnosticCategory2.Error ? 1 : 0), 0);
|
|
259
254
|
}
|
|
260
255
|
return 0;
|
|
261
256
|
};
|
|
@@ -294,6 +289,7 @@ var compileFolder = async (folder, entryMode = "single", options, verbose) => {
|
|
|
294
289
|
if (verbose) {
|
|
295
290
|
console.log(`TSUP:build:stop [${folder}]`);
|
|
296
291
|
}
|
|
292
|
+
packageCompileTscTypes(entry, outDir);
|
|
297
293
|
return 0;
|
|
298
294
|
};
|
|
299
295
|
var tsupOptions = (options = []) => {
|
|
@@ -329,11 +325,6 @@ var packageCompileTsup = async (config2) => {
|
|
|
329
325
|
if (verbose) {
|
|
330
326
|
console.log("Calling packageCompileTscTypes");
|
|
331
327
|
}
|
|
332
|
-
let errors = await packageCompileTypes(config2);
|
|
333
|
-
errors = errors + packageCompileTsc(void 0, config2);
|
|
334
|
-
if (errors > 0) {
|
|
335
|
-
return errors;
|
|
336
|
-
}
|
|
337
328
|
return (await Promise.all(
|
|
338
329
|
Object.entries(compileForNode).map(async ([folder, options]) => {
|
|
339
330
|
const optionsObject = typeof options === "object" ? options : {};
|
|
@@ -388,7 +379,7 @@ var packageCompileTsup = async (config2) => {
|
|
|
388
379
|
// src/actions/package/compile/compile.ts
|
|
389
380
|
var packageCompile = async (inConfig = {}) => {
|
|
390
381
|
const pkg = process.env.INIT_CWD;
|
|
391
|
-
console.log(
|
|
382
|
+
console.log(chalk4.green(`Compiling ${pkg}`));
|
|
392
383
|
const config2 = await loadConfig(inConfig);
|
|
393
384
|
const publint = config2.publint;
|
|
394
385
|
const tsupResults = await packageCompileTsup(config2);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/actions/package/compile/compile.ts","../../../../src/lib/loadConfig.ts","../../../../src/actions/package/publint.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":["import chalk from 'chalk'\n\nimport { loadConfig } from '../../../lib/index.ts'\nimport { packagePublint } from '../publint.ts'\nimport { packageCompileTsup } from './packageCompileTsup.ts'\nimport type { XyConfig } from './XyConfig.ts'\n\nexport const packageCompile = async (inConfig: XyConfig = {}): Promise<number> => {\n const pkg = process.env.INIT_CWD\n console.log(chalk.green(`Compiling ${pkg}`))\n const config = await loadConfig(inConfig)\n const publint = config.publint\n\n const tsupResults = await packageCompileTsup(config)\n\n if (tsupResults > 0) {\n return tsupResults\n }\n\n return (publint ? await packagePublint(config) : 0)\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 { promises as fs } from 'node:fs'\n\nimport chalk from 'chalk'\nimport type { Message } from 'publint'\nimport sortPackageJson from 'sort-package-json'\n\nexport interface PackagePublintParams { verbose?: boolean }\n\nexport const packagePublint = async (params?: PackagePublintParams) => {\n const pkgDir = process.env.INIT_CWD\n\n const sortedPkg = sortPackageJson(await fs.readFile(`${pkgDir}/package.json`, 'utf8'))\n await fs.writeFile(`${pkgDir}/package.json`, sortedPkg)\n\n const pkg = JSON.parse(await fs.readFile(`${pkgDir}/package.json`, 'utf8'))\n\n console.log(chalk.green(`Publint: ${pkg.name}`))\n console.log(chalk.gray(pkgDir))\n\n const { publint } = await import('publint')\n\n const { messages } = await publint({\n level: 'suggestion',\n pkgDir,\n strict: true,\n })\n\n // eslint-disable-next-line import-x/no-internal-modules\n const { formatMessage } = await import('publint/utils')\n\n const validMessage = (_message: Message): boolean => {\n return true\n /* try {\n const value = getValueFromPath(pkg, message.path)\n switch (message.code) {\n case 'FILE_INVALID_FORMAT':\n return !message.args?.actualFilePath?.includes('dist/browser') && !value?.includes('dist/browser')\n case 'EXPORT_TYPES_INVALID_FORMAT':\n return !`${value}`.includes('dist/browser')\n default:\n return true\n }\n } catch (ex) {\n const error = ex as Error\n console.error(chalk.red(`validMessage Excepted: ${error.message}`))\n console.error(chalk.gray(JSON.stringify(error.stack)))\n return true\n } */\n }\n\n // we filter out invalid file formats for the esm folder since it is intentionally done\n const validMessages = messages.filter(validMessage)\n for (const message of validMessages) {\n switch (message.type) {\n case 'error': {\n console.error(chalk.red(`[${message.code}] ${formatMessage(message, pkg)}`))\n break\n }\n case 'warning': {\n console.warn(chalk.yellow(`[${message.code}] ${formatMessage(message, pkg)}`))\n break\n }\n default: {\n console.log(chalk.white(`[${message.code}] ${formatMessage(message, pkg)}`))\n break\n }\n }\n }\n\n if (params?.verbose) {\n console.log(chalk.gray(`Publint [Finish]: ${pkgDir} [${validMessages.length}]`))\n }\n\n return validMessages.filter(message => message.type === 'error').length\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","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","config"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/actions/package/compile/compile.ts","../../../../src/lib/loadConfig.ts","../../../../src/actions/package/publint.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/packageCompileTscTypes.ts","../../../../src/actions/package/compile/getCompilerOptions.ts"],"sourcesContent":["import chalk from 'chalk'\n\nimport { loadConfig } from '../../../lib/index.ts'\nimport { packagePublint } from '../publint.ts'\nimport { packageCompileTsup } from './packageCompileTsup.ts'\nimport type { XyConfig } from './XyConfig.ts'\n\nexport const packageCompile = async (inConfig: XyConfig = {}): Promise<number> => {\n const pkg = process.env.INIT_CWD\n console.log(chalk.green(`Compiling ${pkg}`))\n const config = await loadConfig(inConfig)\n const publint = config.publint\n\n const tsupResults = await packageCompileTsup(config)\n\n if (tsupResults > 0) {\n return tsupResults\n }\n\n return (publint ? await packagePublint(config) : 0)\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 { promises as fs } from 'node:fs'\n\nimport chalk from 'chalk'\nimport type { Message } from 'publint'\nimport sortPackageJson from 'sort-package-json'\n\nexport interface PackagePublintParams { verbose?: boolean }\n\nexport const packagePublint = async (params?: PackagePublintParams) => {\n const pkgDir = process.env.INIT_CWD\n\n const sortedPkg = sortPackageJson(await fs.readFile(`${pkgDir}/package.json`, 'utf8'))\n await fs.writeFile(`${pkgDir}/package.json`, sortedPkg)\n\n const pkg = JSON.parse(await fs.readFile(`${pkgDir}/package.json`, 'utf8'))\n\n console.log(chalk.green(`Publint: ${pkg.name}`))\n console.log(chalk.gray(pkgDir))\n\n const { publint } = await import('publint')\n\n const { messages } = await publint({\n level: 'suggestion',\n pkgDir,\n strict: true,\n })\n\n // eslint-disable-next-line import-x/no-internal-modules\n const { formatMessage } = await import('publint/utils')\n\n const validMessage = (_message: Message): boolean => {\n return true\n /* try {\n const value = getValueFromPath(pkg, message.path)\n switch (message.code) {\n case 'FILE_INVALID_FORMAT':\n return !message.args?.actualFilePath?.includes('dist/browser') && !value?.includes('dist/browser')\n case 'EXPORT_TYPES_INVALID_FORMAT':\n return !`${value}`.includes('dist/browser')\n default:\n return true\n }\n } catch (ex) {\n const error = ex as Error\n console.error(chalk.red(`validMessage Excepted: ${error.message}`))\n console.error(chalk.gray(JSON.stringify(error.stack)))\n return true\n } */\n }\n\n // we filter out invalid file formats for the esm folder since it is intentionally done\n const validMessages = messages.filter(validMessage)\n for (const message of validMessages) {\n switch (message.type) {\n case 'error': {\n console.error(chalk.red(`[${message.code}] ${formatMessage(message, pkg)}`))\n break\n }\n case 'warning': {\n console.warn(chalk.yellow(`[${message.code}] ${formatMessage(message, pkg)}`))\n break\n }\n default: {\n console.log(chalk.white(`[${message.code}] ${formatMessage(message, pkg)}`))\n break\n }\n }\n }\n\n if (params?.verbose) {\n console.log(chalk.gray(`Publint [Finish]: ${pkgDir} [${validMessages.length}]`))\n }\n\n return validMessages.filter(message => message.type === 'error').length\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 { packageCompileTscTypes } from './packageCompileTscTypes.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 packageCompileTscTypes(entry, outDir)\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 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","// 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","/* eslint-disable max-statements */\nimport { rm, writeFileSync } from 'node:fs'\nimport path from 'node:path'\nimport { cwd } from 'node:process'\n\nimport { Extractor, ExtractorConfig } from '@microsoft/api-extractor'\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 packageCompileTscTypes = (\n entries: string[],\n outDir: 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 const tempDir = `${pkg}/.xylabs/ts-scripts-yarn3/compile/tsc/types/${Date.now()}`\n\n rm(tempDir, { force: true, recursive: true }, (err) => {\n if (err) {\n console.error(chalk.red(`Error removing temporary directory: ${tempDir}`), err)\n return 1\n }\n })\n\n const compilerOptions = {\n ...(getCompilerOptions({\n emitDeclarationOnly: true,\n outDir: tempDir,\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 const tscErrorCount = diagnostics.reduce((acc, diag) => acc + (diag.category === DiagnosticCategory.Error ? 1 : 0), 0)\n if (tscErrorCount > 0) {\n return tscErrorCount\n }\n\n // api-extractor\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 for (const entry of entryNames) {\n const entryTypeName = entryNameToTypeName(entry)\n\n const configObject = {\n projectFolder: '.',\n mainEntryPointFilePath: path.resolve([tempDir, entryTypeName].join('/')),\n bundledPackages: [],\n compiler: { tsconfigFilePath: path.resolve(`${pkg}/tsconfig.json`) },\n dtsRollup: {\n enabled: true,\n untrimmedFilePath: path.resolve(`${outDir}/${entryTypeName}`),\n },\n apiReport: { enabled: false },\n docModel: { enabled: false },\n tsdocMetadata: { enabled: false },\n }\n\n writeFileSync(`${tempDir}/api-extractor.json`, JSON.stringify(configObject, null, 2))\n\n const extractorConfig = ExtractorConfig.prepare({\n configObject,\n configObjectFullPath: path.resolve(`${tempDir}/api-extractor.json`), // just a virtual label, doesn't have to exist\n packageJsonFullPath: path.resolve('package.json'),\n })\n\n const extractorResult = Extractor.invoke(extractorConfig, {\n localBuild: true,\n showVerboseMessages: true,\n })\n\n if (extractorResult.succeeded) {\n console.log('API Extractor completed successfully')\n process.exitCode = 0\n } else {\n console.error(\n `API Extractor completed with ${extractorResult.errorCount} errors`\n + ` and ${extractorResult.warningCount} warnings`,\n )\n process.exitCode = 1\n }\n }\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"],"mappings":"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","names":["chalk","chalk","chalk","sys","deepmerge","config","require","config","chalk","sys","options","config","chalk","config"]}
|