rsbuild-plugin-dts 0.0.6 → 0.0.7
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/apiExtractor.js +9 -14
- package/dist/dts.js +13 -20
- package/dist/index.js +5 -9
- package/dist/tsc.js +25 -29
- package/dist/utils.js +21 -30
- package/package.json +4 -4
package/dist/apiExtractor.js
CHANGED
|
@@ -3,11 +3,6 @@ import * as __WEBPACK_EXTERNAL_MODULE__microsoft_api_extractor__ from "@microsof
|
|
|
3
3
|
import * as __WEBPACK_EXTERNAL_MODULE__rsbuild_core__ from "@rsbuild/core";
|
|
4
4
|
import * as __WEBPACK_EXTERNAL_MODULE_picocolors__ from "picocolors";
|
|
5
5
|
import * as __WEBPACK_EXTERNAL_MODULE__utils_js__ from "./utils.js";
|
|
6
|
-
const external_node_path_namespaceObject = __WEBPACK_EXTERNAL_MODULE_node_path__;
|
|
7
|
-
const api_extractor_namespaceObject = __WEBPACK_EXTERNAL_MODULE__microsoft_api_extractor__;
|
|
8
|
-
const core_namespaceObject = __WEBPACK_EXTERNAL_MODULE__rsbuild_core__;
|
|
9
|
-
const external_picocolors_namespaceObject = __WEBPACK_EXTERNAL_MODULE_picocolors__;
|
|
10
|
-
const external_utils_js_namespaceObject = __WEBPACK_EXTERNAL_MODULE__utils_js__;
|
|
11
6
|
async function bundleDts(options) {
|
|
12
7
|
const { name, cwd, outDir, dtsExtension, banner, footer, dtsEntry = {
|
|
13
8
|
name: 'index',
|
|
@@ -15,7 +10,7 @@ async function bundleDts(options) {
|
|
|
15
10
|
}, tsconfigPath = 'tsconfig.json', bundledPackages = [] } = options;
|
|
16
11
|
try {
|
|
17
12
|
const start = Date.now();
|
|
18
|
-
const untrimmedFilePath = (0,
|
|
13
|
+
const untrimmedFilePath = (0, __WEBPACK_EXTERNAL_MODULE_node_path__.join)(cwd, (0, __WEBPACK_EXTERNAL_MODULE_node_path__.relative)(cwd, outDir), `${dtsEntry.name}${dtsExtension}`);
|
|
19
14
|
const mainEntryPointFilePath = dtsEntry.path;
|
|
20
15
|
const internalConfig = {
|
|
21
16
|
mainEntryPointFilePath,
|
|
@@ -25,23 +20,23 @@ async function bundleDts(options) {
|
|
|
25
20
|
untrimmedFilePath
|
|
26
21
|
},
|
|
27
22
|
compiler: {
|
|
28
|
-
tsconfigFilePath: tsconfigPath.includes(cwd) ? tsconfigPath : (0,
|
|
23
|
+
tsconfigFilePath: tsconfigPath.includes(cwd) ? tsconfigPath : (0, __WEBPACK_EXTERNAL_MODULE_node_path__.join)(cwd, tsconfigPath)
|
|
29
24
|
},
|
|
30
25
|
projectFolder: cwd
|
|
31
26
|
};
|
|
32
|
-
const extractorConfig =
|
|
27
|
+
const extractorConfig = __WEBPACK_EXTERNAL_MODULE__microsoft_api_extractor__.ExtractorConfig.prepare({
|
|
33
28
|
configObject: internalConfig,
|
|
34
29
|
configObjectFullPath: void 0,
|
|
35
|
-
packageJsonFullPath: (0,
|
|
30
|
+
packageJsonFullPath: (0, __WEBPACK_EXTERNAL_MODULE_node_path__.join)(cwd, 'package.json')
|
|
36
31
|
});
|
|
37
|
-
const extractorResult =
|
|
32
|
+
const extractorResult = __WEBPACK_EXTERNAL_MODULE__microsoft_api_extractor__.Extractor.invoke(extractorConfig, {
|
|
38
33
|
localBuild: true
|
|
39
34
|
});
|
|
40
|
-
if (!extractorResult.succeeded) throw new Error(`API Extractor error. ${
|
|
41
|
-
await (0,
|
|
42
|
-
|
|
35
|
+
if (!extractorResult.succeeded) throw new Error(`API Extractor error. ${__WEBPACK_EXTERNAL_MODULE_picocolors__["default"].gray(`(${name})`)}`);
|
|
36
|
+
await (0, __WEBPACK_EXTERNAL_MODULE__utils_js__.addBannerAndFooter)(untrimmedFilePath, banner, footer);
|
|
37
|
+
__WEBPACK_EXTERNAL_MODULE__rsbuild_core__.logger.info(`API Extractor bundle DTS succeeded: ${__WEBPACK_EXTERNAL_MODULE_picocolors__["default"].cyan(untrimmedFilePath)} in ${(0, __WEBPACK_EXTERNAL_MODULE__utils_js__.getTimeCost)(start)} ${__WEBPACK_EXTERNAL_MODULE_picocolors__["default"].gray(`(${name})`)}`);
|
|
43
38
|
} catch (e) {
|
|
44
|
-
|
|
39
|
+
__WEBPACK_EXTERNAL_MODULE__rsbuild_core__.logger.error('API Extractor Error');
|
|
45
40
|
throw new Error(`${e}`);
|
|
46
41
|
}
|
|
47
42
|
}
|
package/dist/dts.js
CHANGED
|
@@ -5,23 +5,16 @@ import * as __WEBPACK_EXTERNAL_MODULE_picocolors__ from "picocolors";
|
|
|
5
5
|
import * as __WEBPACK_EXTERNAL_MODULE_typescript__ from "typescript";
|
|
6
6
|
import * as __WEBPACK_EXTERNAL_MODULE__tsc_js__ from "./tsc.js";
|
|
7
7
|
import * as __WEBPACK_EXTERNAL_MODULE__utils_js__ from "./utils.js";
|
|
8
|
-
const external_node_fs_namespaceObject = __WEBPACK_EXTERNAL_MODULE_node_fs__;
|
|
9
|
-
const external_node_path_namespaceObject = __WEBPACK_EXTERNAL_MODULE_node_path__;
|
|
10
|
-
const core_namespaceObject = __WEBPACK_EXTERNAL_MODULE__rsbuild_core__;
|
|
11
|
-
const external_picocolors_namespaceObject = __WEBPACK_EXTERNAL_MODULE_picocolors__;
|
|
12
|
-
const external_typescript_namespaceObject = __WEBPACK_EXTERNAL_MODULE_typescript__;
|
|
13
|
-
const external_tsc_js_namespaceObject = __WEBPACK_EXTERNAL_MODULE__tsc_js__;
|
|
14
|
-
const external_utils_js_namespaceObject = __WEBPACK_EXTERNAL_MODULE__utils_js__;
|
|
15
8
|
const isObject = (obj)=>'[object Object]' === Object.prototype.toString.call(obj);
|
|
16
9
|
// use !externals
|
|
17
10
|
const calcBundledPackages = (options)=>{
|
|
18
11
|
const { autoExternal, cwd, userExternals } = options;
|
|
19
12
|
let pkgJson;
|
|
20
13
|
try {
|
|
21
|
-
const content =
|
|
14
|
+
const content = __WEBPACK_EXTERNAL_MODULE_node_fs__["default"].readFileSync((0, __WEBPACK_EXTERNAL_MODULE_node_path__.join)(cwd, 'package.json'), 'utf-8');
|
|
22
15
|
pkgJson = JSON.parse(content);
|
|
23
16
|
} catch (err) {
|
|
24
|
-
|
|
17
|
+
__WEBPACK_EXTERNAL_MODULE__rsbuild_core__.logger.warn('The type of third-party packages will not be bundled due to read package.json failed');
|
|
25
18
|
return [];
|
|
26
19
|
}
|
|
27
20
|
const externalOptions = autoExternal ? {
|
|
@@ -63,26 +56,26 @@ const calcBundledPackages = (options)=>{
|
|
|
63
56
|
};
|
|
64
57
|
async function generateDts(data) {
|
|
65
58
|
const { bundle, distPath, dtsEntry, tsconfigPath, name, cwd, isWatch, dtsExtension = '.d.ts', autoExternal = true, userExternals, banner, footer } = data;
|
|
66
|
-
|
|
67
|
-
const configPath =
|
|
59
|
+
__WEBPACK_EXTERNAL_MODULE__rsbuild_core__.logger.start(`Generating DTS... ${__WEBPACK_EXTERNAL_MODULE_picocolors__["default"].gray(`(${name})`)}`);
|
|
60
|
+
const configPath = __WEBPACK_EXTERNAL_MODULE_typescript__["default"].findConfigFile(cwd, __WEBPACK_EXTERNAL_MODULE_typescript__["default"].sys.fileExists, tsconfigPath);
|
|
68
61
|
if (!configPath) {
|
|
69
|
-
|
|
62
|
+
__WEBPACK_EXTERNAL_MODULE__rsbuild_core__.logger.error(`tsconfig.json not found in ${cwd}`);
|
|
70
63
|
throw new Error();
|
|
71
64
|
}
|
|
72
|
-
const { options: rawCompilerOptions, fileNames } = (0,
|
|
73
|
-
const rootDir = rawCompilerOptions.rootDir ?? await (0,
|
|
65
|
+
const { options: rawCompilerOptions, fileNames } = (0, __WEBPACK_EXTERNAL_MODULE__utils_js__.loadTsconfig)(configPath);
|
|
66
|
+
const rootDir = rawCompilerOptions.rootDir ?? await (0, __WEBPACK_EXTERNAL_MODULE__utils_js__.calcLongestCommonPath)(fileNames) ?? (0, __WEBPACK_EXTERNAL_MODULE_node_path__.dirname)(configPath);
|
|
74
67
|
const outDir = distPath ? distPath : rawCompilerOptions.declarationDir || './dist';
|
|
75
68
|
const getDeclarationDir = (bundle, distPath)=>{
|
|
76
|
-
if (bundle) return (0,
|
|
69
|
+
if (bundle) return (0, __WEBPACK_EXTERNAL_MODULE__utils_js__.ensureTempDeclarationDir)(cwd);
|
|
77
70
|
return distPath ? distPath : rawCompilerOptions.declarationDir ?? './dist';
|
|
78
71
|
};
|
|
79
72
|
const declarationDir = getDeclarationDir(bundle, distPath);
|
|
80
73
|
const { name: entryName, path: entryPath } = dtsEntry;
|
|
81
74
|
let entry = '';
|
|
82
75
|
if (true === bundle && entryPath) {
|
|
83
|
-
const entrySourcePath = (0,
|
|
84
|
-
const relativePath = (0,
|
|
85
|
-
entry = (0,
|
|
76
|
+
const entrySourcePath = (0, __WEBPACK_EXTERNAL_MODULE_node_path__.isAbsolute)(entryPath) ? entryPath : (0, __WEBPACK_EXTERNAL_MODULE_node_path__.join)(cwd, entryPath);
|
|
77
|
+
const relativePath = (0, __WEBPACK_EXTERNAL_MODULE_node_path__.relative)(rootDir, (0, __WEBPACK_EXTERNAL_MODULE_node_path__.dirname)(entrySourcePath));
|
|
78
|
+
entry = (0, __WEBPACK_EXTERNAL_MODULE_node_path__.join)(declarationDir, relativePath, (0, __WEBPACK_EXTERNAL_MODULE_node_path__.basename)(entrySourcePath)).replace(/\.(js|mjs|jsx|ts|mts|tsx|cjs|cts|cjsx|ctsx|mjsx|mtsx)$/, '.d.ts');
|
|
86
79
|
}
|
|
87
80
|
const bundleDtsIfNeeded = async ()=>{
|
|
88
81
|
if (true === bundle) {
|
|
@@ -110,7 +103,7 @@ async function generateDts(data) {
|
|
|
110
103
|
const onComplete = async (isSuccess)=>{
|
|
111
104
|
if (isSuccess) await bundleDtsIfNeeded();
|
|
112
105
|
};
|
|
113
|
-
await (0,
|
|
106
|
+
await (0, __WEBPACK_EXTERNAL_MODULE__tsc_js__.emitDts)({
|
|
114
107
|
name,
|
|
115
108
|
cwd,
|
|
116
109
|
configPath,
|
|
@@ -126,7 +119,7 @@ process.on('message', async (data)=>{
|
|
|
126
119
|
try {
|
|
127
120
|
await generateDts(data);
|
|
128
121
|
} catch (e) {
|
|
129
|
-
|
|
122
|
+
__WEBPACK_EXTERNAL_MODULE__rsbuild_core__.logger.error(e);
|
|
130
123
|
process.send('error');
|
|
131
124
|
process.exit(1);
|
|
132
125
|
}
|
package/dist/index.js
CHANGED
|
@@ -4,10 +4,6 @@ import * as __WEBPACK_EXTERNAL_MODULE_node_child_process__ from "node:child_proc
|
|
|
4
4
|
import * as __WEBPACK_EXTERNAL_MODULE_node_path__ from "node:path";
|
|
5
5
|
import * as __WEBPACK_EXTERNAL_MODULE__rsbuild_core__ from "@rsbuild/core";
|
|
6
6
|
import * as __WEBPACK_EXTERNAL_MODULE__utils_js__ from "./utils.js";
|
|
7
|
-
const external_node_child_process_namespaceObject = __WEBPACK_EXTERNAL_MODULE_node_child_process__;
|
|
8
|
-
const external_node_path_namespaceObject = __WEBPACK_EXTERNAL_MODULE_node_path__;
|
|
9
|
-
const core_namespaceObject = __WEBPACK_EXTERNAL_MODULE__rsbuild_core__;
|
|
10
|
-
const external_utils_js_namespaceObject = __WEBPACK_EXTERNAL_MODULE__utils_js__;
|
|
11
7
|
var src_filename = __webpack_fileURLToPath__(import.meta.url);
|
|
12
8
|
var src_dirname = __webpack_dirname__(__webpack_fileURLToPath__(import.meta.url));
|
|
13
9
|
const PLUGIN_DTS_NAME = 'rsbuild:dts';
|
|
@@ -26,13 +22,13 @@ const pluginDts = (options)=>({
|
|
|
26
22
|
if (!isFirstCompile) return;
|
|
27
23
|
const { config } = environment;
|
|
28
24
|
options.distPath = options.distPath ?? config.output?.distPath?.root;
|
|
29
|
-
const jsExtension = (0,
|
|
30
|
-
const childProcess = (0,
|
|
25
|
+
const jsExtension = (0, __WEBPACK_EXTERNAL_MODULE_node_path__.extname)(src_filename);
|
|
26
|
+
const childProcess = (0, __WEBPACK_EXTERNAL_MODULE_node_child_process__.fork)((0, __WEBPACK_EXTERNAL_MODULE_node_path__.join)(src_dirname, `./dts${jsExtension}`), [], {
|
|
31
27
|
stdio: 'inherit'
|
|
32
28
|
});
|
|
33
29
|
// TODO: @microsoft/api-extractor only support single entry to bundle DTS
|
|
34
30
|
// use first element of Record<string, string> type entry config
|
|
35
|
-
const dtsEntry = (0,
|
|
31
|
+
const dtsEntry = (0, __WEBPACK_EXTERNAL_MODULE__utils_js__.processSourceEntry)(options.bundle, config.source?.entry);
|
|
36
32
|
const dtsGenOptions = {
|
|
37
33
|
...options,
|
|
38
34
|
dtsEntry,
|
|
@@ -64,8 +60,8 @@ const pluginDts = (options)=>({
|
|
|
64
60
|
if (!isFirstCompile) return;
|
|
65
61
|
for (const result of promisesResult)if ('error' === result.status) {
|
|
66
62
|
if (options.abortOnError) throw new Error(result.errorMessage);
|
|
67
|
-
result.errorMessage &&
|
|
68
|
-
|
|
63
|
+
result.errorMessage && __WEBPACK_EXTERNAL_MODULE__rsbuild_core__.logger.error(result.errorMessage);
|
|
64
|
+
__WEBPACK_EXTERNAL_MODULE__rsbuild_core__.logger.warn('With the `abortOnError` configuration currently turned off, type errors do not cause build failures, but they do not guarantee proper type file output.');
|
|
69
65
|
}
|
|
70
66
|
},
|
|
71
67
|
order: 'post'
|
package/dist/tsc.js
CHANGED
|
@@ -2,14 +2,10 @@ import * as __WEBPACK_EXTERNAL_MODULE__rsbuild_core__ from "@rsbuild/core";
|
|
|
2
2
|
import * as __WEBPACK_EXTERNAL_MODULE_picocolors__ from "picocolors";
|
|
3
3
|
import * as __WEBPACK_EXTERNAL_MODULE_typescript__ from "typescript";
|
|
4
4
|
import * as __WEBPACK_EXTERNAL_MODULE__utils_js__ from "./utils.js";
|
|
5
|
-
const core_namespaceObject = __WEBPACK_EXTERNAL_MODULE__rsbuild_core__;
|
|
6
|
-
const external_picocolors_namespaceObject = __WEBPACK_EXTERNAL_MODULE_picocolors__;
|
|
7
|
-
const external_typescript_namespaceObject = __WEBPACK_EXTERNAL_MODULE_typescript__;
|
|
8
|
-
const external_utils_js_namespaceObject = __WEBPACK_EXTERNAL_MODULE__utils_js__;
|
|
9
5
|
async function emitDts(options, onComplete, bundle = false, isWatch = false) {
|
|
10
6
|
const start = Date.now();
|
|
11
7
|
const { configPath, declarationDir, name, dtsExtension, banner, footer } = options;
|
|
12
|
-
const { options: rawCompilerOptions, fileNames } = (0,
|
|
8
|
+
const { options: rawCompilerOptions, fileNames } = (0, __WEBPACK_EXTERNAL_MODULE__utils_js__.loadTsconfig)(configPath);
|
|
13
9
|
const compilerOptions = {
|
|
14
10
|
...rawCompilerOptions,
|
|
15
11
|
noEmit: false,
|
|
@@ -18,58 +14,58 @@ async function emitDts(options, onComplete, bundle = false, isWatch = false) {
|
|
|
18
14
|
emitDeclarationOnly: true
|
|
19
15
|
};
|
|
20
16
|
if (isWatch) {
|
|
21
|
-
const createProgram =
|
|
17
|
+
const createProgram = __WEBPACK_EXTERNAL_MODULE_typescript__["default"].createSemanticDiagnosticsBuilderProgram;
|
|
22
18
|
const formatHost = {
|
|
23
19
|
getCanonicalFileName: (path)=>path,
|
|
24
|
-
getCurrentDirectory:
|
|
25
|
-
getNewLine: ()=>
|
|
20
|
+
getCurrentDirectory: __WEBPACK_EXTERNAL_MODULE_typescript__["default"].sys.getCurrentDirectory,
|
|
21
|
+
getNewLine: ()=>__WEBPACK_EXTERNAL_MODULE_typescript__["default"].sys.newLine
|
|
26
22
|
};
|
|
27
23
|
const reportDiagnostic = (diagnostic)=>{
|
|
28
|
-
const fileLoc = (0,
|
|
29
|
-
|
|
24
|
+
const fileLoc = (0, __WEBPACK_EXTERNAL_MODULE__utils_js__.getFileLoc)(diagnostic);
|
|
25
|
+
__WEBPACK_EXTERNAL_MODULE__rsbuild_core__.logger.error(`${fileLoc} - ${__WEBPACK_EXTERNAL_MODULE_picocolors__["default"].red('error')} ${__WEBPACK_EXTERNAL_MODULE_picocolors__["default"].gray(`TS${diagnostic.code}:`)}`, __WEBPACK_EXTERNAL_MODULE_typescript__["default"].flattenDiagnosticMessageText(diagnostic.messageText, formatHost.getNewLine()));
|
|
30
26
|
};
|
|
31
27
|
const reportWatchStatusChanged = async (diagnostic, _newLine, _options, errorCount)=>{
|
|
32
|
-
const message = `${
|
|
28
|
+
const message = `${__WEBPACK_EXTERNAL_MODULE_typescript__["default"].flattenDiagnosticMessageText(diagnostic.messageText, formatHost.getNewLine())} ${__WEBPACK_EXTERNAL_MODULE_picocolors__["default"].gray(`(${name})`)}`;
|
|
33
29
|
// 6031: File change detected. Starting incremental compilation...
|
|
34
30
|
// 6032: Starting compilation in watch mode...
|
|
35
|
-
if (6031 === diagnostic.code || 6032 === diagnostic.code)
|
|
31
|
+
if (6031 === diagnostic.code || 6032 === diagnostic.code) __WEBPACK_EXTERNAL_MODULE__rsbuild_core__.logger.info(message);
|
|
36
32
|
// 6194: 0 errors or 2+ errors!
|
|
37
33
|
if (6194 === diagnostic.code) {
|
|
38
34
|
if (0 === errorCount) {
|
|
39
|
-
|
|
35
|
+
__WEBPACK_EXTERNAL_MODULE__rsbuild_core__.logger.info(message);
|
|
40
36
|
onComplete(true);
|
|
41
|
-
} else
|
|
42
|
-
await (0,
|
|
37
|
+
} else __WEBPACK_EXTERNAL_MODULE__rsbuild_core__.logger.error(message);
|
|
38
|
+
await (0, __WEBPACK_EXTERNAL_MODULE__utils_js__.processDtsFiles)(bundle, declarationDir, dtsExtension, banner, footer);
|
|
43
39
|
}
|
|
44
40
|
// 6193: 1 error
|
|
45
41
|
if (6193 === diagnostic.code) {
|
|
46
|
-
|
|
47
|
-
await (0,
|
|
42
|
+
__WEBPACK_EXTERNAL_MODULE__rsbuild_core__.logger.error(message);
|
|
43
|
+
await (0, __WEBPACK_EXTERNAL_MODULE__utils_js__.processDtsFiles)(bundle, declarationDir, dtsExtension, banner, footer);
|
|
48
44
|
}
|
|
49
45
|
};
|
|
50
46
|
const system = {
|
|
51
|
-
...
|
|
47
|
+
...__WEBPACK_EXTERNAL_MODULE_typescript__["default"].sys
|
|
52
48
|
};
|
|
53
|
-
const host =
|
|
54
|
-
|
|
49
|
+
const host = __WEBPACK_EXTERNAL_MODULE_typescript__["default"].createWatchCompilerHost(configPath, compilerOptions, system, createProgram, reportDiagnostic, reportWatchStatusChanged);
|
|
50
|
+
__WEBPACK_EXTERNAL_MODULE_typescript__["default"].createWatchProgram(host);
|
|
55
51
|
} else {
|
|
56
|
-
const host =
|
|
57
|
-
const program =
|
|
52
|
+
const host = __WEBPACK_EXTERNAL_MODULE_typescript__["default"].createCompilerHost(compilerOptions);
|
|
53
|
+
const program = __WEBPACK_EXTERNAL_MODULE_typescript__["default"].createProgram(fileNames, compilerOptions, host);
|
|
58
54
|
const emitResult = program.emit();
|
|
59
|
-
const allDiagnostics =
|
|
55
|
+
const allDiagnostics = __WEBPACK_EXTERNAL_MODULE_typescript__["default"].getPreEmitDiagnostics(program).concat(emitResult.diagnostics);
|
|
60
56
|
const diagnosticMessages = [];
|
|
61
57
|
for (const diagnostic of allDiagnostics){
|
|
62
|
-
const fileLoc = (0,
|
|
63
|
-
const message = `${fileLoc} - ${
|
|
58
|
+
const fileLoc = (0, __WEBPACK_EXTERNAL_MODULE__utils_js__.getFileLoc)(diagnostic);
|
|
59
|
+
const message = `${fileLoc} - ${__WEBPACK_EXTERNAL_MODULE_picocolors__["default"].red('error')} ${__WEBPACK_EXTERNAL_MODULE_picocolors__["default"].gray(`TS${diagnostic.code}:`)} ${__WEBPACK_EXTERNAL_MODULE_typescript__["default"].flattenDiagnosticMessageText(diagnostic.messageText, host.getNewLine())}`;
|
|
64
60
|
diagnosticMessages.push(message);
|
|
65
61
|
}
|
|
66
|
-
await (0,
|
|
62
|
+
await (0, __WEBPACK_EXTERNAL_MODULE__utils_js__.processDtsFiles)(bundle, declarationDir, dtsExtension, banner, footer);
|
|
67
63
|
if (diagnosticMessages.length) {
|
|
68
|
-
|
|
69
|
-
for (const message of diagnosticMessages)
|
|
64
|
+
__WEBPACK_EXTERNAL_MODULE__rsbuild_core__.logger.error(`Failed to emit declaration files. ${__WEBPACK_EXTERNAL_MODULE_picocolors__["default"].gray(`(${name})`)}`);
|
|
65
|
+
for (const message of diagnosticMessages)__WEBPACK_EXTERNAL_MODULE__rsbuild_core__.logger.error(message);
|
|
70
66
|
throw new Error('DTS generation failed');
|
|
71
67
|
}
|
|
72
|
-
|
|
68
|
+
__WEBPACK_EXTERNAL_MODULE__rsbuild_core__.logger.ready(`DTS generated in ${(0, __WEBPACK_EXTERNAL_MODULE__utils_js__.getTimeCost)(start)} ${__WEBPACK_EXTERNAL_MODULE_picocolors__["default"].gray(`(${name})`)}`);
|
|
73
69
|
}
|
|
74
70
|
}
|
|
75
71
|
export { emitDts };
|
package/dist/utils.js
CHANGED
|
@@ -7,42 +7,33 @@ import * as __WEBPACK_EXTERNAL_MODULE_fast_glob__ from "fast-glob";
|
|
|
7
7
|
import * as __WEBPACK_EXTERNAL_MODULE_magic_string__ from "magic-string";
|
|
8
8
|
import * as __WEBPACK_EXTERNAL_MODULE_picocolors__ from "picocolors";
|
|
9
9
|
import * as __WEBPACK_EXTERNAL_MODULE_typescript__ from "typescript";
|
|
10
|
-
const
|
|
11
|
-
const promises_namespaceObject = __WEBPACK_EXTERNAL_MODULE_node_fs_promises__;
|
|
12
|
-
const external_node_os_namespaceObject = __WEBPACK_EXTERNAL_MODULE_node_os__;
|
|
13
|
-
const external_node_path_namespaceObject = __WEBPACK_EXTERNAL_MODULE_node_path__;
|
|
14
|
-
const core_namespaceObject = __WEBPACK_EXTERNAL_MODULE__rsbuild_core__;
|
|
15
|
-
const external_fast_glob_namespaceObject = __WEBPACK_EXTERNAL_MODULE_fast_glob__;
|
|
16
|
-
const external_magic_string_namespaceObject = __WEBPACK_EXTERNAL_MODULE_magic_string__;
|
|
17
|
-
const external_picocolors_namespaceObject = __WEBPACK_EXTERNAL_MODULE_picocolors__;
|
|
18
|
-
const external_typescript_namespaceObject = __WEBPACK_EXTERNAL_MODULE_typescript__;
|
|
19
|
-
const { convertPathToPattern } = external_fast_glob_namespaceObject["default"];
|
|
10
|
+
const { convertPathToPattern } = __WEBPACK_EXTERNAL_MODULE_fast_glob__["default"];
|
|
20
11
|
function loadTsconfig(tsconfigPath) {
|
|
21
|
-
const configFile =
|
|
22
|
-
const configFileContent =
|
|
12
|
+
const configFile = __WEBPACK_EXTERNAL_MODULE_typescript__["default"].readConfigFile(tsconfigPath, __WEBPACK_EXTERNAL_MODULE_typescript__["default"].sys.readFile);
|
|
13
|
+
const configFileContent = __WEBPACK_EXTERNAL_MODULE_typescript__["default"].parseJsonConfigFileContent(configFile.config, __WEBPACK_EXTERNAL_MODULE_typescript__["default"].sys, __WEBPACK_EXTERNAL_MODULE_node_path__["default"].dirname(tsconfigPath));
|
|
23
14
|
return configFileContent;
|
|
24
15
|
}
|
|
25
16
|
const TEMP_FOLDER = '.rslib';
|
|
26
17
|
const TEMP_DTS_DIR = `${TEMP_FOLDER}/declarations`;
|
|
27
18
|
function ensureTempDeclarationDir(cwd) {
|
|
28
|
-
const dirPath =
|
|
29
|
-
if (
|
|
30
|
-
|
|
19
|
+
const dirPath = __WEBPACK_EXTERNAL_MODULE_node_path__["default"].join(cwd, TEMP_DTS_DIR);
|
|
20
|
+
if (__WEBPACK_EXTERNAL_MODULE_node_fs__["default"].existsSync(dirPath)) return dirPath;
|
|
21
|
+
__WEBPACK_EXTERNAL_MODULE_node_fs__["default"].mkdirSync(dirPath, {
|
|
31
22
|
recursive: true
|
|
32
23
|
});
|
|
33
|
-
const gitIgnorePath =
|
|
34
|
-
|
|
24
|
+
const gitIgnorePath = __WEBPACK_EXTERNAL_MODULE_node_path__["default"].join(cwd, TEMP_FOLDER, '.gitignore');
|
|
25
|
+
__WEBPACK_EXTERNAL_MODULE_node_fs__["default"].writeFileSync(gitIgnorePath, '**/*\n');
|
|
35
26
|
return dirPath;
|
|
36
27
|
}
|
|
37
28
|
function getFileLoc(diagnostic) {
|
|
38
29
|
if (diagnostic.file) {
|
|
39
|
-
const { line, character } =
|
|
40
|
-
return `${
|
|
30
|
+
const { line, character } = __WEBPACK_EXTERNAL_MODULE_typescript__["default"].getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start);
|
|
31
|
+
return `${__WEBPACK_EXTERNAL_MODULE_picocolors__["default"].cyan(diagnostic.file.fileName)}:${__WEBPACK_EXTERNAL_MODULE_picocolors__["default"].yellow(line + 1)}:${__WEBPACK_EXTERNAL_MODULE_picocolors__["default"].yellow(character + 1)}`;
|
|
41
32
|
}
|
|
42
33
|
return '';
|
|
43
34
|
}
|
|
44
35
|
const prettyTime = (seconds)=>{
|
|
45
|
-
const format = (time)=>
|
|
36
|
+
const format = (time)=>__WEBPACK_EXTERNAL_MODULE_picocolors__["default"].bold(time);
|
|
46
37
|
if (seconds < 10) {
|
|
47
38
|
const digits = seconds >= 0.01 ? 2 : 3;
|
|
48
39
|
return `${format(seconds.toFixed(digits))} s`;
|
|
@@ -54,7 +45,7 @@ const prettyTime = (seconds)=>{
|
|
|
54
45
|
// fast-glob only accepts posix path
|
|
55
46
|
// https://github.com/mrmlnc/fast-glob#convertpathtopatternpath
|
|
56
47
|
const convertPath = (path)=>{
|
|
57
|
-
if ('win32' === (0,
|
|
48
|
+
if ('win32' === (0, __WEBPACK_EXTERNAL_MODULE_node_os__.platform)()) return convertPathToPattern(path);
|
|
58
49
|
return path;
|
|
59
50
|
};
|
|
60
51
|
function getTimeCost(start) {
|
|
@@ -63,21 +54,21 @@ function getTimeCost(start) {
|
|
|
63
54
|
}
|
|
64
55
|
async function addBannerAndFooter(file, banner, footer) {
|
|
65
56
|
if (!banner && !footer) return;
|
|
66
|
-
const content = await
|
|
67
|
-
const code = new
|
|
57
|
+
const content = await __WEBPACK_EXTERNAL_MODULE_node_fs_promises__["default"].readFile(file, 'utf-8');
|
|
58
|
+
const code = new __WEBPACK_EXTERNAL_MODULE_magic_string__["default"](content);
|
|
68
59
|
banner && code.prepend(`${banner}\n`);
|
|
69
60
|
footer && code.append(`\n${footer}\n`);
|
|
70
|
-
await
|
|
61
|
+
await __WEBPACK_EXTERNAL_MODULE_node_fs_promises__["default"].writeFile(file, code.toString());
|
|
71
62
|
}
|
|
72
63
|
async function processDtsFiles(bundle, dir, dtsExtension, banner, footer) {
|
|
73
64
|
if (bundle) return;
|
|
74
|
-
const dtsFiles = await (0,
|
|
65
|
+
const dtsFiles = await (0, __WEBPACK_EXTERNAL_MODULE_fast_glob__["default"])(convertPath((0, __WEBPACK_EXTERNAL_MODULE_node_path__.join)(dir, '/**/*.d.ts')));
|
|
75
66
|
for (const file of dtsFiles)try {
|
|
76
67
|
await addBannerAndFooter(file, banner, footer);
|
|
77
68
|
const newFile = file.replace('.d.ts', dtsExtension);
|
|
78
|
-
|
|
69
|
+
__WEBPACK_EXTERNAL_MODULE_node_fs__["default"].renameSync(file, newFile);
|
|
79
70
|
} catch (error) {
|
|
80
|
-
|
|
71
|
+
__WEBPACK_EXTERNAL_MODULE__rsbuild_core__.logger.error(`Error renaming DTS file ${file}: ${error}`);
|
|
81
72
|
}
|
|
82
73
|
}
|
|
83
74
|
function processSourceEntry(bundle, entryConfig) {
|
|
@@ -97,7 +88,7 @@ async function calcLongestCommonPath(absPaths) {
|
|
|
97
88
|
// we support two cases
|
|
98
89
|
// 1. /packages-a/src/index.ts
|
|
99
90
|
// 2. D:/packages-a/src/index.ts
|
|
100
|
-
const sep =
|
|
91
|
+
const sep = __WEBPACK_EXTERNAL_MODULE_node_path__["default"].posix.sep;
|
|
101
92
|
const splitPaths = absPaths.map((p)=>p.split(sep));
|
|
102
93
|
let lcaFragments = splitPaths[0];
|
|
103
94
|
for(let i = 1; i < splitPaths.length; i++){
|
|
@@ -108,8 +99,8 @@ async function calcLongestCommonPath(absPaths) {
|
|
|
108
99
|
lcaFragments = lcaFragments.slice(0, j);
|
|
109
100
|
}
|
|
110
101
|
let lca = lcaFragments.length > 0 ? lcaFragments.join(sep) : sep;
|
|
111
|
-
const stats = await
|
|
112
|
-
if (stats?.isFile()) lca =
|
|
102
|
+
const stats = await __WEBPACK_EXTERNAL_MODULE_node_fs_promises__["default"].stat(lca);
|
|
103
|
+
if (stats?.isFile()) lca = __WEBPACK_EXTERNAL_MODULE_node_path__["default"].dirname(lca);
|
|
113
104
|
return lca;
|
|
114
105
|
}
|
|
115
106
|
export { TEMP_DTS_DIR, TEMP_FOLDER, addBannerAndFooter, calcLongestCommonPath, ensureTempDeclarationDir, getFileLoc, getTimeCost, loadTsconfig, prettyTime, processDtsFiles, processSourceEntry };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rsbuild-plugin-dts",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.7",
|
|
4
4
|
"description": "Dts plugin for Rsbuild",
|
|
5
5
|
"homepage": "https://lib.rsbuild.dev",
|
|
6
6
|
"bugs": {
|
|
@@ -30,9 +30,9 @@
|
|
|
30
30
|
"picocolors": "1.1.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@microsoft/api-extractor": "^7.47.
|
|
34
|
-
"@rsbuild/core": "1.0.
|
|
35
|
-
"rslib": "npm:@rslib/core@0.0.
|
|
33
|
+
"@microsoft/api-extractor": "^7.47.9",
|
|
34
|
+
"@rsbuild/core": "1.0.5",
|
|
35
|
+
"rslib": "npm:@rslib/core@0.0.6",
|
|
36
36
|
"typescript": "^5.6.2",
|
|
37
37
|
"@rslib/tsconfig": "0.0.1"
|
|
38
38
|
},
|