smartbundle 0.12.0 → 0.12.2
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/__compiled__/cjs/src/createViteConfig.js +7 -7
- package/__compiled__/cjs/src/createViteConfig.js.map +1 -1
- package/__compiled__/cjs/src/index.js +11 -11
- package/__compiled__/cjs/src/index.js.map +1 -1
- package/__compiled__/cjs/src/resolveDirs.d.ts +2 -0
- package/__compiled__/cjs/src/resolveDirs.js +3 -1
- package/__compiled__/cjs/src/resolveDirs.js.map +1 -1
- package/__compiled__/cjs/src/tasks/buildTypesTask/buildTypesTask.d.ts +6 -3
- package/__compiled__/cjs/src/tasks/buildTypesTask/buildTypesTask.js +23 -14
- package/__compiled__/cjs/src/tasks/buildTypesTask/buildTypesTask.js.map +1 -1
- package/__compiled__/cjs/src/tasks/buildTypesTask/callTypescript.d.ts +7 -3
- package/__compiled__/cjs/src/tasks/buildTypesTask/callTypescript.js +57 -26
- package/__compiled__/cjs/src/tasks/buildTypesTask/callTypescript.js.map +1 -1
- package/__compiled__/cjs/src/tasks/buildTypesTask/findTypingsNames.d.ts +1 -0
- package/__compiled__/cjs/src/tasks/buildTypesTask/findTypingsNames.js +89 -0
- package/__compiled__/cjs/src/tasks/buildTypesTask/findTypingsNames.js.map +1 -0
- package/__compiled__/cjs/src/tasks/buildTypesTask/findTypingsPackages.d.ts +4 -0
- package/__compiled__/cjs/src/tasks/buildTypesTask/findTypingsPackages.js +124 -0
- package/__compiled__/cjs/src/tasks/buildTypesTask/findTypingsPackages.js.map +1 -0
- package/__compiled__/cjs/src/tasks/buildTypesTask/inlineExtensions.d.ts +2 -8
- package/__compiled__/cjs/src/tasks/buildTypesTask/inlineExtensions.js +6 -7
- package/__compiled__/cjs/src/tasks/buildTypesTask/inlineExtensions.js.map +1 -1
- package/__compiled__/cjs/src/tasks/copyStaticFilesTask.js +1 -1
- package/__compiled__/cjs/src/tasks/copyStaticFilesTask.js.map +1 -1
- package/__compiled__/esm/src/createViteConfig.mjs +7 -7
- package/__compiled__/esm/src/createViteConfig.mjs.map +1 -1
- package/__compiled__/esm/src/index.mjs +11 -11
- package/__compiled__/esm/src/index.mjs.map +1 -1
- package/__compiled__/esm/src/resolveDirs.d.mts +2 -0
- package/__compiled__/esm/src/resolveDirs.mjs +3 -1
- package/__compiled__/esm/src/resolveDirs.mjs.map +1 -1
- package/__compiled__/esm/src/tasks/buildTypesTask/buildTypesTask.d.mts +6 -3
- package/__compiled__/esm/src/tasks/buildTypesTask/buildTypesTask.mjs +23 -14
- package/__compiled__/esm/src/tasks/buildTypesTask/buildTypesTask.mjs.map +1 -1
- package/__compiled__/esm/src/tasks/buildTypesTask/callTypescript.d.mts +7 -3
- package/__compiled__/esm/src/tasks/buildTypesTask/callTypescript.mjs +57 -26
- package/__compiled__/esm/src/tasks/buildTypesTask/callTypescript.mjs.map +1 -1
- package/__compiled__/esm/src/tasks/buildTypesTask/findTypingsNames.d.mts +1 -0
- package/__compiled__/esm/src/tasks/buildTypesTask/findTypingsNames.mjs +72 -0
- package/__compiled__/esm/src/tasks/buildTypesTask/findTypingsNames.mjs.map +1 -0
- package/__compiled__/esm/src/tasks/buildTypesTask/findTypingsPackages.d.mts +4 -0
- package/__compiled__/esm/src/tasks/buildTypesTask/findTypingsPackages.mjs +106 -0
- package/__compiled__/esm/src/tasks/buildTypesTask/findTypingsPackages.mjs.map +1 -0
- package/__compiled__/esm/src/tasks/buildTypesTask/inlineExtensions.d.mts +2 -8
- package/__compiled__/esm/src/tasks/buildTypesTask/inlineExtensions.mjs +6 -7
- package/__compiled__/esm/src/tasks/buildTypesTask/inlineExtensions.mjs.map +1 -1
- package/__compiled__/esm/src/tasks/copyStaticFilesTask.mjs +1 -1
- package/__compiled__/esm/src/tasks/copyStaticFilesTask.mjs.map +1 -1
- package/package.json +1 -1
@@ -0,0 +1,124 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
3
|
+
const ts = require("typescript");
|
4
|
+
const path = require("node:path");
|
5
|
+
function _interopNamespaceDefault(e) {
|
6
|
+
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
7
|
+
if (e) {
|
8
|
+
for (const k in e) {
|
9
|
+
if (k !== "default") {
|
10
|
+
const d = Object.getOwnPropertyDescriptor(e, k);
|
11
|
+
Object.defineProperty(n, k, d.get ? d : {
|
12
|
+
enumerable: true,
|
13
|
+
get: () => e[k]
|
14
|
+
});
|
15
|
+
}
|
16
|
+
}
|
17
|
+
}
|
18
|
+
n.default = e;
|
19
|
+
return Object.freeze(n);
|
20
|
+
}
|
21
|
+
const ts__namespace = /* @__PURE__ */ _interopNamespaceDefault(ts);
|
22
|
+
const path__namespace = /* @__PURE__ */ _interopNamespaceDefault(path);
|
23
|
+
function createVirtualHostFunctions(virtualFilePath, virtualSourceContent, originalHost) {
|
24
|
+
const getSourceFile = (fileName, languageVersion) => {
|
25
|
+
if (fileName === virtualFilePath) {
|
26
|
+
return ts__namespace.createSourceFile(
|
27
|
+
fileName,
|
28
|
+
virtualSourceContent,
|
29
|
+
languageVersion
|
30
|
+
);
|
31
|
+
}
|
32
|
+
return originalHost.getSourceFile(fileName, languageVersion);
|
33
|
+
};
|
34
|
+
const fileExists = (fileName) => {
|
35
|
+
if (fileName === virtualFilePath) {
|
36
|
+
return true;
|
37
|
+
}
|
38
|
+
return originalHost.fileExists(fileName);
|
39
|
+
};
|
40
|
+
const readFile = (fileName) => {
|
41
|
+
if (fileName === virtualFilePath) {
|
42
|
+
return virtualSourceContent;
|
43
|
+
}
|
44
|
+
return originalHost.readFile(fileName);
|
45
|
+
};
|
46
|
+
return {
|
47
|
+
getSourceFile,
|
48
|
+
fileExists,
|
49
|
+
readFile
|
50
|
+
};
|
51
|
+
}
|
52
|
+
function createCompilerHostWithVirtualSource(packages, sourceDir) {
|
53
|
+
const virtualSourceContent = [...packages].map((p) => `import "${p}";`).join("\n") + // for ignoring the `Generated an empty chunk: "."` error
|
54
|
+
"export const a = 1;\n";
|
55
|
+
const virtualFilePath = path__namespace.join(sourceDir, "virtual.ts");
|
56
|
+
const originalHost = ts__namespace.createCompilerHost({
|
57
|
+
target: ts__namespace.ScriptTarget.ESNext,
|
58
|
+
moduleResolution: ts__namespace.ModuleResolutionKind.NodeNext,
|
59
|
+
baseUrl: ".",
|
60
|
+
sourceRoot: sourceDir,
|
61
|
+
noEmit: true,
|
62
|
+
emitDeclarationOnly: true,
|
63
|
+
noEmitOnError: true,
|
64
|
+
paths: {
|
65
|
+
"*": ["node_modules/*"]
|
66
|
+
}
|
67
|
+
});
|
68
|
+
const virtualFunctions = createVirtualHostFunctions(
|
69
|
+
virtualFilePath,
|
70
|
+
virtualSourceContent,
|
71
|
+
originalHost
|
72
|
+
);
|
73
|
+
return {
|
74
|
+
host: new Proxy(originalHost, {
|
75
|
+
get(target, prop) {
|
76
|
+
return virtualFunctions[prop] || target[prop];
|
77
|
+
}
|
78
|
+
}),
|
79
|
+
virtualFilePath
|
80
|
+
};
|
81
|
+
}
|
82
|
+
function findTypingsPackages(packages, sourceDir) {
|
83
|
+
const { host, virtualFilePath } = createCompilerHostWithVirtualSource(
|
84
|
+
packages,
|
85
|
+
sourceDir
|
86
|
+
);
|
87
|
+
const program = ts__namespace.createProgram({
|
88
|
+
rootNames: [virtualFilePath],
|
89
|
+
options: {},
|
90
|
+
host
|
91
|
+
});
|
92
|
+
const sourceFile = program.getSourceFile(virtualFilePath);
|
93
|
+
if (!sourceFile) {
|
94
|
+
throw new Error(
|
95
|
+
"[getSourceFile] Impossible error inside findMissingTypings"
|
96
|
+
);
|
97
|
+
}
|
98
|
+
const missingTypings = /* @__PURE__ */ new Set();
|
99
|
+
const existingTypingPackages = /* @__PURE__ */ new Set();
|
100
|
+
sourceFile.forEachChild((node) => {
|
101
|
+
var _a;
|
102
|
+
if (ts__namespace.isImportDeclaration(node)) {
|
103
|
+
const moduleSpecifier = node.moduleSpecifier;
|
104
|
+
if (ts__namespace.isStringLiteral(moduleSpecifier)) {
|
105
|
+
const moduleResolution = ts__namespace.resolveModuleName(
|
106
|
+
moduleSpecifier.text,
|
107
|
+
virtualFilePath,
|
108
|
+
{},
|
109
|
+
host
|
110
|
+
);
|
111
|
+
if (!((_a = moduleResolution == null ? void 0 : moduleResolution.resolvedModule) == null ? void 0 : _a.packageId)) {
|
112
|
+
missingTypings.add(moduleSpecifier.text);
|
113
|
+
} else {
|
114
|
+
existingTypingPackages.add(
|
115
|
+
moduleResolution.resolvedModule.packageId.name
|
116
|
+
);
|
117
|
+
}
|
118
|
+
}
|
119
|
+
}
|
120
|
+
});
|
121
|
+
return { missingTypings, existingTypingPackages };
|
122
|
+
}
|
123
|
+
exports.findTypingsPackages = findTypingsPackages;
|
124
|
+
//# sourceMappingURL=findTypingsPackages.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"findTypingsPackages.js","sources":["../../../../../../src/tasks/buildTypesTask/findTypingsPackages.ts"],"sourcesContent":["import * as ts from \"typescript\";\nimport * as path from \"node:path\";\n\ntype HostFunctions = {\n getSourceFile: ts.CompilerHost[\"getSourceFile\"];\n fileExists: ts.CompilerHost[\"fileExists\"];\n readFile: ts.CompilerHost[\"readFile\"];\n};\n\nfunction createVirtualHostFunctions(\n virtualFilePath: string,\n virtualSourceContent: string,\n originalHost: ts.CompilerHost,\n): HostFunctions {\n const getSourceFile: ts.CompilerHost[\"getSourceFile\"] = (\n fileName,\n languageVersion,\n ) => {\n if (fileName === virtualFilePath) {\n return ts.createSourceFile(\n fileName,\n virtualSourceContent,\n languageVersion,\n );\n }\n return originalHost.getSourceFile(fileName, languageVersion);\n };\n\n const fileExists: ts.CompilerHost[\"fileExists\"] = (fileName) => {\n if (fileName === virtualFilePath) {\n return true;\n }\n return originalHost.fileExists(fileName);\n };\n\n const readFile: ts.CompilerHost[\"readFile\"] = (fileName) => {\n if (fileName === virtualFilePath) {\n return virtualSourceContent;\n }\n return originalHost.readFile(fileName);\n };\n\n return {\n getSourceFile,\n fileExists,\n readFile,\n };\n}\n\nfunction createCompilerHostWithVirtualSource(\n packages: Set<string>,\n sourceDir: string,\n) {\n const virtualSourceContent =\n [...packages].map((p) => `import \"${p}\";`).join(\"\\n\") +\n // for ignoring the `Generated an empty chunk: \".\"` error\n \"export const a = 1;\\n\";\n const virtualFilePath = path.join(sourceDir, \"virtual.ts\");\n\n const originalHost = ts.createCompilerHost({\n target: ts.ScriptTarget.ESNext,\n moduleResolution: ts.ModuleResolutionKind.NodeNext,\n baseUrl: \".\",\n sourceRoot: sourceDir,\n noEmit: true,\n emitDeclarationOnly: true,\n noEmitOnError: true,\n paths: {\n \"*\": [\"node_modules/*\"],\n },\n });\n const virtualFunctions = createVirtualHostFunctions(\n virtualFilePath,\n virtualSourceContent,\n originalHost,\n );\n\n return {\n host: new Proxy(originalHost, {\n get(target, prop: keyof ts.CompilerHost) {\n return virtualFunctions[prop as keyof HostFunctions] || target[prop];\n },\n }),\n virtualFilePath,\n };\n}\n\nexport function findTypingsPackages(packages: Set<string>, sourceDir: string) {\n const { host, virtualFilePath } = createCompilerHostWithVirtualSource(\n packages,\n sourceDir,\n );\n\n const program = ts.createProgram({\n rootNames: [virtualFilePath],\n options: {},\n host: host,\n });\n\n const sourceFile = program.getSourceFile(virtualFilePath);\n if (!sourceFile) {\n throw new Error(\n \"[getSourceFile] Impossible error inside findMissingTypings\",\n );\n }\n\n const missingTypings = new Set<string>();\n const existingTypingPackages = new Set<string>();\n sourceFile.forEachChild((node) => {\n if (ts.isImportDeclaration(node)) {\n const moduleSpecifier = node.moduleSpecifier;\n if (ts.isStringLiteral(moduleSpecifier)) {\n const moduleResolution = ts.resolveModuleName(\n moduleSpecifier.text,\n virtualFilePath,\n {},\n host,\n );\n\n if (!moduleResolution?.resolvedModule?.packageId) {\n missingTypings.add(moduleSpecifier.text);\n } else {\n existingTypingPackages.add(\n moduleResolution.resolvedModule.packageId.name,\n );\n }\n }\n }\n });\n\n return { missingTypings, existingTypingPackages };\n}\n"],"names":["ts","path"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AASA,SAAS,2BACP,iBACA,sBACA,cACe;AACT,QAAA,gBAAkD,CACtD,UACA,oBACG;AACH,QAAI,aAAa,iBAAiB;AAChC,aAAOA,cAAG;AAAA,QACR;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IAAA;AAEK,WAAA,aAAa,cAAc,UAAU,eAAe;AAAA,EAC7D;AAEM,QAAA,aAA4C,CAAC,aAAa;AAC9D,QAAI,aAAa,iBAAiB;AACzB,aAAA;AAAA,IAAA;AAEF,WAAA,aAAa,WAAW,QAAQ;AAAA,EACzC;AAEM,QAAA,WAAwC,CAAC,aAAa;AAC1D,QAAI,aAAa,iBAAiB;AACzB,aAAA;AAAA,IAAA;AAEF,WAAA,aAAa,SAAS,QAAQ;AAAA,EACvC;AAEO,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,oCACP,UACA,WACA;AACA,QAAM,uBACJ,CAAC,GAAG,QAAQ,EAAE,IAAI,CAAC,MAAM,WAAW,CAAC,IAAI,EAAE,KAAK,IAAI;AAAA,EAEpD;AACF,QAAM,kBAAkBC,gBAAK,KAAK,WAAW,YAAY;AAEnD,QAAA,eAAeD,cAAG,mBAAmB;AAAA,IACzC,QAAQA,cAAG,aAAa;AAAA,IACxB,kBAAkBA,cAAG,qBAAqB;AAAA,IAC1C,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,qBAAqB;AAAA,IACrB,eAAe;AAAA,IACf,OAAO;AAAA,MACL,KAAK,CAAC,gBAAgB;AAAA,IAAA;AAAA,EACxB,CACD;AACD,QAAM,mBAAmB;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEO,SAAA;AAAA,IACL,MAAM,IAAI,MAAM,cAAc;AAAA,MAC5B,IAAI,QAAQ,MAA6B;AACvC,eAAO,iBAAiB,IAA2B,KAAK,OAAO,IAAI;AAAA,MAAA;AAAA,IACrE,CACD;AAAA,IACD;AAAA,EACF;AACF;AAEgB,SAAA,oBAAoB,UAAuB,WAAmB;AACtE,QAAA,EAAE,MAAM,gBAAA,IAAoB;AAAA,IAChC;AAAA,IACA;AAAA,EACF;AAEM,QAAA,UAAUA,cAAG,cAAc;AAAA,IAC/B,WAAW,CAAC,eAAe;AAAA,IAC3B,SAAS,CAAC;AAAA,IACV;AAAA,EAAA,CACD;AAEK,QAAA,aAAa,QAAQ,cAAc,eAAe;AACxD,MAAI,CAAC,YAAY;AACf,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EAAA;AAGI,QAAA,qCAAqB,IAAY;AACjC,QAAA,6CAA6B,IAAY;AACpC,aAAA,aAAa,CAAC,SAAS;;AAC5B,QAAAA,cAAG,oBAAoB,IAAI,GAAG;AAChC,YAAM,kBAAkB,KAAK;AACzB,UAAAA,cAAG,gBAAgB,eAAe,GAAG;AACvC,cAAM,mBAAmBA,cAAG;AAAA,UAC1B,gBAAgB;AAAA,UAChB;AAAA,UACA,CAAC;AAAA,UACD;AAAA,QACF;AAEI,YAAA,GAAC,0DAAkB,mBAAlB,mBAAkC,YAAW;AACjC,yBAAA,IAAI,gBAAgB,IAAI;AAAA,QAAA,OAClC;AACkB,iCAAA;AAAA,YACrB,iBAAiB,eAAe,UAAU;AAAA,UAC5C;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAAA,EACF,CACD;AAEM,SAAA,EAAE,gBAAgB,uBAAuB;AAClD;;"}
|
@@ -1,9 +1,3 @@
|
|
1
1
|
export type FileExists = (path: string) => boolean;
|
2
|
-
export declare function inlineExtensionsMjs(ts: typeof import("typescript"), content: string, fileExists: FileExists):
|
3
|
-
|
4
|
-
usedLibraries: Set<string>;
|
5
|
-
};
|
6
|
-
export declare function inlineExtensionsCjs(ts: typeof import("typescript"), content: string, fileExists: FileExists): {
|
7
|
-
output: string;
|
8
|
-
usedLibraries: Set<string>;
|
9
|
-
};
|
2
|
+
export declare function inlineExtensionsMjs(ts: typeof import("typescript"), content: string, fileExists: FileExists): string;
|
3
|
+
export declare function inlineExtensionsCjs(ts: typeof import("typescript"), content: string, fileExists: FileExists): string;
|
@@ -2,22 +2,21 @@
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
3
3
|
const path = require("node:path");
|
4
4
|
function transformAndExtractImports(ts, content, ext, dtsExt, fileExists) {
|
5
|
-
const usedLibraries = /* @__PURE__ */ new Set();
|
6
5
|
function addExtension(ts2, node, ext2, dtsExt2, fileExists2) {
|
7
6
|
const importPath = node.text;
|
8
7
|
if (!importPath.startsWith(".")) {
|
9
|
-
usedLibraries.add(importPath);
|
10
8
|
return node;
|
11
9
|
}
|
12
10
|
if (importPath.endsWith(".cjs") || importPath.endsWith(".mjs") || importPath.endsWith(".js")) {
|
13
11
|
return node;
|
14
12
|
}
|
15
|
-
|
16
|
-
|
13
|
+
const cleanedImportPath = importPath.replace(/\.[cm]?js$/, "");
|
14
|
+
if (fileExists2(`${cleanedImportPath}${dtsExt2}`)) {
|
15
|
+
return ts2.factory.createStringLiteral(`${cleanedImportPath}${ext2}`);
|
17
16
|
}
|
18
|
-
if (fileExists2("./" + path.join(
|
17
|
+
if (fileExists2("./" + path.join(cleanedImportPath, `index${dtsExt2}`))) {
|
19
18
|
return ts2.factory.createStringLiteral(
|
20
|
-
"./" + path.join(
|
19
|
+
"./" + path.join(cleanedImportPath, `index${ext2}`)
|
21
20
|
);
|
22
21
|
}
|
23
22
|
return node;
|
@@ -99,7 +98,7 @@ function transformAndExtractImports(ts, content, ext, dtsExt, fileExists) {
|
|
99
98
|
const transformedSourceFile = result.transformed[0];
|
100
99
|
const output = printer.printFile(transformedSourceFile);
|
101
100
|
result.dispose();
|
102
|
-
return
|
101
|
+
return output;
|
103
102
|
}
|
104
103
|
function inlineExtensionsMjs(ts, content, fileExists) {
|
105
104
|
return transformAndExtractImports(ts, content, ".mjs", ".d.mts", fileExists);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"inlineExtensions.js","sources":["../../../../../../src/tasks/buildTypesTask/inlineExtensions.ts"],"sourcesContent":["import type * as TS from \"typescript\";\nimport { join } from \"node:path\";\n\n// It needs for VSCode. It cannot resolve the import/export if it has no extension\n\nexport type FileExists = (path: string) => boolean;\n\nfunction transformAndExtractImports(\n ts: typeof import(\"typescript\"),\n content: string,\n ext: string,\n dtsExt: string,\n fileExists: FileExists,\n) {\n
|
1
|
+
{"version":3,"file":"inlineExtensions.js","sources":["../../../../../../src/tasks/buildTypesTask/inlineExtensions.ts"],"sourcesContent":["import type * as TS from \"typescript\";\nimport { join } from \"node:path\";\n\n// It needs for VSCode. It cannot resolve the import/export if it has no extension\n\nexport type FileExists = (path: string) => boolean;\n\nfunction transformAndExtractImports(\n ts: typeof import(\"typescript\"),\n content: string,\n ext: string,\n dtsExt: string,\n fileExists: FileExists,\n) {\n function addExtension(\n ts: typeof import(\"typescript\"),\n node: TS.StringLiteral,\n ext: string,\n dtsExt: string,\n fileExists: FileExists,\n ): TS.StringLiteral {\n const importPath = node.text;\n\n if (!importPath.startsWith(\".\")) {\n return node;\n }\n\n if (\n importPath.endsWith(\".cjs\") ||\n importPath.endsWith(\".mjs\") ||\n importPath.endsWith(\".js\")\n ) {\n return node;\n }\n\n const cleanedImportPath = importPath.replace(/\\.[cm]?js$/, \"\");\n\n if (fileExists(`${cleanedImportPath}${dtsExt}`)) {\n return ts.factory.createStringLiteral(`${cleanedImportPath}${ext}`);\n }\n\n if (fileExists(\"./\" + join(cleanedImportPath, `index${dtsExt}`))) {\n return ts.factory.createStringLiteral(\n \"./\" + join(cleanedImportPath, `index${ext}`),\n );\n }\n\n return node; // Return the original node if no modification was made\n }\n\n const sourceFile = ts.createSourceFile(\n \"temp.ts\",\n content,\n ts.ScriptTarget.ESNext,\n true,\n );\n\n const transformer: TS.TransformerFactory<TS.SourceFile> =\n (context) => (rootNode) => {\n function visit(node: TS.Node): TS.Node {\n // export {} from \"moduleSpecifier\";\n if (ts.isExportDeclaration(node)) {\n const moduleSpecifier = node.moduleSpecifier;\n if (moduleSpecifier && ts.isStringLiteral(moduleSpecifier)) {\n const updatedSpecifier = addExtension(\n ts,\n moduleSpecifier,\n ext,\n dtsExt,\n fileExists,\n );\n return ts.factory.updateExportDeclaration(\n node,\n node.modifiers,\n node.isTypeOnly,\n node.exportClause,\n updatedSpecifier,\n node.attributes,\n );\n }\n }\n\n // import {} from \"moduleSpecifier\";\n if (ts.isImportDeclaration(node)) {\n const moduleSpecifier = node.moduleSpecifier;\n if (moduleSpecifier && ts.isStringLiteral(moduleSpecifier)) {\n const updatedSpecifier = addExtension(\n ts,\n moduleSpecifier,\n ext,\n dtsExt,\n fileExists,\n );\n return ts.factory.updateImportDeclaration(\n node,\n node.modifiers,\n node.importClause,\n updatedSpecifier,\n node.attributes,\n );\n }\n }\n\n // import(\"argument\");\n if (\n ts.isCallExpression(node) &&\n node.expression.kind === ts.SyntaxKind.ImportKeyword\n ) {\n const [argument] = node.arguments;\n if (argument && ts.isStringLiteral(argument)) {\n const updatedArgument = addExtension(\n ts,\n argument,\n ext,\n dtsExt,\n fileExists,\n );\n return ts.factory.updateCallExpression(\n node,\n node.expression,\n node.typeArguments,\n [updatedArgument],\n );\n }\n }\n\n // Generic<import(\"node\")>;\n if (\n ts.isStringLiteral(node) &&\n ts.isLiteralTypeNode(node.parent) &&\n node.parent.parent.kind === ts.SyntaxKind.ImportType\n ) {\n return addExtension(ts, node, ext, dtsExt, fileExists);\n }\n\n return ts.visitEachChild(node, visit, context);\n }\n\n return ts.visitNode(rootNode, visit) as TS.SourceFile;\n };\n\n const result = ts.transform(sourceFile, [transformer]);\n const printer = ts.createPrinter();\n const transformedSourceFile = result.transformed[0];\n const output = printer.printFile(transformedSourceFile);\n result.dispose();\n\n return output;\n}\n\nexport function inlineExtensionsMjs(\n ts: typeof import(\"typescript\"),\n content: string,\n fileExists: FileExists,\n) {\n return transformAndExtractImports(ts, content, \".mjs\", \".d.mts\", fileExists);\n}\n\nexport function inlineExtensionsCjs(\n ts: typeof import(\"typescript\"),\n content: string,\n fileExists: FileExists,\n) {\n return transformAndExtractImports(ts, content, \".js\", \".d.ts\", fileExists);\n}\n"],"names":["ts","ext","dtsExt","fileExists","join"],"mappings":"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"}
|
@@ -5,7 +5,7 @@ const fs = require("node:fs/promises");
|
|
5
5
|
const log = require("../log.js");
|
6
6
|
async function copyStaticFilesTask(sourceDir, outDir) {
|
7
7
|
const files = await copyStaticFiles({
|
8
|
-
relativeFiles: /* @__PURE__ */ new Set(["readme.md"]),
|
8
|
+
relativeFiles: /* @__PURE__ */ new Set(["readme.md", "license", "license.txt"]),
|
9
9
|
sourceDir,
|
10
10
|
outDir
|
11
11
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"copyStaticFilesTask.js","sources":["../../../../../src/tasks/copyStaticFilesTask.ts"],"sourcesContent":["import { join } from \"node:path\";\nimport { copyFile, readdir } from \"node:fs/promises\";\nimport { okLog } from \"../log.js\";\n\nexport async function copyStaticFilesTask(sourceDir: string, outDir: string) {\n const files = await copyStaticFiles({\n relativeFiles: new Set([\"readme.md\"]),\n sourceDir,\n outDir,\n });\n\n okLog(\"Static files:\", [...files].join(\", \"));\n\n return files;\n}\n\ntype CopyStaticFilesOptions = {\n relativeFiles: Set<string>;\n sourceDir: string;\n outDir: string;\n};\n\nasync function copyStaticFiles({\n sourceDir,\n outDir,\n relativeFiles,\n}: CopyStaticFilesOptions) {\n const dirFiles = new Map(\n (await readdir(sourceDir, { recursive: true })).map(\n (f) => [f.toLowerCase(), f] as const,\n ),\n );\n\n const res = new Set<string>();\n for (const file of relativeFiles) {\n try {\n const matchingFile = dirFiles.get(file.toLowerCase());\n\n if (matchingFile) {\n const outFilePath = join(outDir, matchingFile);\n const filePath = join(sourceDir, matchingFile);\n await copyFile(filePath, outFilePath);\n res.add(matchingFile);\n }\n } catch {}\n }\n\n return res;\n}\n"],"names":["okLog","readdir","join","copyFile"],"mappings":";;;;;AAIsB,eAAA,oBAAoB,WAAmB,QAAgB;AACrE,QAAA,QAAQ,MAAM,gBAAgB;AAAA,IAClC,
|
1
|
+
{"version":3,"file":"copyStaticFilesTask.js","sources":["../../../../../src/tasks/copyStaticFilesTask.ts"],"sourcesContent":["import { join } from \"node:path\";\nimport { copyFile, readdir } from \"node:fs/promises\";\nimport { okLog } from \"../log.js\";\n\nexport async function copyStaticFilesTask(sourceDir: string, outDir: string) {\n const files = await copyStaticFiles({\n relativeFiles: new Set([\"readme.md\", \"license\", \"license.txt\"]),\n sourceDir,\n outDir,\n });\n\n okLog(\"Static files:\", [...files].join(\", \"));\n\n return files;\n}\n\ntype CopyStaticFilesOptions = {\n relativeFiles: Set<string>;\n sourceDir: string;\n outDir: string;\n};\n\nasync function copyStaticFiles({\n sourceDir,\n outDir,\n relativeFiles,\n}: CopyStaticFilesOptions) {\n const dirFiles = new Map(\n (await readdir(sourceDir, { recursive: true })).map(\n (f) => [f.toLowerCase(), f] as const,\n ),\n );\n\n const res = new Set<string>();\n for (const file of relativeFiles) {\n try {\n const matchingFile = dirFiles.get(file.toLowerCase());\n\n if (matchingFile) {\n const outFilePath = join(outDir, matchingFile);\n const filePath = join(sourceDir, matchingFile);\n await copyFile(filePath, outFilePath);\n res.add(matchingFile);\n }\n } catch {}\n }\n\n return res;\n}\n"],"names":["okLog","readdir","join","copyFile"],"mappings":";;;;;AAIsB,eAAA,oBAAoB,WAAmB,QAAgB;AACrE,QAAA,QAAQ,MAAM,gBAAgB;AAAA,IAClC,eAAmB,oBAAA,IAAI,CAAC,aAAa,WAAW,aAAa,CAAC;AAAA,IAC9D;AAAA,IACA;AAAA,EAAA,CACD;AAEDA,MAAA,MAAM,iBAAiB,CAAC,GAAG,KAAK,EAAE,KAAK,IAAI,CAAC;AAErC,SAAA;AACT;AAQA,eAAe,gBAAgB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AACF,GAA2B;AACzB,QAAM,WAAW,IAAI;AAAA,KAClB,MAAMC,GAAQ,QAAA,WAAW,EAAE,WAAW,KAAM,CAAA,GAAG;AAAA,MAC9C,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;AAAA,IAAA;AAAA,EAE9B;AAEM,QAAA,0BAAU,IAAY;AAC5B,aAAW,QAAQ,eAAe;AAC5B,QAAA;AACF,YAAM,eAAe,SAAS,IAAI,KAAK,aAAa;AAEpD,UAAI,cAAc;AACV,cAAA,cAAcC,KAAAA,KAAK,QAAQ,YAAY;AACvC,cAAA,WAAWA,KAAAA,KAAK,WAAW,YAAY;AACvC,cAAAC,GAAA,SAAS,UAAU,WAAW;AACpC,YAAI,IAAI,YAAY;AAAA,MAAA;AAAA,IACtB,QACM;AAAA,IAAA;AAAA,EAAC;AAGJ,SAAA;AACT;;"}
|
@@ -46,7 +46,7 @@ function createViteConfig({
|
|
46
46
|
packageJson,
|
47
47
|
modules
|
48
48
|
}) {
|
49
|
-
const { sourceDir, outDir } = dirs;
|
49
|
+
const { sourceDir, outDir, esmOutDir, cjsOutDir } = dirs;
|
50
50
|
const entrypoints = /* @__PURE__ */ new Map();
|
51
51
|
if (packageJson.exports) {
|
52
52
|
for (const [key, value] of packageJson.exports) {
|
@@ -62,6 +62,8 @@ function createViteConfig({
|
|
62
62
|
}
|
63
63
|
const mergedEntries = new Map([...entrypoints, ...bins]);
|
64
64
|
const depsValidator = createExternalDepValidator(packageJson);
|
65
|
+
const esmRelativeOutPath = relative(outDir, esmOutDir);
|
66
|
+
const cjsRelativeOutPath = relative(outDir, cjsOutDir);
|
65
67
|
const viteConfig = defineConfig({
|
66
68
|
plugins: [
|
67
69
|
reactPlugin({ modules }),
|
@@ -89,21 +91,19 @@ function createViteConfig({
|
|
89
91
|
if (!entrypoint) {
|
90
92
|
const noExt = entryName.replace(/\.[^.]+$/, "");
|
91
93
|
if (format === "es") {
|
92
|
-
return join(
|
94
|
+
return join(esmRelativeOutPath, `${noExt}.mjs`);
|
93
95
|
} else {
|
94
|
-
return join(
|
96
|
+
return join(cjsRelativeOutPath, `${noExt}.js`);
|
95
97
|
}
|
96
98
|
}
|
97
99
|
if (format === "es") {
|
98
100
|
return join(
|
99
|
-
|
100
|
-
"esm",
|
101
|
+
esmRelativeOutPath,
|
101
102
|
relative(sourceDir, entrypoint).replace(/\.[^.]+$/, "") + ".mjs"
|
102
103
|
);
|
103
104
|
} else {
|
104
105
|
return join(
|
105
|
-
|
106
|
-
"cjs",
|
106
|
+
cjsRelativeOutPath,
|
107
107
|
relative(sourceDir, entrypoint).replace(/\.[^.]+$/, "") + ".js"
|
108
108
|
);
|
109
109
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"createViteConfig.mjs","sources":["../../../../src/createViteConfig.ts"],"sourcesContent":["import { type Dirs } from \"./resolveDirs.js\";\nimport { type PackageJson } from \"./packageJson.js\";\nimport { join, relative } from \"node:path\";\nimport { defineConfig } from \"vite\";\nimport { babelPlugin } from \"./plugins/babel/index.js\";\nimport { reactPlugin } from \"./plugins/react/index.js\";\nimport { type DetectedModules } from \"./detectModules.js\";\n\ntype CreateViteConfigParam = {\n dirs: Dirs;\n packageJson: PackageJson;\n modules: DetectedModules;\n};\n\nfunction mapToObject(map: Map<string, string>) {\n const obj: Record<string, string> = {};\n for (const [key, value] of map) {\n obj[key] = value;\n }\n return obj;\n}\n\nfunction createExternalDepValidator(packageJson: PackageJson) {\n const allExternalPackages = new Set();\n for (const key of [\n \"dependencies\",\n \"optionalDependencies\",\n \"peerDependencies\",\n ] as const) {\n for (const dep of Object.keys(packageJson[key] ?? {})) {\n allExternalPackages.add(dep);\n }\n }\n allExternalPackages.add(packageJson.name);\n\n return (id: string) => {\n if (id.startsWith(\"node:\")) {\n return true;\n }\n const segments = id.split(\"/\");\n let current = \"\";\n for (const segment of segments) {\n current += segment;\n // import {} from \"a/b/c/d\"; case\n if (allExternalPackages.has(current)) {\n return true;\n }\n current += \"/\";\n }\n return false;\n };\n}\n\nexport function createViteConfig({\n dirs,\n packageJson,\n modules,\n}: CreateViteConfigParam) {\n const { sourceDir, outDir } = dirs;\n\n const entrypoints = new Map<string, string>();\n if (packageJson.exports) {\n for (const [key, value] of packageJson.exports) {\n const entry = join(sourceDir, value);\n entrypoints.set(key, entry);\n }\n }\n\n const bins = new Map<string, string>();\n if (packageJson.bin) {\n for (const [key, value] of packageJson.bin) {\n bins.set(key, join(sourceDir, value));\n }\n }\n\n const mergedEntries = new Map([...entrypoints, ...bins]);\n\n const depsValidator = createExternalDepValidator(packageJson);\n\n const viteConfig = defineConfig({\n plugins: [\n reactPlugin({ modules }),\n babelPlugin({ packageJson, dirs, modules }),\n ],\n publicDir: false,\n root: sourceDir,\n logLevel: \"silent\",\n build: {\n outDir,\n write: true,\n minify: false,\n emptyOutDir: false,\n sourcemap: true,\n assetsInlineLimit: 0,\n terserOptions: {\n compress: false,\n mangle: false,\n },\n lib: {\n entry: mapToObject(mergedEntries),\n formats: [\"es\", \"cjs\"],\n fileName: (format, entryName) => {\n const entrypoint = mergedEntries.get(entryName);\n if (!entrypoint) {\n const noExt = entryName.replace(/\\.[^.]+$/, \"\");\n if (format === \"es\") {\n return join(
|
1
|
+
{"version":3,"file":"createViteConfig.mjs","sources":["../../../../src/createViteConfig.ts"],"sourcesContent":["import { type Dirs } from \"./resolveDirs.js\";\nimport { type PackageJson } from \"./packageJson.js\";\nimport { join, relative } from \"node:path\";\nimport { defineConfig } from \"vite\";\nimport { babelPlugin } from \"./plugins/babel/index.js\";\nimport { reactPlugin } from \"./plugins/react/index.js\";\nimport { type DetectedModules } from \"./detectModules.js\";\n\ntype CreateViteConfigParam = {\n dirs: Dirs;\n packageJson: PackageJson;\n modules: DetectedModules;\n};\n\nfunction mapToObject(map: Map<string, string>) {\n const obj: Record<string, string> = {};\n for (const [key, value] of map) {\n obj[key] = value;\n }\n return obj;\n}\n\nfunction createExternalDepValidator(packageJson: PackageJson) {\n const allExternalPackages = new Set();\n for (const key of [\n \"dependencies\",\n \"optionalDependencies\",\n \"peerDependencies\",\n ] as const) {\n for (const dep of Object.keys(packageJson[key] ?? {})) {\n allExternalPackages.add(dep);\n }\n }\n allExternalPackages.add(packageJson.name);\n\n return (id: string) => {\n if (id.startsWith(\"node:\")) {\n return true;\n }\n const segments = id.split(\"/\");\n let current = \"\";\n for (const segment of segments) {\n current += segment;\n // import {} from \"a/b/c/d\"; case\n if (allExternalPackages.has(current)) {\n return true;\n }\n current += \"/\";\n }\n return false;\n };\n}\n\nexport function createViteConfig({\n dirs,\n packageJson,\n modules,\n}: CreateViteConfigParam) {\n const { sourceDir, outDir, esmOutDir, cjsOutDir } = dirs;\n\n const entrypoints = new Map<string, string>();\n if (packageJson.exports) {\n for (const [key, value] of packageJson.exports) {\n const entry = join(sourceDir, value);\n entrypoints.set(key, entry);\n }\n }\n\n const bins = new Map<string, string>();\n if (packageJson.bin) {\n for (const [key, value] of packageJson.bin) {\n bins.set(key, join(sourceDir, value));\n }\n }\n\n const mergedEntries = new Map([...entrypoints, ...bins]);\n\n const depsValidator = createExternalDepValidator(packageJson);\n\n const esmRelativeOutPath = relative(outDir, esmOutDir);\n const cjsRelativeOutPath = relative(outDir, cjsOutDir);\n const viteConfig = defineConfig({\n plugins: [\n reactPlugin({ modules }),\n babelPlugin({ packageJson, dirs, modules }),\n ],\n publicDir: false,\n root: sourceDir,\n logLevel: \"silent\",\n build: {\n outDir,\n write: true,\n minify: false,\n emptyOutDir: false,\n sourcemap: true,\n assetsInlineLimit: 0,\n terserOptions: {\n compress: false,\n mangle: false,\n },\n lib: {\n entry: mapToObject(mergedEntries),\n formats: [\"es\", \"cjs\"],\n fileName: (format, entryName) => {\n const entrypoint = mergedEntries.get(entryName);\n if (!entrypoint) {\n const noExt = entryName.replace(/\\.[^.]+$/, \"\");\n if (format === \"es\") {\n return join(esmRelativeOutPath, `${noExt}.mjs`);\n } else {\n return join(cjsRelativeOutPath, `${noExt}.js`);\n }\n }\n\n if (format === \"es\") {\n return join(\n esmRelativeOutPath,\n relative(sourceDir, entrypoint).replace(/\\.[^.]+$/, \"\") + \".mjs\",\n );\n } else {\n return join(\n cjsRelativeOutPath,\n relative(sourceDir, entrypoint).replace(/\\.[^.]+$/, \"\") + \".js\",\n );\n }\n },\n },\n rollupOptions: {\n external: depsValidator,\n output: {\n preserveModulesRoot: sourceDir,\n exports: \"named\",\n preserveModules: true,\n },\n },\n },\n });\n\n return { viteConfig, entrypoints, bins };\n}\n"],"names":[],"mappings":"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"}
|
@@ -54,20 +54,20 @@ async function run(args) {
|
|
54
54
|
const tasksRes = await runSettled(args, [
|
55
55
|
copyStaticFilesTask(sourceDir, outDir),
|
56
56
|
buildTypesTask({
|
57
|
-
|
58
|
-
outDir,
|
57
|
+
dirs,
|
59
58
|
packageJson,
|
60
59
|
entrypoints,
|
61
60
|
modules
|
62
|
-
}).then((
|
63
|
-
for (const [
|
64
|
-
setExports(exportsMap,
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
61
|
+
}).then(({ entrypointToEsDtsMap, entrypointToCjsDtsMap }) => {
|
62
|
+
for (const [entrypoint, dts] of entrypointToEsDtsMap) {
|
63
|
+
setExports(exportsMap, entrypoint, (entry) => {
|
64
|
+
entry.dmts = "./" + relative(outDir, dts);
|
65
|
+
return entry;
|
66
|
+
});
|
67
|
+
}
|
68
|
+
for (const [entrypoint, dts] of entrypointToCjsDtsMap) {
|
69
|
+
setExports(exportsMap, entrypoint, (entry) => {
|
70
|
+
entry.dcts = "./" + relative(outDir, dts);
|
71
71
|
return entry;
|
72
72
|
});
|
73
73
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../src/index.ts"],"sourcesContent":["import { relative } from \"node:path\";\nimport { mkdir, rm } from \"node:fs/promises\";\nimport { parsePackageJson } from \"./packageJson.js\";\nimport { type ExportsObject, writePackageJson } from \"./writePackageJson.js\";\nimport { resolveDirs } from \"./resolveDirs.js\";\nimport { createViteConfig } from \"./createViteConfig.js\";\nimport { copyStaticFilesTask } from \"./tasks/copyStaticFilesTask.js\";\nimport { buildTypesTask } from \"./tasks/buildTypesTask/buildTypesTask.js\";\nimport { BuildError } from \"./error.js\";\nimport { jsFilesTask } from \"./tasks/jsFilesTask.js\";\nimport { binsTask } from \"./tasks/binsTask.js\";\nimport { detectModules } from \"./detectModules.js\";\nimport { disableLog, lineLog, log, okLog } from \"./log.js\";\nimport { runSettled } from \"./pipeline.js\";\nimport { type Args } from \"./args.js\";\nimport { viteTask } from \"./tasks/viteTask.js\";\nimport { promiseSettledResultErrors } from \"./promiseSettledResultErrors.js\";\n\nfunction setExports(\n exportsMap: Map<string, ExportsObject>,\n exportName: string,\n mapFn: (entry: ExportsObject) => ExportsObject,\n) {\n const entry = exportsMap.get(exportName) ?? ({} as ExportsObject);\n exportsMap.set(exportName, mapFn(entry));\n}\n\nexport async function defineViteConfig(args: Args = {}) {\n disableLog();\n const dirs = resolveDirs(args);\n const { sourceDir, outDir, packagePath } = dirs;\n\n await rm(outDir, { recursive: true, force: true });\n await mkdir(outDir, { recursive: true });\n const packageJson = await parsePackageJson({ sourceDir, packagePath });\n\n if (Array.isArray(packageJson)) {\n console.error(packageJson);\n throw new Error(\"Failed to parse package.json\");\n }\n\n const modules = await detectModules(packageJson);\n const { viteConfig } = createViteConfig({ dirs, packageJson, modules });\n\n return viteConfig;\n}\n\ntype RunResult =\n | {\n error: false;\n }\n | {\n error: true;\n errors: Array<string>;\n };\n\nexport async function run(args: Args): Promise<RunResult> {\n const dirs = resolveDirs(args);\n const { sourceDir, outDir, packagePath, outBinsDir } = dirs;\n\n await rm(outDir, { recursive: true, force: true });\n await mkdir(outDir, { recursive: true });\n const packageJson = await parsePackageJson({ sourceDir, packagePath });\n\n if (Array.isArray(packageJson)) {\n return { error: true, errors: packageJson };\n }\n\n const modules = await detectModules(packageJson);\n const { viteConfig, entrypoints, bins } = createViteConfig({\n dirs,\n packageJson,\n modules,\n });\n\n const exportsMap = new Map<string, ExportsObject>();\n const binsMap = new Map<string, string>();\n\n const tasksRes = await runSettled(args, [\n copyStaticFilesTask(sourceDir, outDir),\n buildTypesTask({\n
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../src/index.ts"],"sourcesContent":["import { relative } from \"node:path\";\nimport { mkdir, rm } from \"node:fs/promises\";\nimport { parsePackageJson } from \"./packageJson.js\";\nimport { type ExportsObject, writePackageJson } from \"./writePackageJson.js\";\nimport { resolveDirs } from \"./resolveDirs.js\";\nimport { createViteConfig } from \"./createViteConfig.js\";\nimport { copyStaticFilesTask } from \"./tasks/copyStaticFilesTask.js\";\nimport { buildTypesTask } from \"./tasks/buildTypesTask/buildTypesTask.js\";\nimport { BuildError } from \"./error.js\";\nimport { jsFilesTask } from \"./tasks/jsFilesTask.js\";\nimport { binsTask } from \"./tasks/binsTask.js\";\nimport { detectModules } from \"./detectModules.js\";\nimport { disableLog, lineLog, log, okLog } from \"./log.js\";\nimport { runSettled } from \"./pipeline.js\";\nimport { type Args } from \"./args.js\";\nimport { viteTask } from \"./tasks/viteTask.js\";\nimport { promiseSettledResultErrors } from \"./promiseSettledResultErrors.js\";\n\nfunction setExports(\n exportsMap: Map<string, ExportsObject>,\n exportName: string,\n mapFn: (entry: ExportsObject) => ExportsObject,\n) {\n const entry = exportsMap.get(exportName) ?? ({} as ExportsObject);\n exportsMap.set(exportName, mapFn(entry));\n}\n\nexport async function defineViteConfig(args: Args = {}) {\n disableLog();\n const dirs = resolveDirs(args);\n const { sourceDir, outDir, packagePath } = dirs;\n\n await rm(outDir, { recursive: true, force: true });\n await mkdir(outDir, { recursive: true });\n const packageJson = await parsePackageJson({ sourceDir, packagePath });\n\n if (Array.isArray(packageJson)) {\n console.error(packageJson);\n throw new Error(\"Failed to parse package.json\");\n }\n\n const modules = await detectModules(packageJson);\n const { viteConfig } = createViteConfig({ dirs, packageJson, modules });\n\n return viteConfig;\n}\n\ntype RunResult =\n | {\n error: false;\n }\n | {\n error: true;\n errors: Array<string>;\n };\n\nexport async function run(args: Args): Promise<RunResult> {\n const dirs = resolveDirs(args);\n const { sourceDir, outDir, packagePath, outBinsDir } = dirs;\n\n await rm(outDir, { recursive: true, force: true });\n await mkdir(outDir, { recursive: true });\n const packageJson = await parsePackageJson({ sourceDir, packagePath });\n\n if (Array.isArray(packageJson)) {\n return { error: true, errors: packageJson };\n }\n\n const modules = await detectModules(packageJson);\n const { viteConfig, entrypoints, bins } = createViteConfig({\n dirs,\n packageJson,\n modules,\n });\n\n const exportsMap = new Map<string, ExportsObject>();\n const binsMap = new Map<string, string>();\n\n const tasksRes = await runSettled(args, [\n copyStaticFilesTask(sourceDir, outDir),\n buildTypesTask({\n dirs,\n packageJson,\n entrypoints,\n modules,\n }).then(({ entrypointToEsDtsMap, entrypointToCjsDtsMap }) => {\n for (const [entrypoint, dts] of entrypointToEsDtsMap) {\n setExports(exportsMap, entrypoint, (entry) => {\n entry.dmts = \"./\" + relative(outDir, dts);\n return entry;\n });\n }\n\n for (const [entrypoint, dts] of entrypointToCjsDtsMap) {\n setExports(exportsMap, entrypoint, (entry) => {\n entry.dcts = \"./\" + relative(outDir, dts);\n return entry;\n });\n }\n }),\n viteTask({ viteConfig }).then((viteOutput) =>\n runSettled(args, [\n jsFilesTask({ buildOutput: viteOutput, entrypoints, outDir }).then(\n (res) => {\n for (const [filePath, name] of res) {\n setExports(exportsMap, name, (entry) => {\n const format = filePath.endsWith(\".js\") ? \"cjs\" : \"es\";\n if (format === \"es\") {\n entry.mjs = \"./\" + filePath;\n } else if (format === \"cjs\") {\n entry.cjs = \"./\" + filePath;\n }\n return entry;\n });\n }\n },\n ),\n binsTask({ outBinsDir, bins, buildOutput: viteOutput, outDir }).then(\n (res) => {\n for (const [value, key] of res) {\n binsMap.set(key, value);\n }\n },\n ),\n ]),\n ),\n ]);\n\n const errors = promiseSettledResultErrors(tasksRes).map((res) => {\n if (res instanceof BuildError) {\n return res.error;\n }\n\n return res.message;\n });\n\n if (errors.length > 0) {\n return { error: true, errors };\n }\n\n await writePackageJson(outDir, packageJson, {\n exportsMap,\n binsMap,\n });\n\n lineLog();\n log(`Build finished: ./${relative(sourceDir, outDir)}`);\n return { error: false };\n}\n"],"names":[],"mappings":"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"}
|
@@ -13,8 +13,10 @@ function resolveDirs(args) {
|
|
13
13
|
args.packagePath ?? "./package.json"
|
14
14
|
);
|
15
15
|
const outDir = myResolve(process.cwd(), args.outputDir ?? "./dist");
|
16
|
+
const esmOutDir = myResolve(outDir, "__compiled__/esm");
|
17
|
+
const cjsOutDir = myResolve(outDir, "__compiled__/cjs");
|
16
18
|
const outBinsDir = myResolve(outDir, "__bin__");
|
17
|
-
return { sourceDir, packagePath, outDir, outBinsDir };
|
19
|
+
return { sourceDir, packagePath, outDir, outBinsDir, cjsOutDir, esmOutDir };
|
18
20
|
}
|
19
21
|
export {
|
20
22
|
resolveDirs
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"resolveDirs.mjs","sources":["../../../../src/resolveDirs.ts"],"sourcesContent":["import { isAbsolute, join } from \"node:path\";\nimport { type Args } from \"./args.js\";\n\nfunction myResolve(path1: string, path2: string) {\n if (isAbsolute(path2)) {\n return path2;\n }\n\n return join(path1, path2);\n}\n\nexport function resolveDirs(args: Args) {\n const sourceDir = myResolve(process.cwd(), args.sourceDir ?? \".\");\n const packagePath = myResolve(\n sourceDir,\n args.packagePath ?? \"./package.json\",\n );\n const outDir = myResolve(process.cwd(), args.outputDir ?? \"./dist\");\n const outBinsDir = myResolve(outDir, \"__bin__\");\n\n return { sourceDir, packagePath, outDir, outBinsDir };\n}\n\nexport type Dirs = ReturnType<typeof resolveDirs>;\n"],"names":[],"mappings":";;AAGA,SAAS,UAAU,OAAe,OAAe;AAC3C,MAAA,WAAW,KAAK,GAAG;AACd,WAAA;AAAA,EAAA;AAGF,SAAA,KAAK,OAAO,KAAK;AAC1B;AAEO,SAAS,YAAY,MAAY;AACtC,QAAM,YAAY,UAAU,QAAQ,OAAO,KAAK,aAAa,GAAG;AAChE,QAAM,cAAc;AAAA,IAClB;AAAA,IACA,KAAK,eAAe;AAAA,EACtB;AACA,QAAM,SAAS,UAAU,QAAQ,OAAO,KAAK,aAAa,QAAQ;AAC5D,QAAA,aAAa,UAAU,QAAQ,SAAS;AAE9C,SAAO,EAAE,WAAW,aAAa,QAAQ,WAAW;
|
1
|
+
{"version":3,"file":"resolveDirs.mjs","sources":["../../../../src/resolveDirs.ts"],"sourcesContent":["import { isAbsolute, join } from \"node:path\";\nimport { type Args } from \"./args.js\";\n\nfunction myResolve(path1: string, path2: string) {\n if (isAbsolute(path2)) {\n return path2;\n }\n\n return join(path1, path2);\n}\n\nexport function resolveDirs(args: Args) {\n const sourceDir = myResolve(process.cwd(), args.sourceDir ?? \".\");\n const packagePath = myResolve(\n sourceDir,\n args.packagePath ?? \"./package.json\",\n );\n const outDir = myResolve(process.cwd(), args.outputDir ?? \"./dist\");\n const esmOutDir = myResolve(outDir, \"__compiled__/esm\");\n const cjsOutDir = myResolve(outDir, \"__compiled__/cjs\");\n const outBinsDir = myResolve(outDir, \"__bin__\");\n\n return { sourceDir, packagePath, outDir, outBinsDir, cjsOutDir, esmOutDir };\n}\n\nexport type Dirs = ReturnType<typeof resolveDirs>;\n"],"names":[],"mappings":";;AAGA,SAAS,UAAU,OAAe,OAAe;AAC3C,MAAA,WAAW,KAAK,GAAG;AACd,WAAA;AAAA,EAAA;AAGF,SAAA,KAAK,OAAO,KAAK;AAC1B;AAEO,SAAS,YAAY,MAAY;AACtC,QAAM,YAAY,UAAU,QAAQ,OAAO,KAAK,aAAa,GAAG;AAChE,QAAM,cAAc;AAAA,IAClB;AAAA,IACA,KAAK,eAAe;AAAA,EACtB;AACA,QAAM,SAAS,UAAU,QAAQ,OAAO,KAAK,aAAa,QAAQ;AAC5D,QAAA,YAAY,UAAU,QAAQ,kBAAkB;AAChD,QAAA,YAAY,UAAU,QAAQ,kBAAkB;AAChD,QAAA,aAAa,UAAU,QAAQ,SAAS;AAE9C,SAAO,EAAE,WAAW,aAAa,QAAQ,YAAY,WAAW,UAAU;AAC5E;"}
|
@@ -1,11 +1,14 @@
|
|
1
1
|
import type { DetectedModules } from "../../detectModules.js";
|
2
2
|
import { type PackageJson } from "../../packageJson.js";
|
3
|
+
import { type Dirs } from "../../resolveDirs.js";
|
3
4
|
type BuildTypesTaskOption = {
|
4
5
|
entrypoints: Map<string, string>;
|
5
|
-
|
6
|
-
outDir: string;
|
6
|
+
dirs: Dirs;
|
7
7
|
modules: DetectedModules;
|
8
8
|
packageJson: PackageJson;
|
9
9
|
};
|
10
|
-
export declare function buildTypesTask({ entrypoints,
|
10
|
+
export declare function buildTypesTask({ entrypoints, dirs, packageJson, modules, }: BuildTypesTaskOption): Promise<{
|
11
|
+
entrypointToEsDtsMap: Map<string, string>;
|
12
|
+
entrypointToCjsDtsMap: Map<string, string>;
|
13
|
+
}>;
|
11
14
|
export {};
|
@@ -4,39 +4,48 @@ import { okLog } from "../../log.mjs";
|
|
4
4
|
import "node:fs/promises";
|
5
5
|
import "zod";
|
6
6
|
import "node:path";
|
7
|
+
import "../../args.mjs";
|
7
8
|
async function buildTypesTask({
|
8
9
|
entrypoints,
|
9
|
-
|
10
|
-
outDir,
|
10
|
+
dirs,
|
11
11
|
packageJson,
|
12
12
|
modules
|
13
13
|
}) {
|
14
|
-
const
|
14
|
+
const { outDir } = dirs;
|
15
15
|
const tsEntrypoints = [...entrypoints.values()].filter(
|
16
16
|
(entry) => entry.endsWith(".ts")
|
17
17
|
);
|
18
|
+
const reversedEntrypoints = reverseMap(entrypoints);
|
19
|
+
const entrypointToEsDtsMap = /* @__PURE__ */ new Map();
|
20
|
+
const entrypointToCjsDtsMap = /* @__PURE__ */ new Map();
|
18
21
|
if (tsEntrypoints.length === 0 || modules.ts == null) {
|
19
|
-
return
|
22
|
+
return { entrypointToEsDtsMap, entrypointToCjsDtsMap };
|
20
23
|
}
|
21
24
|
const dtsMap = await callTypescript({
|
22
25
|
ts: modules.ts,
|
23
|
-
|
26
|
+
dirs,
|
24
27
|
packageJson,
|
25
|
-
|
28
|
+
tsEntrypoints,
|
26
29
|
outDir
|
27
30
|
});
|
28
|
-
const
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
31
|
+
for (const [source, dts] of dtsMap.sourceToEsmDtsMap) {
|
32
|
+
const entrypoints2 = reversedEntrypoints.get(source);
|
33
|
+
if (entrypoints2) {
|
34
|
+
for (const entrypoint of entrypoints2) {
|
35
|
+
entrypointToEsDtsMap.set(entrypoint, dts);
|
36
|
+
}
|
33
37
|
}
|
34
|
-
|
35
|
-
|
38
|
+
}
|
39
|
+
for (const [source, dts] of dtsMap.sourceToCjsDtsMap) {
|
40
|
+
const entrypoints2 = reversedEntrypoints.get(source);
|
41
|
+
if (entrypoints2) {
|
42
|
+
for (const entrypoint of entrypoints2) {
|
43
|
+
entrypointToCjsDtsMap.set(entrypoint, dts);
|
44
|
+
}
|
36
45
|
}
|
37
46
|
}
|
38
47
|
okLog(".d.ts");
|
39
|
-
return
|
48
|
+
return { entrypointToEsDtsMap, entrypointToCjsDtsMap };
|
40
49
|
}
|
41
50
|
export {
|
42
51
|
buildTypesTask
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"buildTypesTask.mjs","sources":["../../../../../../src/tasks/buildTypesTask/buildTypesTask.ts"],"sourcesContent":["import { callTypescript } from \"./callTypescript.js\";\nimport { reverseMap } from \"../utils.js\";\nimport { okLog } from \"../../log.js\";\nimport type { DetectedModules } from \"../../detectModules.js\";\nimport { type PackageJson } from \"../../packageJson.js\";\n\ntype BuildTypesTaskOption = {\n entrypoints: Map<string, string>;\n
|
1
|
+
{"version":3,"file":"buildTypesTask.mjs","sources":["../../../../../../src/tasks/buildTypesTask/buildTypesTask.ts"],"sourcesContent":["import { callTypescript } from \"./callTypescript.js\";\nimport { reverseMap } from \"../utils.js\";\nimport { okLog } from \"../../log.js\";\nimport type { DetectedModules } from \"../../detectModules.js\";\nimport { type PackageJson } from \"../../packageJson.js\";\nimport { type Dirs } from \"../../resolveDirs.js\";\n\ntype BuildTypesTaskOption = {\n entrypoints: Map<string, string>;\n dirs: Dirs;\n modules: DetectedModules;\n packageJson: PackageJson;\n};\n\nexport async function buildTypesTask({\n entrypoints,\n dirs,\n packageJson,\n modules,\n}: BuildTypesTaskOption) {\n const { outDir } = dirs;\n const tsEntrypoints = [...entrypoints.values()].filter((entry) =>\n entry.endsWith(\".ts\"),\n );\n const reversedEntrypoints = reverseMap(entrypoints);\n\n const entrypointToEsDtsMap = new Map<string, string>();\n const entrypointToCjsDtsMap = new Map<string, string>();\n if (tsEntrypoints.length === 0 || modules.ts == null) {\n return { entrypointToEsDtsMap, entrypointToCjsDtsMap };\n }\n\n const dtsMap = await callTypescript({\n ts: modules.ts,\n dirs,\n packageJson,\n tsEntrypoints,\n outDir,\n });\n\n for (const [source, dts] of dtsMap.sourceToEsmDtsMap) {\n const entrypoints = reversedEntrypoints.get(source);\n if (entrypoints) {\n for (const entrypoint of entrypoints) {\n entrypointToEsDtsMap.set(entrypoint, dts);\n }\n }\n }\n\n for (const [source, dts] of dtsMap.sourceToCjsDtsMap) {\n const entrypoints = reversedEntrypoints.get(source);\n if (entrypoints) {\n for (const entrypoint of entrypoints) {\n entrypointToCjsDtsMap.set(entrypoint, dts);\n }\n }\n }\n\n okLog(\".d.ts\");\n\n return { entrypointToEsDtsMap, entrypointToCjsDtsMap };\n}\n"],"names":["entrypoints"],"mappings":";;;;;;;AAcA,eAAsB,eAAe;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAyB;AACjB,QAAA,EAAE,WAAW;AACnB,QAAM,gBAAgB,CAAC,GAAG,YAAY,OAAA,CAAQ,EAAE;AAAA,IAAO,CAAC,UACtD,MAAM,SAAS,KAAK;AAAA,EACtB;AACM,QAAA,sBAAsB,WAAW,WAAW;AAE5C,QAAA,2CAA2B,IAAoB;AAC/C,QAAA,4CAA4B,IAAoB;AACtD,MAAI,cAAc,WAAW,KAAK,QAAQ,MAAM,MAAM;AAC7C,WAAA,EAAE,sBAAsB,sBAAsB;AAAA,EAAA;AAGjD,QAAA,SAAS,MAAM,eAAe;AAAA,IAClC,IAAI,QAAQ;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,CACD;AAED,aAAW,CAAC,QAAQ,GAAG,KAAK,OAAO,mBAAmB;AAC9CA,UAAAA,eAAc,oBAAoB,IAAI,MAAM;AAClD,QAAIA,cAAa;AACf,iBAAW,cAAcA,cAAa;AACf,6BAAA,IAAI,YAAY,GAAG;AAAA,MAAA;AAAA,IAC1C;AAAA,EACF;AAGF,aAAW,CAAC,QAAQ,GAAG,KAAK,OAAO,mBAAmB;AAC9CA,UAAAA,eAAc,oBAAoB,IAAI,MAAM;AAClD,QAAIA,cAAa;AACf,iBAAW,cAAcA,cAAa;AACd,8BAAA,IAAI,YAAY,GAAG;AAAA,MAAA;AAAA,IAC3C;AAAA,EACF;AAGF,QAAM,OAAO;AAEN,SAAA,EAAE,sBAAsB,sBAAsB;AACvD;"}
|
@@ -1,10 +1,14 @@
|
|
1
1
|
import { type PackageJson } from "../../packageJson.js";
|
2
|
+
import { type Dirs } from "../../resolveDirs.js";
|
2
3
|
type BuildTypesOptions = {
|
3
4
|
ts: typeof import("typescript");
|
4
|
-
|
5
|
+
dirs: Dirs;
|
5
6
|
packageJson: PackageJson;
|
6
|
-
|
7
|
+
tsEntrypoints: string[];
|
7
8
|
outDir: string;
|
8
9
|
};
|
9
|
-
export declare function callTypescript({ ts,
|
10
|
+
export declare function callTypescript({ ts, dirs, tsEntrypoints, packageJson, }: BuildTypesOptions): Promise<{
|
11
|
+
sourceToCjsDtsMap: Map<string, string>;
|
12
|
+
sourceToEsmDtsMap: Map<string, string>;
|
13
|
+
}>;
|
10
14
|
export {};
|