@sanity/pkg-utils 2.3.12 → 2.3.13-canary.0
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/build.js +69 -0
- package/dist/build.js.map +1 -0
- package/dist/check.js +152 -0
- package/dist/check.js.map +1 -0
- package/dist/cli.cjs +6 -6
- package/dist/cli.cjs.map +1 -1
- package/dist/consoleSpy.js +49 -0
- package/dist/consoleSpy.js.map +1 -0
- package/dist/core/config/defineConfig.js +5 -0
- package/dist/core/config/defineConfig.js.map +1 -0
- package/dist/core/config/findConfigFile.js +21 -0
- package/dist/core/config/findConfigFile.js.map +1 -0
- package/dist/core/config/loadConfig.js +34 -0
- package/dist/core/config/loadConfig.js.map +1 -0
- package/dist/core/config/resolveConfigProperty.js +9 -0
- package/dist/core/config/resolveConfigProperty.js.map +1 -0
- package/dist/core/defaults.js +3 -0
- package/dist/core/defaults.js.map +1 -0
- package/dist/core/findCommonPath.js +28 -0
- package/dist/core/findCommonPath.js.map +1 -0
- package/dist/core/isRecord.js +5 -0
- package/dist/core/isRecord.js.map +1 -0
- package/dist/core/pkg/helpers.js +24 -0
- package/dist/core/pkg/helpers.js.map +1 -0
- package/dist/core/pkg/loadPkg.js +18 -0
- package/dist/core/pkg/loadPkg.js.map +1 -0
- package/dist/core/pkg/loadPkgWithReporting.js +107 -0
- package/dist/core/pkg/loadPkgWithReporting.js.map +1 -0
- package/dist/core/pkg/parseExports.js +75 -0
- package/dist/core/pkg/parseExports.js.map +1 -0
- package/dist/core/pkg/pkgExt.js +29 -0
- package/dist/core/pkg/pkgExt.js.map +1 -0
- package/dist/core/pkg/validateExports.js +19 -0
- package/dist/core/pkg/validateExports.js.map +1 -0
- package/dist/core/pkg/validatePkg.js +49 -0
- package/dist/core/pkg/validatePkg.js.map +1 -0
- package/dist/core/template/createFromTemplate.js +59 -0
- package/dist/core/template/createFromTemplate.js.map +1 -0
- package/dist/core/template/define.js +5 -0
- package/dist/core/template/define.js.map +1 -0
- package/dist/core/ts/loadTSConfig.js +15 -0
- package/dist/core/ts/loadTSConfig.js.map +1 -0
- package/dist/fileExists.js +11 -0
- package/dist/fileExists.js.map +1 -0
- package/dist/getFilesize.js +8 -0
- package/dist/getFilesize.js.map +1 -0
- package/dist/globFiles.js +7 -0
- package/dist/globFiles.js.map +1 -0
- package/dist/index.cjs +44 -30
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +24 -2505
- package/dist/index.js.map +1 -1
- package/dist/init.js +42 -0
- package/dist/init.js.map +1 -0
- package/dist/isEmptyDirectory.js +6 -0
- package/dist/isEmptyDirectory.js.map +1 -0
- package/dist/logger.js +37 -0
- package/dist/logger.js.map +1 -0
- package/dist/package.json.cjs +8 -0
- package/dist/package.json.cjs.map +1 -0
- package/dist/printExtractMessages.js +32 -0
- package/dist/printExtractMessages.js.map +1 -0
- package/dist/printPackageTree.js +92 -0
- package/dist/printPackageTree.js.map +1 -0
- package/dist/resolveBrowserTarget.js +27 -0
- package/dist/resolveBrowserTarget.js.map +1 -0
- package/dist/resolveBrowserslistVersions.js +44 -0
- package/dist/resolveBrowserslistVersions.js.map +1 -0
- package/dist/resolveBuildContext.js +109 -0
- package/dist/resolveBuildContext.js.map +1 -0
- package/dist/resolveBuildTasks.js +140 -0
- package/dist/resolveBuildTasks.js.map +1 -0
- package/dist/resolveNodeTarget.js +12 -0
- package/dist/resolveNodeTarget.js.map +1 -0
- package/dist/resolveWatchTasks.js +103 -0
- package/dist/resolveWatchTasks.js.map +1 -0
- package/dist/spinner.js +15 -0
- package/dist/spinner.js.map +1 -0
- package/dist/{_chunks/buildAction-e950d498.cjs → src/cli/buildAction.cjs} +6 -3
- package/dist/src/cli/buildAction.cjs.map +1 -0
- package/dist/{_chunks/checkAction-c3e5da35.cjs → src/cli/checkAction.cjs} +6 -3
- package/dist/src/cli/checkAction.cjs.map +1 -0
- package/dist/{_chunks/handleError-13d87f55.cjs → src/cli/handleError.cjs} +4 -1
- package/dist/src/cli/handleError.cjs.map +1 -0
- package/dist/{_chunks/initAction-2abd8576.cjs → src/cli/initAction.cjs} +6 -3
- package/dist/src/cli/initAction.cjs.map +1 -0
- package/dist/{_chunks/watchAction-63c8a721.cjs → src/cli/watchAction.cjs} +6 -3
- package/dist/src/cli/watchAction.cjs.map +1 -0
- package/dist/src/node/build.cjs +74 -0
- package/dist/src/node/build.cjs.map +1 -0
- package/dist/src/node/check.cjs +164 -0
- package/dist/src/node/check.cjs.map +1 -0
- package/dist/src/node/consoleSpy.cjs +54 -0
- package/dist/src/node/consoleSpy.cjs.map +1 -0
- package/dist/src/node/core/config/defineConfig.cjs +10 -0
- package/dist/src/node/core/config/defineConfig.cjs.map +1 -0
- package/dist/src/node/core/config/findConfigFile.cjs +33 -0
- package/dist/src/node/core/config/findConfigFile.cjs.map +1 -0
- package/dist/src/node/core/config/loadConfig.cjs +46 -0
- package/dist/src/node/core/config/loadConfig.cjs.map +1 -0
- package/dist/src/node/core/config/resolveConfigProperty.cjs +14 -0
- package/dist/src/node/core/config/resolveConfigProperty.cjs.map +1 -0
- package/dist/src/node/core/defaults.cjs +8 -0
- package/dist/src/node/core/defaults.cjs.map +1 -0
- package/dist/src/node/core/findCommonPath.cjs +40 -0
- package/dist/src/node/core/findCommonPath.cjs.map +1 -0
- package/dist/src/node/core/isRecord.cjs +10 -0
- package/dist/src/node/core/isRecord.cjs.map +1 -0
- package/dist/src/node/core/pkg/helpers.cjs +31 -0
- package/dist/src/node/core/pkg/helpers.cjs.map +1 -0
- package/dist/src/node/core/pkg/loadPkg.cjs +30 -0
- package/dist/src/node/core/pkg/loadPkg.cjs.map +1 -0
- package/dist/src/node/core/pkg/loadPkgWithReporting.cjs +118 -0
- package/dist/src/node/core/pkg/loadPkgWithReporting.cjs.map +1 -0
- package/dist/src/node/core/pkg/parseExports.cjs +80 -0
- package/dist/src/node/core/pkg/parseExports.cjs.map +1 -0
- package/dist/src/node/core/pkg/pkgExt.cjs +35 -0
- package/dist/src/node/core/pkg/pkgExt.cjs.map +1 -0
- package/dist/src/node/core/pkg/validateExports.cjs +24 -0
- package/dist/src/node/core/pkg/validateExports.cjs.map +1 -0
- package/dist/src/node/core/pkg/validatePkg.cjs +54 -0
- package/dist/src/node/core/pkg/validatePkg.cjs.map +1 -0
- package/dist/src/node/core/template/createFromTemplate.cjs +70 -0
- package/dist/src/node/core/template/createFromTemplate.cjs.map +1 -0
- package/dist/src/node/core/template/define.cjs +10 -0
- package/dist/src/node/core/template/define.cjs.map +1 -0
- package/dist/src/node/core/ts/loadTSConfig.cjs +26 -0
- package/dist/src/node/core/ts/loadTSConfig.cjs.map +1 -0
- package/dist/src/node/fileExists.cjs +16 -0
- package/dist/src/node/fileExists.cjs.map +1 -0
- package/dist/src/node/getFilesize.cjs +19 -0
- package/dist/src/node/getFilesize.cjs.map +1 -0
- package/dist/src/node/globFiles.cjs +19 -0
- package/dist/src/node/globFiles.cjs.map +1 -0
- package/dist/src/node/init.cjs +47 -0
- package/dist/src/node/init.cjs.map +1 -0
- package/dist/src/node/isEmptyDirectory.cjs +11 -0
- package/dist/src/node/isEmptyDirectory.cjs.map +1 -0
- package/dist/src/node/logger.cjs +48 -0
- package/dist/src/node/logger.cjs.map +1 -0
- package/dist/src/node/printExtractMessages.cjs +44 -0
- package/dist/src/node/printExtractMessages.cjs.map +1 -0
- package/dist/src/node/printPackageTree.cjs +105 -0
- package/dist/src/node/printPackageTree.cjs.map +1 -0
- package/dist/src/node/resolveBrowserTarget.cjs +32 -0
- package/dist/src/node/resolveBrowserTarget.cjs.map +1 -0
- package/dist/src/node/resolveBrowserslistVersions.cjs +55 -0
- package/dist/src/node/resolveBrowserslistVersions.cjs.map +1 -0
- package/dist/src/node/resolveBuildContext.cjs +120 -0
- package/dist/src/node/resolveBuildContext.cjs.map +1 -0
- package/dist/{_chunks/build-11470607.cjs → src/node/resolveBuildTasks.cjs} +8 -80
- package/dist/src/node/resolveBuildTasks.cjs.map +1 -0
- package/dist/src/node/resolveNodeTarget.cjs +17 -0
- package/dist/src/node/resolveNodeTarget.cjs.map +1 -0
- package/dist/src/node/resolveWatchTasks.cjs +115 -0
- package/dist/src/node/resolveWatchTasks.cjs.map +1 -0
- package/dist/src/node/spinner.cjs +26 -0
- package/dist/src/node/spinner.cjs.map +1 -0
- package/dist/src/node/tasks/dts/DtsError.cjs +17 -0
- package/dist/src/node/tasks/dts/DtsError.cjs.map +1 -0
- package/dist/src/node/tasks/dts/buildTypes.cjs +50 -0
- package/dist/src/node/tasks/dts/buildTypes.cjs.map +1 -0
- package/dist/src/node/tasks/dts/createApiExtractorConfig.cjs +52 -0
- package/dist/src/node/tasks/dts/createApiExtractorConfig.cjs.map +1 -0
- package/dist/src/node/tasks/dts/createTSDocConfig.cjs +37 -0
- package/dist/src/node/tasks/dts/createTSDocConfig.cjs.map +1 -0
- package/dist/src/node/tasks/dts/doExtract.cjs +88 -0
- package/dist/src/node/tasks/dts/doExtract.cjs.map +1 -0
- package/dist/src/node/tasks/dts/dtsTask.cjs +44 -0
- package/dist/src/node/tasks/dts/dtsTask.cjs.map +1 -0
- package/dist/src/node/tasks/dts/dtsWatchTask.cjs +47 -0
- package/dist/src/node/tasks/dts/dtsWatchTask.cjs.map +1 -0
- package/dist/src/node/tasks/dts/extractModuleBlocks.cjs +38 -0
- package/dist/src/node/tasks/dts/extractModuleBlocks.cjs.map +1 -0
- package/dist/src/node/tasks/dts/extractTypes.cjs +90 -0
- package/dist/src/node/tasks/dts/extractTypes.cjs.map +1 -0
- package/dist/src/node/tasks/dts/getExtractMessagesConfig.cjs +73 -0
- package/dist/src/node/tasks/dts/getExtractMessagesConfig.cjs.map +1 -0
- package/dist/src/node/tasks/dts/printDiagnostic.cjs +48 -0
- package/dist/src/node/tasks/dts/printDiagnostic.cjs.map +1 -0
- package/dist/src/node/tasks/index.cjs +26 -0
- package/dist/src/node/tasks/index.cjs.map +1 -0
- package/dist/src/node/tasks/node/reexportCjsTask.cjs +64 -0
- package/dist/src/node/tasks/node/reexportCjsTask.cjs.map +1 -0
- package/dist/src/node/tasks/rollup/resolveRollupConfig.cjs +207 -0
- package/dist/src/node/tasks/rollup/resolveRollupConfig.cjs.map +1 -0
- package/dist/src/node/tasks/rollup/rollupTask.cjs +116 -0
- package/dist/src/node/tasks/rollup/rollupTask.cjs.map +1 -0
- package/dist/src/node/tasks/rollup/rollupWatchTask.cjs +72 -0
- package/dist/src/node/tasks/rollup/rollupWatchTask.cjs.map +1 -0
- package/dist/{_chunks/init-2377e6e5.cjs → src/node/templates/default/template.cjs} +23 -112
- package/dist/src/node/templates/default/template.cjs.map +1 -0
- package/dist/src/node/watch.cjs +90 -0
- package/dist/src/node/watch.cjs.map +1 -0
- package/dist/src/node/watchConfigFiles.cjs +40 -0
- package/dist/src/node/watchConfigFiles.cjs.map +1 -0
- package/dist/src/node/watchFiles.cjs +33 -0
- package/dist/src/node/watchFiles.cjs.map +1 -0
- package/dist/tasks/dts/DtsError.js +12 -0
- package/dist/tasks/dts/DtsError.js.map +1 -0
- package/dist/tasks/dts/buildTypes.js +39 -0
- package/dist/tasks/dts/buildTypes.js.map +1 -0
- package/dist/tasks/dts/createApiExtractorConfig.js +41 -0
- package/dist/tasks/dts/createApiExtractorConfig.js.map +1 -0
- package/dist/tasks/dts/createTSDocConfig.js +32 -0
- package/dist/tasks/dts/createTSDocConfig.js.map +1 -0
- package/dist/tasks/dts/doExtract.js +76 -0
- package/dist/tasks/dts/doExtract.js.map +1 -0
- package/dist/tasks/dts/dtsTask.js +33 -0
- package/dist/tasks/dts/dtsTask.js.map +1 -0
- package/dist/tasks/dts/dtsWatchTask.js +36 -0
- package/dist/tasks/dts/dtsWatchTask.js.map +1 -0
- package/dist/tasks/dts/extractModuleBlocks.js +26 -0
- package/dist/tasks/dts/extractModuleBlocks.js.map +1 -0
- package/dist/tasks/dts/extractTypes.js +77 -0
- package/dist/tasks/dts/extractTypes.js.map +1 -0
- package/dist/tasks/dts/getExtractMessagesConfig.js +68 -0
- package/dist/tasks/dts/getExtractMessagesConfig.js.map +1 -0
- package/dist/tasks/dts/printDiagnostic.js +35 -0
- package/dist/tasks/dts/printDiagnostic.js.map +1 -0
- package/dist/tasks/index.js +16 -0
- package/dist/tasks/index.js.map +1 -0
- package/dist/tasks/node/reexportCjsTask.js +52 -0
- package/dist/tasks/node/reexportCjsTask.js.map +1 -0
- package/dist/tasks/rollup/resolveRollupConfig.js +189 -0
- package/dist/tasks/rollup/resolveRollupConfig.js.map +1 -0
- package/dist/tasks/rollup/rollupTask.js +104 -0
- package/dist/tasks/rollup/rollupTask.js.map +1 -0
- package/dist/tasks/rollup/rollupWatchTask.js +60 -0
- package/dist/tasks/rollup/rollupWatchTask.js.map +1 -0
- package/dist/templates/default/template.js +366 -0
- package/dist/templates/default/template.js.map +1 -0
- package/dist/watch.js +79 -0
- package/dist/watch.js.map +1 -0
- package/dist/watchConfigFiles.js +29 -0
- package/dist/watchConfigFiles.js.map +1 -0
- package/dist/watchFiles.js +22 -0
- package/dist/watchFiles.js.map +1 -0
- package/package.json +3 -2
- package/src/node/core/pkg/loadPkgWithReporting.ts +91 -18
- package/src/node/core/pkg/types.ts +4 -2
- package/src/node/core/pkg/validatePkg.ts +31 -3
- package/src/node/resolveBuildTasks.ts +2 -2
- package/src/node/tasks/rollup/resolveRollupConfig.ts +4 -0
- package/src/node/tasks/rollup/rollupTask.ts +8 -0
- package/dist/_chunks/build-11470607.cjs.map +0 -1
- package/dist/_chunks/buildAction-e950d498.cjs.map +0 -1
- package/dist/_chunks/check-0665cb35.cjs +0 -250
- package/dist/_chunks/check-0665cb35.cjs.map +0 -1
- package/dist/_chunks/checkAction-c3e5da35.cjs.map +0 -1
- package/dist/_chunks/consoleSpy-d738cb9f.cjs +0 -550
- package/dist/_chunks/consoleSpy-d738cb9f.cjs.map +0 -1
- package/dist/_chunks/handleError-13d87f55.cjs.map +0 -1
- package/dist/_chunks/index-70f8931a.cjs +0 -865
- package/dist/_chunks/index-70f8931a.cjs.map +0 -1
- package/dist/_chunks/init-2377e6e5.cjs.map +0 -1
- package/dist/_chunks/initAction-2abd8576.cjs.map +0 -1
- package/dist/_chunks/logger-c593f06b.cjs +0 -97
- package/dist/_chunks/logger-c593f06b.cjs.map +0 -1
- package/dist/_chunks/watch-d390d5e4.cjs +0 -231
- package/dist/_chunks/watch-d390d5e4.cjs.map +0 -1
- package/dist/_chunks/watchAction-63c8a721.cjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createTSDocConfig.js","sources":["../../../src/node/tasks/dts/createTSDocConfig.ts"],"sourcesContent":["import {TSDocConfigFile} from '@microsoft/tsdoc-config'\nimport {readFile} from 'fs/promises'\nimport {parse} from 'jsonc-parser'\n\n/** @public */\nexport interface TSDocCustomTag {\n name: string\n syntaxKind: 'block' | 'modifier'\n allowMultiple?: boolean\n}\n\n/** @internal */\nexport async function createTSDocConfig(opts: {\n customTags: TSDocCustomTag[]\n}): Promise<TSDocConfigFile | undefined> {\n const {customTags} = opts\n\n if (customTags.length === 0) {\n return undefined\n }\n\n const tsDocBaseBuf = await readFile(\n require.resolve('@microsoft/api-extractor/extends/tsdoc-base.json'),\n )\n\n // Include the definitions that are required for API Extractor\n // extends: ['@microsoft/api-extractor/extends/tsdoc-base.json'],\n const tsDocBaseConfig = parse(tsDocBaseBuf.toString())\n\n // Define custom tags and specify how they should be parsed\n const tagDefinitions = (tsDocBaseConfig.tagDefinitions || []).concat(\n customTags.map((t) => ({\n tagName: `@${t.name}`,\n syntaxKind: t.syntaxKind,\n allowMultiple: t.allowMultiple,\n })),\n )\n\n // Indicate that custom tags are supported by your tooling.\n // (Without this, warnings may be reported saying that a tag is unsupported.)\n const supportForTags = {...tsDocBaseConfig.supportForTags}\n\n for (const customTag of customTags) {\n supportForTags[`@${customTag.name}`] = true\n }\n\n return TSDocConfigFile.loadFromObject({\n ...tsDocBaseConfig,\n noStandardTags: false,\n tagDefinitions,\n supportForTags,\n })\n}\n"],"names":["createTSDocConfig","opts","customTags","length","tsDocBaseBuf","readFile","require","resolve","tsDocBaseConfig","parse","toString","tagDefinitions","concat","map","t","tagName","name","syntaxKind","allowMultiple","supportForTags","customTag","TSDocConfigFile","loadFromObject","noStandardTags"],"mappings":";;;AAYA,eAAsBA,kBAAkBC,IAEC,EAAA;EACjC,MAAA;IAACC;EAAc,CAAA,GAAAD,IAAA;EAEjB,IAAAC,UAAA,CAAWC,WAAW,CAAG,EAAA;IACpB,OAAA,KAAA,CAAA;EACT;EAEA,MAAMC,eAAe,MAAMC,QAAA,CACzBC,OAAA,CAAQC,QAAQ,kDAAkD,CAAA,CACpE;EAIA,MAAMC,eAAkB,GAAAC,KAAA,CAAML,YAAa,CAAAM,QAAA,CAAU,CAAA,CAAA;EAGrD,MAAMC,cAAkB,GAAA,CAAAH,eAAA,CAAgBG,cAAkB,IAAA,EAAI,EAAAC,MAAA,CAC5DV,UAAA,CAAWW,GAAI,CAACC,CAAO,KAAA;IACrBC,OAAA,MAAAH,MAAA,CAAaE,CAAA,CAAEE,IAAI,CAAA;IACnBC,YAAYH,CAAE,CAAAG,UAAA;IACdC,eAAeJ,CAAE,CAAAI;EAAA,CACjB,CAAA,CAAA,CACJ;EAIA,MAAMC,cAAiB,GAAA;IAAC,GAAGX,eAAA,CAAgBW;EAAc,CAAA;EAEzD,KAAA,MAAWC,aAAalB,UAAY,EAAA;IAClCiB,cAAA,KAAAP,MAAA,CAAmBQ,SAAA,CAAUJ,IAAI,EAAM,GAAA,IAAA;EACzC;EAEA,OAAOK,gBAAgBC,cAAe,CAAA;IACpC,GAAGd,eAAA;IACHe,cAAgB,EAAA,KAAA;IAChBZ,cAAA;IACAQ;EAAA,CACD,CAAA;AACH;"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import rimraf from 'rimraf';
|
|
3
|
+
import { buildTypes } from './buildTypes.js';
|
|
4
|
+
import { DtsError } from './DtsError.js';
|
|
5
|
+
import { extractTypes } from './extractTypes.js';
|
|
6
|
+
async function doExtract(ctx, task) {
|
|
7
|
+
var _a, _b;
|
|
8
|
+
const {
|
|
9
|
+
config,
|
|
10
|
+
cwd,
|
|
11
|
+
files,
|
|
12
|
+
logger,
|
|
13
|
+
strict,
|
|
14
|
+
ts
|
|
15
|
+
} = ctx;
|
|
16
|
+
if (!ts.config || !ts.configPath) {
|
|
17
|
+
return {
|
|
18
|
+
type: "dts",
|
|
19
|
+
messages: [],
|
|
20
|
+
results: []
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
const {
|
|
24
|
+
outDir,
|
|
25
|
+
rootDir = cwd
|
|
26
|
+
} = ts.config.options;
|
|
27
|
+
if (!outDir) {
|
|
28
|
+
throw new Error("tsconfig.json is missing `compilerOptions.outDir`");
|
|
29
|
+
}
|
|
30
|
+
const tmpPath = path.resolve(outDir, "__tmp__");
|
|
31
|
+
await buildTypes({
|
|
32
|
+
cwd,
|
|
33
|
+
logger,
|
|
34
|
+
outDir: tmpPath,
|
|
35
|
+
strict,
|
|
36
|
+
tsconfig: ts.config
|
|
37
|
+
});
|
|
38
|
+
const messages = [];
|
|
39
|
+
const results = [];
|
|
40
|
+
for (const entry of task.entries) {
|
|
41
|
+
const exportPath = entry.exportPath === "." ? "./index" : entry.exportPath;
|
|
42
|
+
const sourceTypesPath = path.resolve(tmpPath, path.relative(rootDir, path.resolve(cwd, entry.sourcePath)).replace(/\.ts$/, ".d.ts"));
|
|
43
|
+
const targetPath = path.resolve(cwd, entry.targetPath);
|
|
44
|
+
const filePath = path.relative(outDir, targetPath);
|
|
45
|
+
const result = await extractTypes({
|
|
46
|
+
customTags: (_a = config == null ? void 0 : config.extract) == null ? void 0 : _a.customTags,
|
|
47
|
+
cwd,
|
|
48
|
+
distPath: outDir,
|
|
49
|
+
exportPath,
|
|
50
|
+
files,
|
|
51
|
+
filePath,
|
|
52
|
+
projectPath: cwd,
|
|
53
|
+
rules: (_b = config == null ? void 0 : config.extract) == null ? void 0 : _b.rules,
|
|
54
|
+
sourceTypesPath,
|
|
55
|
+
tmpPath,
|
|
56
|
+
tsconfigPath: path.resolve(cwd, ts.configPath || "tsconfig.json")
|
|
57
|
+
});
|
|
58
|
+
messages.push(...result.messages);
|
|
59
|
+
if (result.messages.some(msg => msg.logLevel === "error")) {
|
|
60
|
+
await rimraf(tmpPath);
|
|
61
|
+
throw new DtsError("encountered errors when extracting types", result.messages);
|
|
62
|
+
}
|
|
63
|
+
results.push({
|
|
64
|
+
sourcePath: path.resolve(cwd, entry.sourcePath),
|
|
65
|
+
filePath: targetPath
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
await rimraf(tmpPath);
|
|
69
|
+
return {
|
|
70
|
+
type: "dts",
|
|
71
|
+
messages,
|
|
72
|
+
results
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
export { doExtract };
|
|
76
|
+
//# sourceMappingURL=doExtract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doExtract.js","sources":["../../../src/node/tasks/dts/doExtract.ts"],"sourcesContent":["import {ExtractorMessage} from '@microsoft/api-extractor'\nimport path from 'path'\nimport rimraf from 'rimraf'\n\nimport {BuildContext} from '../../core'\nimport {buildTypes} from './buildTypes'\nimport {DtsError} from './DtsError'\nimport {extractTypes} from './extractTypes'\nimport {DtsResult, DtsTask, DtsWatchTask} from './types'\n\n/**\n * - Build type definitions to a temporary directory using TypeScript compiler.\n * - Create a type definition bundle for each export entry.\n * - When done, remove the temporary directory.\n */\nexport async function doExtract(\n ctx: BuildContext,\n task: DtsTask | DtsWatchTask,\n): Promise<DtsResult> {\n const {config, cwd, files, logger, strict, ts} = ctx\n\n if (!ts.config || !ts.configPath) {\n return {type: 'dts', messages: [], results: []}\n }\n\n const {outDir, rootDir = cwd} = ts.config.options\n\n if (!outDir) {\n throw new Error('tsconfig.json is missing `compilerOptions.outDir`')\n }\n\n const tmpPath = path.resolve(outDir, '__tmp__')\n\n await buildTypes({cwd, logger, outDir: tmpPath, strict, tsconfig: ts.config})\n const messages: ExtractorMessage[] = []\n\n const results: {sourcePath: string; filePath: string}[] = []\n\n for (const entry of task.entries) {\n const exportPath = entry.exportPath === '.' ? './index' : entry.exportPath\n\n const sourceTypesPath = path.resolve(\n tmpPath,\n path.relative(rootDir, path.resolve(cwd, entry.sourcePath)).replace(/\\.ts$/, '.d.ts'),\n )\n\n const targetPath = path.resolve(cwd, entry.targetPath)\n const filePath = path.relative(outDir, targetPath)\n const result = await extractTypes({\n customTags: config?.extract?.customTags,\n cwd,\n distPath: outDir,\n exportPath,\n files,\n filePath: filePath,\n projectPath: cwd,\n rules: config?.extract?.rules,\n sourceTypesPath: sourceTypesPath,\n tmpPath,\n tsconfigPath: path.resolve(cwd, ts.configPath || 'tsconfig.json'),\n })\n\n messages.push(...result.messages)\n\n if (result.messages.some((msg) => msg.logLevel === 'error')) {\n await rimraf(tmpPath)\n\n throw new DtsError('encountered errors when extracting types', result.messages)\n }\n\n results.push({sourcePath: path.resolve(cwd, entry.sourcePath), filePath: targetPath})\n }\n\n await rimraf(tmpPath)\n\n return {type: 'dts', messages, results}\n}\n"],"names":["doExtract","ctx","task","_a","_b","config","cwd","files","logger","strict","ts","configPath","type","messages","results","outDir","rootDir","options","Error","tmpPath","path","resolve","buildTypes","tsconfig","entry","entries","exportPath","sourceTypesPath","relative","sourcePath","replace","targetPath","filePath","result","extractTypes","customTags","extract","distPath","projectPath","rules","tsconfigPath","push","some","msg","logLevel","rimraf","DtsError"],"mappings":";;;;;AAesB,eAAAA,SAAAA,CACpBC,KACAC,IACoB,EAAA;EAlBtB,IAAAC,EAAA,EAAAC,EAAA;EAmBE,MAAM;IAACC,MAAQ;IAAAC,GAAA;IAAKC;IAAOC,MAAQ;IAAAC,MAAA;IAAQC;EAAM,CAAA,GAAAT,GAAA;EAEjD,IAAI,CAACS,EAAA,CAAGL,MAAU,IAAA,CAACK,GAAGC,UAAY,EAAA;IACzB,OAAA;MAACC,MAAM,KAAO;MAAAC,QAAA,EAAU,EAAI;MAAAC,OAAA,EAAS;KAAE;EAChD;EAEA,MAAM;IAACC,MAAQ;IAAAC,OAAA,GAAUV;EAAG,CAAA,GAAII,GAAGL,MAAO,CAAAY,OAAA;EAE1C,IAAI,CAACF,MAAQ,EAAA;IACL,MAAA,IAAIG,MAAM,mDAAmD,CAAA;EACrE;EAEA,MAAMC,OAAU,GAAAC,IAAA,CAAKC,OAAQ,CAAAN,MAAA,EAAQ,SAAS,CAAA;EAExC,MAAAO,UAAA,CAAW;IAAChB,GAAA;IAAKE,MAAQ;IAAAO,MAAA,EAAQI;IAASV,MAAQ;IAAAc,QAAA,EAAUb,EAAG,CAAAL;EAAO,CAAA,CAAA;EAC5E,MAAMQ,WAA+B,EAAC;EAEtC,MAAMC,UAAoD,EAAC;EAEhD,KAAA,MAAAU,KAAA,IAAStB,KAAKuB,OAAS,EAAA;IAChC,MAAMC,UAAa,GAAAF,KAAA,CAAME,UAAe,KAAA,GAAA,GAAM,YAAYF,KAAM,CAAAE,UAAA;IAEhE,MAAMC,kBAAkBP,IAAK,CAAAC,OAAA,CAC3BF,OAAA,EACAC,IAAK,CAAAQ,QAAA,CAASZ,OAAS,EAAAI,IAAA,CAAKC,OAAQ,CAAAf,GAAA,EAAKkB,KAAM,CAAAK,UAAU,CAAC,CAAA,CAAEC,OAAQ,CAAA,OAAA,EAAS,OAAO,CAAA,CACtF;IAEA,MAAMC,UAAa,GAAAX,IAAA,CAAKC,OAAQ,CAAAf,GAAA,EAAKkB,MAAMO,UAAU,CAAA;IACrD,MAAMC,QAAW,GAAAZ,IAAA,CAAKQ,QAAS,CAAAb,MAAA,EAAQgB,UAAU,CAAA;IAC3C,MAAAE,MAAA,GAAS,MAAMC,YAAa,CAAA;MAChCC,UAAA,EAAA,CAAYhC,EAAQ,GAAAE,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAA+B,OAAA,KAAR,IAAiB,GAAA,KAAA,CAAA,GAAAjC,EAAA,CAAAgC,UAAA;MAC7B7B,GAAA;MACA+B,QAAU,EAAAtB,MAAA;MACVW,UAAA;MACAnB,KAAA;MACAyB,QAAA;MACAM,WAAa,EAAAhC,GAAA;MACbiC,KAAA,EAAA,CAAOnC,EAAQ,GAAAC,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAA+B,OAAA,KAAR,IAAiB,GAAA,KAAA,CAAA,GAAAhC,EAAA,CAAAmC,KAAA;MACxBZ,eAAA;MACAR,OAAA;MACAqB,cAAcpB,IAAK,CAAAC,OAAA,CAAQf,GAAK,EAAAI,EAAA,CAAGC,cAAc,eAAe;IAAA,CACjE,CAAA;IAEQE,QAAA,CAAA4B,IAAA,CAAK,GAAGR,MAAA,CAAOpB,QAAQ,CAAA;IAE5B,IAAAoB,MAAA,CAAOpB,SAAS6B,IAAK,CAACC,OAAQA,GAAI,CAAAC,QAAA,KAAa,OAAO,CAAG,EAAA;MAC3D,MAAMC,OAAO1B,OAAO,CAAA;MAEpB,MAAM,IAAI2B,QAAA,CAAS,0CAA4C,EAAAb,MAAA,CAAOpB,QAAQ,CAAA;IAChF;IAEQC,OAAA,CAAA2B,IAAA,CAAK;MAACZ,UAAA,EAAYT,IAAK,CAAAC,OAAA,CAAQf,GAAK,EAAAkB,KAAA,CAAMK,UAAU,CAAA;MAAGG,QAAU,EAAAD;IAAW,CAAA,CAAA;EACtF;EAEA,MAAMc,OAAO1B,OAAO,CAAA;EAEpB,OAAO;IAACP,IAAA,EAAM,KAAO;IAAAC,QAAA;IAAUC;EAAO,CAAA;AACxC;"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { printExtractMessages } from '../../printExtractMessages.js';
|
|
4
|
+
import { doExtract } from './doExtract.js';
|
|
5
|
+
import { DtsError } from './DtsError.js';
|
|
6
|
+
const dtsTask = {
|
|
7
|
+
name: (_ctx, task) => ["Build type definitions...", " entries:", ...task.entries.map(entry => [" - ".concat(chalk.cyan(entry.importId), ": "), "".concat(chalk.yellow(entry.sourcePath), " ").concat(chalk.gray("\u2192"), " ").concat(chalk.yellow(entry.targetPath))].join(""))].join("\n"),
|
|
8
|
+
exec: (ctx, task) => {
|
|
9
|
+
return new Observable(observer => {
|
|
10
|
+
doExtract(ctx, task).then(result => {
|
|
11
|
+
observer.next(result);
|
|
12
|
+
observer.complete();
|
|
13
|
+
}).catch(err => {
|
|
14
|
+
observer.error(err);
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
},
|
|
18
|
+
complete: (ctx, _task, result) => {
|
|
19
|
+
printExtractMessages(ctx, result.messages);
|
|
20
|
+
},
|
|
21
|
+
error: (ctx, _task, err) => {
|
|
22
|
+
const {
|
|
23
|
+
logger
|
|
24
|
+
} = ctx;
|
|
25
|
+
if (err instanceof DtsError) {
|
|
26
|
+
printExtractMessages(ctx, err.messages);
|
|
27
|
+
} else if (err instanceof Error) {
|
|
28
|
+
logger.error(err);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
export { dtsTask };
|
|
33
|
+
//# sourceMappingURL=dtsTask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dtsTask.js","sources":["../../../src/node/tasks/dts/dtsTask.ts"],"sourcesContent":["import chalk from 'chalk'\nimport {Observable} from 'rxjs'\n\nimport {printExtractMessages} from '../../printExtractMessages'\nimport {TaskHandler} from '../types'\nimport {doExtract} from './doExtract'\nimport {DtsError} from './DtsError'\nimport {DtsResult, DtsTask} from './types'\n\n/** @internal */\nexport const dtsTask: TaskHandler<DtsTask, DtsResult> = {\n name: (_ctx, task) =>\n [\n `Build type definitions...`,\n ` entries:`,\n ...task.entries.map((entry) =>\n [\n ` - ${chalk.cyan(entry.importId)}: `,\n `${chalk.yellow(entry.sourcePath)} ${chalk.gray('→')} ${chalk.yellow(entry.targetPath)}`,\n ].join(''),\n ),\n ].join('\\n'),\n exec: (ctx, task) => {\n return new Observable((observer) => {\n doExtract(ctx, task)\n .then((result) => {\n observer.next(result)\n observer.complete()\n })\n .catch((err) => {\n observer.error(err)\n })\n })\n },\n complete: (ctx, _task, result) => {\n printExtractMessages(ctx, result.messages)\n },\n error: (ctx, _task, err) => {\n const {logger} = ctx\n\n if (err instanceof DtsError) {\n printExtractMessages(ctx, err.messages)\n } else if (err instanceof Error) {\n logger.error(err)\n }\n },\n}\n"],"names":["dtsTask","name","_ctx","task","entries","map","entry","concat","chalk","cyan","importId","yellow","sourcePath","gray","targetPath","join","exec","ctx","Observable","observer","doExtract","then","result","next","complete","catch","err","error","_task","printExtractMessages","messages","logger","DtsError","Error"],"mappings":";;;;;AAUO,MAAMA,OAA2C,GAAA;EACtDC,IAAA,EAAMA,CAACC,IAAA,EAAMC,IACX,KAAA,4CAGE,GAAGA,KAAKC,OAAQ,CAAAC,GAAA,CAAKC,KACnB,IAAA,UAAAC,MAAA,CACWC,KAAA,CAAMC,IAAK,CAAAH,KAAA,CAAMI,QAAQ,CAAC,YAAAH,MAAA,CAChCC,KAAM,CAAAG,MAAA,CAAOL,KAAM,CAAAM,UAAU,CAAC,OAAAL,MAAA,CAAIC,KAAA,CAAMK,IAAK,CAAA,QAAG,CAAC,OAAAN,MAAA,CAAIC,KAAA,CAAMG,MAAO,CAAAL,KAAA,CAAMQ,UAAU,CAAC,EACxF,CAAEC,KAAK,EAAE,CACX,CAAA,CACF,CAAEA,KAAK,IAAI,CAAA;EACbC,IAAA,EAAMA,CAACC,GAAA,EAAKd,IAAS,KAAA;IACZ,OAAA,IAAIe,UAAW,CAACC,QAAa,IAAA;MAClCC,SAAA,CAAUH,GAAK,EAAAd,IAAI,CAChB,CAAAkB,IAAA,CAAMC,MAAW,IAAA;QAChBH,QAAA,CAASI,KAAKD,MAAM,CAAA;QACpBH,QAAA,CAASK,QAAS,CAAA,CAAA;MAAA,CACnB,CAAA,CACAC,KAAM,CAACC,GAAQ,IAAA;QACdP,QAAA,CAASQ,MAAMD,GAAG,CAAA;MAAA,CACnB,CAAA;IAAA,CACJ,CAAA;EACH,CAAA;EACAF,QAAU,EAAAA,CAACP,GAAK,EAAAW,KAAA,EAAON,MAAW,KAAA;IACXO,oBAAA,CAAAZ,GAAA,EAAKK,OAAOQ,QAAQ,CAAA;EAC3C,CAAA;EACAH,KAAO,EAAAA,CAACV,GAAK,EAAAW,KAAA,EAAOF,GAAQ,KAAA;IACpB,MAAA;MAACK;IAAU,CAAA,GAAAd,GAAA;IAEjB,IAAIS,eAAeM,QAAU,EAAA;MACNH,oBAAA,CAAAZ,GAAA,EAAKS,IAAII,QAAQ,CAAA;IAAA,CACxC,MAAA,IAAWJ,eAAeO,KAAO,EAAA;MAC/BF,MAAA,CAAOJ,MAAMD,GAAG,CAAA;IAClB;EACF;AACF,CAAA;"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { printExtractMessages } from '../../printExtractMessages.js';
|
|
4
|
+
import { doExtract } from './doExtract.js';
|
|
5
|
+
import { DtsError } from './DtsError.js';
|
|
6
|
+
const dtsWatchTask = {
|
|
7
|
+
name: (_ctx, task) => ["build type definitions", ...task.entries.map(entry => " ".concat(chalk.blue(entry.importId), ": ").concat(entry.sourcePath, " -> ").concat(entry.targetPath))].join("\n"),
|
|
8
|
+
exec: (ctx, task) => {
|
|
9
|
+
return new Observable(observer => {
|
|
10
|
+
doExtract(ctx, task).then(result => {
|
|
11
|
+
observer.next(result);
|
|
12
|
+
observer.complete();
|
|
13
|
+
}).catch(err => observer.error(err));
|
|
14
|
+
});
|
|
15
|
+
},
|
|
16
|
+
complete: (ctx, _task, result) => {
|
|
17
|
+
const {
|
|
18
|
+
logger
|
|
19
|
+
} = ctx;
|
|
20
|
+
printExtractMessages(ctx, result.messages);
|
|
21
|
+
logger.warn("watching typescript definitions is currently not supported");
|
|
22
|
+
logger.log();
|
|
23
|
+
},
|
|
24
|
+
error: (ctx, _task, err) => {
|
|
25
|
+
const {
|
|
26
|
+
logger
|
|
27
|
+
} = ctx;
|
|
28
|
+
if (err instanceof DtsError) {
|
|
29
|
+
printExtractMessages(ctx, err.messages);
|
|
30
|
+
} else if (err instanceof Error) {
|
|
31
|
+
logger.error(err);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
export { dtsWatchTask };
|
|
36
|
+
//# sourceMappingURL=dtsWatchTask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dtsWatchTask.js","sources":["../../../src/node/tasks/dts/dtsWatchTask.ts"],"sourcesContent":["import chalk from 'chalk'\nimport {Observable} from 'rxjs'\n\nimport {printExtractMessages} from '../../printExtractMessages'\nimport {TaskHandler} from '../types'\nimport {doExtract} from './doExtract'\nimport {DtsError} from './DtsError'\nimport {DtsResult, DtsWatchTask} from './types'\n\n/** @internal */\nexport const dtsWatchTask: TaskHandler<DtsWatchTask, DtsResult> = {\n name: (_ctx, task) =>\n [\n `build type definitions`,\n ...task.entries.map(\n (entry) =>\n ` ${chalk.blue(entry.importId)}: ${entry.sourcePath} -> ${entry.targetPath}`,\n ),\n ].join('\\n'),\n exec: (ctx, task) => {\n return new Observable((observer) => {\n doExtract(ctx, task)\n .then((result) => {\n observer.next(result)\n observer.complete()\n })\n .catch((err) => observer.error(err))\n })\n },\n complete: (ctx, _task, result) => {\n const {logger} = ctx\n\n printExtractMessages(ctx, result.messages)\n\n logger.warn('watching typescript definitions is currently not supported')\n logger.log()\n },\n error: (ctx, _task, err) => {\n const {logger} = ctx\n\n if (err instanceof DtsError) {\n printExtractMessages(ctx, err.messages)\n } else if (err instanceof Error) {\n logger.error(err)\n }\n },\n}\n"],"names":["dtsWatchTask","name","_ctx","task","entries","map","entry","concat","chalk","blue","importId","sourcePath","targetPath","join","exec","ctx","Observable","observer","doExtract","then","result","next","complete","catch","err","error","_task","logger","printExtractMessages","messages","warn","log","DtsError","Error"],"mappings":";;;;;AAUO,MAAMA,YAAqD,GAAA;EAChEC,IAAA,EAAMA,CAACC,IAAA,EAAMC,IACX,KAAA,2BAEE,GAAGA,KAAKC,OAAQ,CAAAC,GAAA,CACbC,KAAA,cAAAC,MAAA,CACWC,KAAA,CAAMC,IAAK,CAAAH,KAAA,CAAMI,QAAQ,CAAC,QAAAH,MAAA,CAAKD,KAAA,CAAMK,UAAU,UAAAJ,MAAA,CAAOD,MAAMM,UAAU,CACpF,CAAA,CACF,CAAEC,KAAK,IAAI,CAAA;EACbC,IAAA,EAAMA,CAACC,GAAA,EAAKZ,IAAS,KAAA;IACZ,OAAA,IAAIa,UAAW,CAACC,QAAa,IAAA;MAClCC,SAAA,CAAUH,GAAK,EAAAZ,IAAI,CAChB,CAAAgB,IAAA,CAAMC,MAAW,IAAA;QAChBH,QAAA,CAASI,KAAKD,MAAM,CAAA;QACpBH,QAAA,CAASK,QAAS,CAAA,CAAA;MAAA,CACnB,EACAC,KAAM,CAACC,OAAQP,QAAS,CAAAQ,KAAA,CAAMD,GAAG,CAAC,CAAA;IAAA,CACtC,CAAA;EACH,CAAA;EACAF,QAAU,EAAAA,CAACP,GAAK,EAAAW,KAAA,EAAON,MAAW,KAAA;IAC1B,MAAA;MAACO;IAAU,CAAA,GAAAZ,GAAA;IAEIa,oBAAA,CAAAb,GAAA,EAAKK,OAAOS,QAAQ,CAAA;IAEzCF,MAAA,CAAOG,KAAK,4DAA4D,CAAA;IACxEH,MAAA,CAAOI,GAAI,CAAA,CAAA;EACb,CAAA;EACAN,KAAO,EAAAA,CAACV,GAAK,EAAAW,KAAA,EAAOF,GAAQ,KAAA;IACpB,MAAA;MAACG;IAAU,CAAA,GAAAZ,GAAA;IAEjB,IAAIS,eAAeQ,QAAU,EAAA;MACNJ,oBAAA,CAAAb,GAAA,EAAKS,IAAIK,QAAQ,CAAA;IAAA,CACxC,MAAA,IAAWL,eAAeS,KAAO,EAAA;MAC/BN,MAAA,CAAOF,MAAMD,GAAG,CAAA;IAClB;EACF;AACF,CAAA;"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { parse, print } from 'recast';
|
|
2
|
+
import typeScriptParser from 'recast/parsers/typescript';
|
|
3
|
+
async function extractModuleBlocksFromTypes(_ref) {
|
|
4
|
+
let {
|
|
5
|
+
tsOutDir,
|
|
6
|
+
extractResult
|
|
7
|
+
} = _ref;
|
|
8
|
+
const program = extractResult.compilerState.program;
|
|
9
|
+
const moduleBlocks = [];
|
|
10
|
+
const allProgramFiles = [...program.getSourceFiles()];
|
|
11
|
+
const sourceFiles = allProgramFiles.filter(sourceFile => sourceFile.fileName.includes(tsOutDir));
|
|
12
|
+
for (const sourceFile of sourceFiles) {
|
|
13
|
+
if (sourceFile.text.includes("declare module")) {
|
|
14
|
+
moduleBlocks.push(...extractModuleBlocks(sourceFile.text));
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return moduleBlocks;
|
|
18
|
+
}
|
|
19
|
+
function extractModuleBlocks(fileContent) {
|
|
20
|
+
const ast = parse(fileContent, {
|
|
21
|
+
parser: typeScriptParser
|
|
22
|
+
});
|
|
23
|
+
return ast.program.body.filter(node => node.type === "TSModuleDeclaration").map(node => print(node).code);
|
|
24
|
+
}
|
|
25
|
+
export { extractModuleBlocks, extractModuleBlocksFromTypes };
|
|
26
|
+
//# sourceMappingURL=extractModuleBlocks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractModuleBlocks.js","sources":["../../../src/node/tasks/dts/extractModuleBlocks.ts"],"sourcesContent":["import type {File} from '@babel/types'\nimport {ExtractorResult} from '@microsoft/api-extractor'\nimport {parse, print} from 'recast'\nimport typeScriptParser from 'recast/parsers/typescript'\nimport {Program} from 'typescript'\n\n/**\n * A workaround to find all module blocks in extract TS files.\n * @internal\n * */\nexport async function extractModuleBlocksFromTypes({\n tsOutDir,\n extractResult,\n}: {\n tsOutDir: string\n extractResult: ExtractorResult\n}): Promise<string[]> {\n const program = extractResult.compilerState.program as Program\n const moduleBlocks: string[] = []\n\n // all program files, including node_modules\n const allProgramFiles = [...program.getSourceFiles()]\n\n // just our compiled files used in the program\n const sourceFiles = allProgramFiles.filter((sourceFile) => sourceFile.fileName.includes(tsOutDir))\n\n for (const sourceFile of sourceFiles) {\n if (sourceFile.text.includes('declare module')) {\n moduleBlocks.push(...extractModuleBlocks(sourceFile.text))\n }\n }\n\n return moduleBlocks\n}\n\n/** @internal */\nexport function extractModuleBlocks(fileContent: string): string[] {\n const ast = parse(fileContent, {\n parser: typeScriptParser,\n }) as File\n\n return ast.program.body\n .filter((node) => node.type === 'TSModuleDeclaration')\n .map((node) => print(node).code)\n}\n"],"names":["extractModuleBlocksFromTypes","_ref","tsOutDir","extractResult","program","compilerState","moduleBlocks","allProgramFiles","getSourceFiles","sourceFiles","filter","sourceFile","fileName","includes","text","push","extractModuleBlocks","fileContent","ast","parse","parser","typeScriptParser","body","node","type","map","print","code"],"mappings":";;AAUA,eAAsBA,4BAA6BA,CAAAC,IAAA,EAM7B;EAAA,IAN6B;IACjDC,QAAA;IACAC;EACF,CAGsB,GAAAF,IAAA;EACd,MAAAG,OAAA,GAAUD,cAAcE,aAAc,CAAAD,OAAA;EAC5C,MAAME,eAAyB,EAAC;EAGhC,MAAMC,eAAkB,GAAA,CAAC,GAAGH,OAAA,CAAQI,eAAgB,CAAA,CAAA;EAG9C,MAAAC,WAAA,GAAcF,gBAAgBG,MAAO,CAACC,cAAeA,UAAW,CAAAC,QAAA,CAASC,QAAS,CAAAX,QAAQ,CAAC,CAAA;EAEjG,KAAA,MAAWS,cAAcF,WAAa,EAAA;IACpC,IAAIE,UAAW,CAAAG,IAAA,CAAKD,QAAS,CAAA,gBAAgB,CAAG,EAAA;MAC9CP,YAAA,CAAaS,IAAK,CAAA,GAAGC,mBAAoB,CAAAL,UAAA,CAAWG,IAAI,CAAC,CAAA;IAC3D;EACF;EAEO,OAAAR,YAAA;AACT;AAGO,SAASU,oBAAoBC,WAA+B,EAAA;EAC3D,MAAAC,GAAA,GAAMC,MAAMF,WAAa,EAAA;IAC7BG,MAAQ,EAAAC;EAAA,CACT,CAAA;EAED,OAAOH,IAAId,OAAQ,CAAAkB,IAAA,CAChBZ,MAAO,CAACa,QAASA,IAAK,CAAAC,IAAA,KAAS,qBAAqB,CAAA,CACpDC,IAAKF,IAAA,IAASG,KAAM,CAAAH,IAAI,EAAEI,IAAI,CAAA;AACnC;"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { ExtractorConfig, Extractor } from '@microsoft/api-extractor';
|
|
2
|
+
import fs from 'fs/promises';
|
|
3
|
+
import { mkdirp } from 'mkdirp';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import prettier from 'prettier';
|
|
6
|
+
import { createApiExtractorConfig } from './createApiExtractorConfig.js';
|
|
7
|
+
import { createTSDocConfig } from './createTSDocConfig.js';
|
|
8
|
+
import { extractModuleBlocksFromTypes } from './extractModuleBlocks.js';
|
|
9
|
+
import { getExtractMessagesConfig } from './getExtractMessagesConfig.js';
|
|
10
|
+
async function extractTypes(options) {
|
|
11
|
+
const {
|
|
12
|
+
customTags,
|
|
13
|
+
distPath,
|
|
14
|
+
exportPath,
|
|
15
|
+
files,
|
|
16
|
+
filePath,
|
|
17
|
+
projectPath,
|
|
18
|
+
rules,
|
|
19
|
+
sourceTypesPath,
|
|
20
|
+
tmpPath,
|
|
21
|
+
tsconfigPath
|
|
22
|
+
} = options;
|
|
23
|
+
const tsdocConfigFile = await createTSDocConfig({
|
|
24
|
+
customTags: customTags || []
|
|
25
|
+
});
|
|
26
|
+
const extractorConfig = ExtractorConfig.prepare({
|
|
27
|
+
configObject: createApiExtractorConfig({
|
|
28
|
+
distPath,
|
|
29
|
+
exportPath,
|
|
30
|
+
filePath,
|
|
31
|
+
messages: getExtractMessagesConfig({
|
|
32
|
+
rules
|
|
33
|
+
}),
|
|
34
|
+
projectFolder: projectPath,
|
|
35
|
+
mainEntryPointFilePath: sourceTypesPath,
|
|
36
|
+
tsconfigPath
|
|
37
|
+
}),
|
|
38
|
+
configObjectFullPath: void 0,
|
|
39
|
+
tsdocConfigFile,
|
|
40
|
+
packageJsonFullPath: path.resolve(projectPath, "package.json")
|
|
41
|
+
});
|
|
42
|
+
const messages = [];
|
|
43
|
+
const extractorResult = Extractor.invoke(extractorConfig, {
|
|
44
|
+
// Equivalent to the "--local" command-line parameter
|
|
45
|
+
localBuild: true,
|
|
46
|
+
// Equivalent to the "--verbose" command-line parameter
|
|
47
|
+
showVerboseMessages: true,
|
|
48
|
+
// handle messages
|
|
49
|
+
messageCallback(message) {
|
|
50
|
+
messages.push(message);
|
|
51
|
+
message.handled = true;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
const typesPath = path.resolve(distPath, filePath);
|
|
55
|
+
const typesBuf = await fs.readFile(typesPath);
|
|
56
|
+
const prettierConfig = await prettier.resolveConfig(typesPath);
|
|
57
|
+
await mkdirp(path.dirname(typesPath));
|
|
58
|
+
const moduleBlocks = await extractModuleBlocksFromTypes({
|
|
59
|
+
extractResult: extractorResult,
|
|
60
|
+
tsOutDir: tmpPath
|
|
61
|
+
});
|
|
62
|
+
const code = [typesBuf.toString(), ...moduleBlocks].join("\n\n");
|
|
63
|
+
await fs.writeFile(typesPath, await prettier.format(code, {
|
|
64
|
+
...prettierConfig,
|
|
65
|
+
filepath: typesPath
|
|
66
|
+
}));
|
|
67
|
+
files.push({
|
|
68
|
+
type: "types",
|
|
69
|
+
path: typesPath
|
|
70
|
+
});
|
|
71
|
+
return {
|
|
72
|
+
extractorResult,
|
|
73
|
+
messages
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
export { extractTypes };
|
|
77
|
+
//# sourceMappingURL=extractTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractTypes.js","sources":["../../../src/node/tasks/dts/extractTypes.ts"],"sourcesContent":["import {\n Extractor,\n ExtractorConfig,\n ExtractorMessage,\n ExtractorResult,\n} from '@microsoft/api-extractor'\nimport fs from 'fs/promises'\nimport {mkdirp} from 'mkdirp'\nimport path from 'path'\nimport prettier from 'prettier'\n\nimport {BuildFile, PkgConfigOptions} from '../../core'\nimport {createApiExtractorConfig} from './createApiExtractorConfig'\nimport {createTSDocConfig} from './createTSDocConfig'\nimport {extractModuleBlocksFromTypes} from './extractModuleBlocks'\nimport {getExtractMessagesConfig} from './getExtractMessagesConfig'\n\nexport async function extractTypes(options: {\n customTags: NonNullable<PkgConfigOptions['extract']>['customTags']\n cwd: string\n distPath: string\n exportPath: string\n filePath: string\n files: BuildFile[]\n projectPath: string\n rules?: NonNullable<PkgConfigOptions['extract']>['rules']\n sourceTypesPath: string\n tmpPath: string\n tsconfigPath: string\n}): Promise<{extractorResult: ExtractorResult; messages: ExtractorMessage[]}> {\n const {\n customTags,\n distPath,\n exportPath,\n files,\n filePath,\n projectPath,\n rules,\n sourceTypesPath,\n tmpPath,\n tsconfigPath,\n } = options\n\n const tsdocConfigFile = await createTSDocConfig({\n customTags: customTags || [],\n })\n\n const extractorConfig: ExtractorConfig = ExtractorConfig.prepare({\n configObject: createApiExtractorConfig({\n distPath,\n exportPath,\n filePath,\n messages: getExtractMessagesConfig({rules}),\n projectFolder: projectPath,\n mainEntryPointFilePath: sourceTypesPath,\n tsconfigPath,\n }),\n configObjectFullPath: undefined,\n tsdocConfigFile,\n packageJsonFullPath: path.resolve(projectPath, 'package.json'),\n })\n\n const messages: ExtractorMessage[] = []\n\n // Invoke API Extractor\n const extractorResult = Extractor.invoke(extractorConfig, {\n // Equivalent to the \"--local\" command-line parameter\n localBuild: true,\n // Equivalent to the \"--verbose\" command-line parameter\n showVerboseMessages: true,\n // handle messages\n messageCallback(message: ExtractorMessage) {\n messages.push(message)\n message.handled = true\n },\n })\n\n const typesPath = path.resolve(distPath, filePath)\n const typesBuf = await fs.readFile(typesPath)\n const prettierConfig = await prettier.resolveConfig(typesPath)\n\n await mkdirp(path.dirname(typesPath))\n\n const moduleBlocks = await extractModuleBlocksFromTypes({\n extractResult: extractorResult,\n tsOutDir: tmpPath,\n })\n\n const code = [typesBuf.toString(), ...moduleBlocks].join('\\n\\n')\n\n await fs.writeFile(\n typesPath,\n await prettier.format(code, {\n ...prettierConfig,\n filepath: typesPath,\n }),\n )\n\n // Add to `files` in context\n files.push({\n type: 'types',\n path: typesPath,\n })\n\n return {extractorResult, messages}\n}\n"],"names":["extractTypes","options","customTags","distPath","exportPath","files","filePath","projectPath","rules","sourceTypesPath","tmpPath","tsconfigPath","tsdocConfigFile","createTSDocConfig","extractorConfig","ExtractorConfig","prepare","configObject","createApiExtractorConfig","messages","getExtractMessagesConfig","projectFolder","mainEntryPointFilePath","configObjectFullPath","packageJsonFullPath","path","resolve","extractorResult","Extractor","invoke","localBuild","showVerboseMessages","messageCallback","message","push","handled","typesPath","typesBuf","fs","readFile","prettierConfig","prettier","resolveConfig","mkdirp","dirname","moduleBlocks","extractModuleBlocksFromTypes","extractResult","tsOutDir","code","toString","join","writeFile","format","filepath","type"],"mappings":";;;;;;;;;AAiBA,eAAsBA,aAAaC,OAY2C,EAAA;EACtE,MAAA;IACJC,UAAA;IACAC,QAAA;IACAC,UAAA;IACAC,KAAA;IACAC,QAAA;IACAC,WAAA;IACAC,KAAA;IACAC,eAAA;IACAC,OAAA;IACAC;EACE,CAAA,GAAAV,OAAA;EAEE,MAAAW,eAAA,GAAkB,MAAMC,iBAAkB,CAAA;IAC9CX,UAAA,EAAYA,cAAc;EAAC,CAC5B,CAAA;EAEK,MAAAY,eAAA,GAAmCC,gBAAgBC,OAAQ,CAAA;IAC/DC,cAAcC,wBAAyB,CAAA;MACrCf,QAAA;MACAC,UAAA;MACAE,QAAA;MACAa,QAAU,EAAAC,wBAAA,CAAyB;QAACZ;OAAM,CAAA;MAC1Ca,aAAe,EAAAd,WAAA;MACfe,sBAAwB,EAAAb,eAAA;MACxBE;IAAA,CACD,CAAA;IACDY,oBAAsB,EAAA,KAAA,CAAA;IACtBX,eAAA;IACAY,mBAAqB,EAAAC,IAAA,CAAKC,OAAQ,CAAAnB,WAAA,EAAa,cAAc;EAAA,CAC9D,CAAA;EAED,MAAMY,WAA+B,EAAC;EAGhC,MAAAQ,eAAA,GAAkBC,SAAU,CAAAC,MAAA,CAAOf,eAAiB,EAAA;IAAA;IAExDgB,UAAY,EAAA,IAAA;IAAA;IAEZC,mBAAqB,EAAA,IAAA;IAAA;IAErBC,gBAAgBC,OAA2B,EAAA;MACzCd,QAAA,CAASe,KAAKD,OAAO,CAAA;MACrBA,OAAA,CAAQE,OAAU,GAAA,IAAA;IACpB;EAAA,CACD,CAAA;EAED,MAAMC,SAAY,GAAAX,IAAA,CAAKC,OAAQ,CAAAvB,QAAA,EAAUG,QAAQ,CAAA;EACjD,MAAM+B,QAAW,GAAA,MAAMC,EAAG,CAAAC,QAAA,CAASH,SAAS,CAAA;EAC5C,MAAMI,cAAiB,GAAA,MAAMC,QAAS,CAAAC,aAAA,CAAcN,SAAS,CAAA;EAE7D,MAAMO,MAAO,CAAAlB,IAAA,CAAKmB,OAAQ,CAAAR,SAAS,CAAC,CAAA;EAE9B,MAAAS,YAAA,GAAe,MAAMC,4BAA6B,CAAA;IACtDC,aAAe,EAAApB,eAAA;IACfqB,QAAU,EAAAtC;EAAA,CACX,CAAA;EAEK,MAAAuC,IAAA,GAAO,CAACZ,QAAS,CAAAa,QAAA,CAAA,GAAY,GAAGL,YAAY,CAAE,CAAAM,IAAA,CAAK,MAAM,CAAA;EAE/D,MAAMb,EAAG,CAAAc,SAAA,CACPhB,SAAA,EACA,MAAMK,QAAS,CAAAY,MAAA,CAAOJ,IAAM,EAAA;IAC1B,GAAGT,cAAA;IACHc,QAAU,EAAAlB;EAAA,CACX,CAAA,CACH;EAGA/B,KAAA,CAAM6B,IAAK,CAAA;IACTqB,IAAM,EAAA,OAAA;IACN9B,IAAM,EAAAW;EAAA,CACP,CAAA;EAEM,OAAA;IAACT;IAAiBR;GAAQ;AACnC;"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
const LOG_LEVELS = {
|
|
2
|
+
error: "error",
|
|
3
|
+
info: "info",
|
|
4
|
+
off: "none",
|
|
5
|
+
warn: "warning"
|
|
6
|
+
};
|
|
7
|
+
function getExtractMessagesConfig(options) {
|
|
8
|
+
const {
|
|
9
|
+
rules
|
|
10
|
+
} = options;
|
|
11
|
+
function ruleToLogLevel(key, defaultLevel) {
|
|
12
|
+
const r = rules == null ? void 0 : rules[key];
|
|
13
|
+
return r ? LOG_LEVELS[r] : defaultLevel || "warning";
|
|
14
|
+
}
|
|
15
|
+
return {
|
|
16
|
+
compilerMessageReporting: {
|
|
17
|
+
default: {
|
|
18
|
+
logLevel: "warning"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
extractorMessageReporting: {
|
|
22
|
+
default: {
|
|
23
|
+
logLevel: "warning",
|
|
24
|
+
addToApiReportFile: false
|
|
25
|
+
},
|
|
26
|
+
"ae-forgotten-export": {
|
|
27
|
+
logLevel: ruleToLogLevel("ae-forgotten-export", "error"),
|
|
28
|
+
addToApiReportFile: false
|
|
29
|
+
},
|
|
30
|
+
"ae-incompatible-release-tags": {
|
|
31
|
+
logLevel: ruleToLogLevel("ae-incompatible-release-tags", "error"),
|
|
32
|
+
addToApiReportFile: false
|
|
33
|
+
},
|
|
34
|
+
"ae-internal-missing-underscore": {
|
|
35
|
+
logLevel: ruleToLogLevel("ae-internal-missing-underscore"),
|
|
36
|
+
addToApiReportFile: false
|
|
37
|
+
},
|
|
38
|
+
"ae-missing-release-tag": {
|
|
39
|
+
logLevel: ruleToLogLevel("ae-missing-release-tag", "error"),
|
|
40
|
+
addToApiReportFile: false
|
|
41
|
+
},
|
|
42
|
+
"ae-wrong-input-file-type": {
|
|
43
|
+
logLevel: "none",
|
|
44
|
+
addToApiReportFile: false
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
tsdocMessageReporting: {
|
|
48
|
+
default: {
|
|
49
|
+
logLevel: "warning",
|
|
50
|
+
addToApiReportFile: false
|
|
51
|
+
},
|
|
52
|
+
"tsdoc-link-tag-unescaped-text": {
|
|
53
|
+
logLevel: ruleToLogLevel("tsdoc-link-tag-unescaped-text", "warning"),
|
|
54
|
+
addToApiReportFile: false
|
|
55
|
+
},
|
|
56
|
+
"tsdoc-undefined-tag": {
|
|
57
|
+
logLevel: ruleToLogLevel("tsdoc-undefined-tag", "error"),
|
|
58
|
+
addToApiReportFile: false
|
|
59
|
+
},
|
|
60
|
+
"tsdoc-unsupported-tag": {
|
|
61
|
+
logLevel: ruleToLogLevel("tsdoc-unsupported-tag", "none"),
|
|
62
|
+
addToApiReportFile: false
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
export { getExtractMessagesConfig };
|
|
68
|
+
//# sourceMappingURL=getExtractMessagesConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getExtractMessagesConfig.js","sources":["../../../src/node/tasks/dts/getExtractMessagesConfig.ts"],"sourcesContent":["import {ExtractorLogLevel, IExtractorMessagesConfig} from '@microsoft/api-extractor'\n\nimport {PkgConfigOptions, PkgRuleLevel} from '../../core'\n\nconst LOG_LEVELS: Record<PkgRuleLevel, ExtractorLogLevel> = {\n error: 'error' as ExtractorLogLevel.Error,\n info: 'info' as ExtractorLogLevel.Info,\n off: 'none' as ExtractorLogLevel.None,\n warn: 'warning' as ExtractorLogLevel.Warning,\n}\n\n/** @internal */\nexport function getExtractMessagesConfig(options: {\n rules: NonNullable<PkgConfigOptions['extract']>['rules']\n}): IExtractorMessagesConfig {\n const {rules} = options\n\n function ruleToLogLevel(\n key: keyof NonNullable<NonNullable<PkgConfigOptions['extract']>['rules']>,\n defaultLevel?: ExtractorLogLevel,\n ) {\n const r = rules?.[key]\n\n return (r ? LOG_LEVELS[r] : defaultLevel || 'warning') as ExtractorLogLevel\n }\n\n return {\n compilerMessageReporting: {\n default: {\n logLevel: 'warning' as ExtractorLogLevel,\n },\n },\n\n extractorMessageReporting: {\n default: {\n logLevel: 'warning' as ExtractorLogLevel,\n addToApiReportFile: false,\n },\n\n 'ae-forgotten-export': {\n logLevel: ruleToLogLevel('ae-forgotten-export', 'error' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'ae-incompatible-release-tags': {\n logLevel: ruleToLogLevel('ae-incompatible-release-tags', 'error' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'ae-internal-missing-underscore': {\n logLevel: ruleToLogLevel('ae-internal-missing-underscore'),\n addToApiReportFile: false,\n },\n\n 'ae-missing-release-tag': {\n logLevel: ruleToLogLevel('ae-missing-release-tag', 'error' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'ae-wrong-input-file-type': {\n logLevel: 'none' as ExtractorLogLevel,\n addToApiReportFile: false,\n },\n },\n\n tsdocMessageReporting: {\n default: {\n logLevel: 'warning' as ExtractorLogLevel,\n addToApiReportFile: false,\n },\n\n 'tsdoc-link-tag-unescaped-text': {\n logLevel: ruleToLogLevel('tsdoc-link-tag-unescaped-text', 'warning' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'tsdoc-undefined-tag': {\n logLevel: ruleToLogLevel('tsdoc-undefined-tag', 'error' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n\n 'tsdoc-unsupported-tag': {\n logLevel: ruleToLogLevel('tsdoc-unsupported-tag', 'none' as ExtractorLogLevel),\n addToApiReportFile: false,\n },\n },\n }\n}\n"],"names":["LOG_LEVELS","error","info","off","warn","getExtractMessagesConfig","options","rules","ruleToLogLevel","key","defaultLevel","r","compilerMessageReporting","default","logLevel","extractorMessageReporting","addToApiReportFile","tsdocMessageReporting"],"mappings":"AAIA,MAAMA,UAAsD,GAAA;EAC1DC,KAAO,EAAA,OAAA;EACPC,IAAM,EAAA,MAAA;EACNC,GAAK,EAAA,MAAA;EACLC,IAAM,EAAA;AACR,CAAA;AAGO,SAASC,yBAAyBC,OAEZ,EAAA;EACrB,MAAA;IAACC;EAAS,CAAA,GAAAD,OAAA;EAEP,SAAAE,cAAAA,CACPC,KACAC,YACA,EAAA;IACA,MAAMC,IAAIJ,KAAQ,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,KAAA,CAAAE,GAAA,CAAA;IAElB,OAAQE,CAAI,GAAAX,UAAA,CAAWW,CAAC,CAAA,GAAID,YAAgB,IAAA,SAAA;EAC9C;EAEO,OAAA;IACLE,wBAA0B,EAAA;MACxBC,OAAS,EAAA;QACPC,QAAU,EAAA;MACZ;IACF,CAAA;IAEAC,yBAA2B,EAAA;MACzBF,OAAS,EAAA;QACPC,QAAU,EAAA,SAAA;QACVE,kBAAoB,EAAA;MACtB,CAAA;MAEA,qBAAuB,EAAA;QACrBF,QAAA,EAAUN,cAAe,CAAA,qBAAA,EAAuB,OAA4B,CAAA;QAC5EQ,kBAAoB,EAAA;MACtB,CAAA;MAEA,8BAAgC,EAAA;QAC9BF,QAAA,EAAUN,cAAe,CAAA,8BAAA,EAAgC,OAA4B,CAAA;QACrFQ,kBAAoB,EAAA;MACtB,CAAA;MAEA,gCAAkC,EAAA;QAChCF,QAAA,EAAUN,eAAe,gCAAgC,CAAA;QACzDQ,kBAAoB,EAAA;MACtB,CAAA;MAEA,wBAA0B,EAAA;QACxBF,QAAA,EAAUN,cAAe,CAAA,wBAAA,EAA0B,OAA4B,CAAA;QAC/EQ,kBAAoB,EAAA;MACtB,CAAA;MAEA,0BAA4B,EAAA;QAC1BF,QAAU,EAAA,MAAA;QACVE,kBAAoB,EAAA;MACtB;IACF,CAAA;IAEAC,qBAAuB,EAAA;MACrBJ,OAAS,EAAA;QACPC,QAAU,EAAA,SAAA;QACVE,kBAAoB,EAAA;MACtB,CAAA;MAEA,+BAAiC,EAAA;QAC/BF,QAAA,EAAUN,cAAe,CAAA,+BAAA,EAAiC,SAA8B,CAAA;QACxFQ,kBAAoB,EAAA;MACtB,CAAA;MAEA,qBAAuB,EAAA;QACrBF,QAAA,EAAUN,cAAe,CAAA,qBAAA,EAAuB,OAA4B,CAAA;QAC5EQ,kBAAoB,EAAA;MACtB,CAAA;MAEA,uBAAyB,EAAA;QACvBF,QAAA,EAAUN,cAAe,CAAA,uBAAA,EAAyB,MAA2B,CAAA;QAC7EQ,kBAAoB,EAAA;MACtB;IACF;EAAA,CACF;AACF;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import ts from 'typescript';
|
|
4
|
+
function printDiagnostic(options) {
|
|
5
|
+
const {
|
|
6
|
+
cwd,
|
|
7
|
+
logger,
|
|
8
|
+
diagnostic
|
|
9
|
+
} = options;
|
|
10
|
+
if (diagnostic.file && diagnostic.start) {
|
|
11
|
+
const {
|
|
12
|
+
line,
|
|
13
|
+
character
|
|
14
|
+
} = ts.getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start);
|
|
15
|
+
const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n");
|
|
16
|
+
const file = path.relative(cwd, diagnostic.file.fileName);
|
|
17
|
+
const output = ["".concat(chalk.yellow(file), ":").concat(chalk.blue(line + 1), ":").concat(chalk.blue(character + 1), " - "), "".concat(chalk.gray("TS".concat(diagnostic.code, ":")), " ").concat(message)].join("");
|
|
18
|
+
if (diagnostic.category === ts.DiagnosticCategory.Error) {
|
|
19
|
+
logger.error(output);
|
|
20
|
+
}
|
|
21
|
+
if (diagnostic.category === ts.DiagnosticCategory.Warning) {
|
|
22
|
+
logger.warn(output);
|
|
23
|
+
}
|
|
24
|
+
if (diagnostic.category === ts.DiagnosticCategory.Message) {
|
|
25
|
+
logger.log(output);
|
|
26
|
+
}
|
|
27
|
+
if (diagnostic.category === ts.DiagnosticCategory.Suggestion) {
|
|
28
|
+
logger.log(output);
|
|
29
|
+
}
|
|
30
|
+
} else {
|
|
31
|
+
logger.log(ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n"));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export { printDiagnostic };
|
|
35
|
+
//# sourceMappingURL=printDiagnostic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"printDiagnostic.js","sources":["../../../src/node/tasks/dts/printDiagnostic.ts"],"sourcesContent":["import chalk from 'chalk'\nimport path from 'path'\nimport ts from 'typescript'\n\nimport {Logger} from '../../logger'\n\nexport function printDiagnostic(options: {\n cwd: string\n logger: Logger\n diagnostic: ts.Diagnostic\n}): void {\n const {cwd, logger, diagnostic} = options\n\n if (diagnostic.file && diagnostic.start) {\n const {line, character} = ts.getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start)\n const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\\n')\n\n const file = path.relative(cwd, diagnostic.file.fileName)\n\n const output = [\n `${chalk.yellow(file)}:${chalk.blue(line + 1)}:${chalk.blue(character + 1)} - `,\n `${chalk.gray(`TS${diagnostic.code}:`)} ${message}`,\n ].join('')\n\n if (diagnostic.category === ts.DiagnosticCategory.Error) {\n logger.error(output)\n }\n\n if (diagnostic.category === ts.DiagnosticCategory.Warning) {\n logger.warn(output)\n }\n\n if (diagnostic.category === ts.DiagnosticCategory.Message) {\n logger.log(output)\n }\n\n if (diagnostic.category === ts.DiagnosticCategory.Suggestion) {\n logger.log(output)\n }\n } else {\n logger.log(ts.flattenDiagnosticMessageText(diagnostic.messageText, '\\n'))\n }\n}\n"],"names":["printDiagnostic","options","cwd","logger","diagnostic","file","start","line","character","ts","getLineAndCharacterOfPosition","message","flattenDiagnosticMessageText","messageText","path","relative","fileName","output","concat","chalk","yellow","blue","gray","code","join","category","DiagnosticCategory","Error","error","Warning","warn","Message","log","Suggestion"],"mappings":";;;AAMO,SAASA,gBAAgBC,OAIvB,EAAA;EACP,MAAM;IAACC,GAAA;IAAKC,MAAQ;IAAAC;EAAA,CAAc,GAAAH,OAAA;EAE9B,IAAAG,UAAA,CAAWC,IAAQ,IAAAD,UAAA,CAAWE,KAAO,EAAA;IACjC,MAAA;MAACC;MAAMC;IAAS,CAAA,GAAIC,GAAGC,6BAA8B,CAAAN,UAAA,CAAWC,IAAM,EAAAD,UAAA,CAAWE,KAAK,CAAA;IAC5F,MAAMK,OAAU,GAAAF,EAAA,CAAGG,4BAA6B,CAAAR,UAAA,CAAWS,aAAa,IAAI,CAAA;IAE5E,MAAMR,OAAOS,IAAK,CAAAC,QAAA,CAASb,GAAK,EAAAE,UAAA,CAAWC,KAAKW,QAAQ,CAAA;IAExD,MAAMC,MAAS,GAAA,IAAAC,MAAA,CACVC,KAAM,CAAAC,MAAA,CAAOf,IAAI,CAAC,OAAAa,MAAA,CAAIC,KAAM,CAAAE,IAAA,CAAKd,IAAO,GAAA,CAAC,CAAC,OAAAW,MAAA,CAAIC,KAAA,CAAME,IAAK,CAAAb,SAAA,GAAY,CAAC,CAAC,aAAAU,MAAA,CACvEC,MAAMG,IAAK,MAAAJ,MAAA,CAAKd,WAAWmB,IAAI,MAAG,CAAC,OAAAL,MAAA,CAAIP,OAAO,EACnD,CAAEa,KAAK,EAAE,CAAA;IAET,IAAIpB,UAAW,CAAAqB,QAAA,KAAahB,EAAG,CAAAiB,kBAAA,CAAmBC,KAAO,EAAA;MACvDxB,MAAA,CAAOyB,MAAMX,MAAM,CAAA;IACrB;IAEA,IAAIb,UAAW,CAAAqB,QAAA,KAAahB,EAAG,CAAAiB,kBAAA,CAAmBG,OAAS,EAAA;MACzD1B,MAAA,CAAO2B,KAAKb,MAAM,CAAA;IACpB;IAEA,IAAIb,UAAW,CAAAqB,QAAA,KAAahB,EAAG,CAAAiB,kBAAA,CAAmBK,OAAS,EAAA;MACzD5B,MAAA,CAAO6B,IAAIf,MAAM,CAAA;IACnB;IAEA,IAAIb,UAAW,CAAAqB,QAAA,KAAahB,EAAG,CAAAiB,kBAAA,CAAmBO,UAAY,EAAA;MAC5D9B,MAAA,CAAO6B,IAAIf,MAAM,CAAA;IACnB;EAAA,CACK,MAAA;IACLd,MAAA,CAAO6B,IAAIvB,EAAG,CAAAG,4BAAA,CAA6BR,UAAW,CAAAS,WAAA,EAAa,IAAI,CAAC,CAAA;EAC1E;AACF;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { dtsTask } from './dts/dtsTask.js';
|
|
2
|
+
import { dtsWatchTask } from './dts/dtsWatchTask.js';
|
|
3
|
+
import { nodeReexportCjsTask } from './node/reexportCjsTask.js';
|
|
4
|
+
import { rollupTask } from './rollup/rollupTask.js';
|
|
5
|
+
import { rollupWatchTask } from './rollup/rollupWatchTask.js';
|
|
6
|
+
const buildTaskHandlers = {
|
|
7
|
+
"build:dts": dtsTask,
|
|
8
|
+
"build:js": rollupTask,
|
|
9
|
+
"node:reexport-cjs": nodeReexportCjsTask
|
|
10
|
+
};
|
|
11
|
+
const watchTaskHandlers = {
|
|
12
|
+
"watch:dts": dtsWatchTask,
|
|
13
|
+
"watch:js": rollupWatchTask
|
|
14
|
+
};
|
|
15
|
+
export { buildTaskHandlers, dtsTask, dtsWatchTask, rollupTask, rollupWatchTask, watchTaskHandlers };
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/node/tasks/index.ts"],"sourcesContent":["import {dtsTask, dtsWatchTask} from './dts'\nimport {nodeReexportCjsTask} from './node/reexportCjsTask'\nimport {rollupTask, rollupWatchTask} from './rollup'\nimport {BuildTaskHandlers, WatchTaskHandlers} from './types'\n\nexport * from './dts'\nexport * from './rollup'\nexport * from './types'\n\n/** @internal */\nexport const buildTaskHandlers: BuildTaskHandlers = {\n 'build:dts': dtsTask,\n 'build:js': rollupTask,\n 'node:reexport-cjs': nodeReexportCjsTask,\n}\n\n/** @internal */\nexport const watchTaskHandlers: WatchTaskHandlers = {\n 'watch:dts': dtsWatchTask,\n 'watch:js': rollupWatchTask,\n}\n"],"names":["buildTaskHandlers","dtsTask","rollupTask","nodeReexportCjsTask","watchTaskHandlers","dtsWatchTask","rollupWatchTask"],"mappings":";;;;;AAUO,MAAMA,iBAAuC,GAAA;EAClD,WAAa,EAAAC,OAAA;EACb,UAAY,EAAAC,UAAA;EACZ,mBAAqB,EAAAC;AACvB,CAAA;AAGO,MAAMC,iBAAuC,GAAA;EAClD,WAAa,EAAAC,YAAA;EACb,UAAY,EAAAC;AACd,CAAA;"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { writeFile } from 'fs/promises';
|
|
3
|
+
import { mkdirp } from 'mkdirp';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import { from } from 'rxjs';
|
|
6
|
+
const nodeReexportCjsTask = {
|
|
7
|
+
name: (_ctx, task) => ["Re-export CommonJS module in ESM wrapper\u2026", " entries:", ...task.entries.map(entry => [" - ".concat(chalk.cyan(entry.importId), ": "), "".concat(chalk.yellow(entry.require), " ").concat(chalk.gray("\u2192"), " ").concat(chalk.yellow(entry.import))].join(""))].join("\n"),
|
|
8
|
+
exec: (ctx, task) => {
|
|
9
|
+
return from(exec(ctx, task));
|
|
10
|
+
},
|
|
11
|
+
complete: () => {},
|
|
12
|
+
error: (_ctx, _task, err) => {
|
|
13
|
+
console.error(err);
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
async function exec(ctx, task) {
|
|
17
|
+
const {
|
|
18
|
+
cwd
|
|
19
|
+
} = ctx;
|
|
20
|
+
for (const entry of task.entries) {
|
|
21
|
+
const sourcePath = path.resolve(cwd, entry.require);
|
|
22
|
+
const targetPath = path.resolve(cwd, entry.import);
|
|
23
|
+
const targetDir = path.dirname(targetPath);
|
|
24
|
+
await mkdirp(targetDir);
|
|
25
|
+
const mod = require(sourcePath);
|
|
26
|
+
let relativeImport = "./".concat(path.relative(targetDir, sourcePath));
|
|
27
|
+
if (relativeImport.startsWith("./.")) {
|
|
28
|
+
relativeImport = relativeImport.slice(2);
|
|
29
|
+
}
|
|
30
|
+
const code = compileESMWrapper(mod, relativeImport);
|
|
31
|
+
await writeFile(targetPath, code, "utf8");
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function compileESMWrapper(mod, relativeImport) {
|
|
35
|
+
const keys = Object.keys(mod).filter(k => k !== "__esModule");
|
|
36
|
+
let code = "import cjs from '".concat(relativeImport, "';\n");
|
|
37
|
+
if (keys.length) {
|
|
38
|
+
code += "\n";
|
|
39
|
+
code += keys.filter(k => mod.__esModule ? k !== "default" : true).map(k => "export const ".concat(k, " = cjs.").concat(k, ";\n")).join("");
|
|
40
|
+
}
|
|
41
|
+
code += "\n";
|
|
42
|
+
if (mod.__esModule) {
|
|
43
|
+
if ("default" in mod) {
|
|
44
|
+
code += "export default cjs.default;\n";
|
|
45
|
+
}
|
|
46
|
+
} else {
|
|
47
|
+
code += "export default cjs;\n";
|
|
48
|
+
}
|
|
49
|
+
return code;
|
|
50
|
+
}
|
|
51
|
+
export { nodeReexportCjsTask };
|
|
52
|
+
//# sourceMappingURL=reexportCjsTask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reexportCjsTask.js","sources":["../../../src/node/tasks/node/reexportCjsTask.ts"],"sourcesContent":["import chalk from 'chalk'\nimport {writeFile} from 'fs/promises'\nimport {mkdirp} from 'mkdirp'\nimport path from 'path'\nimport {from} from 'rxjs'\n\nimport {BuildContext} from '../../core'\nimport {NodeReExportFromCJSTask, TaskHandler} from '../types'\n\n/** @internal */\nexport const nodeReexportCjsTask: TaskHandler<NodeReExportFromCJSTask> = {\n name: (_ctx, task) =>\n [\n `Re-export CommonJS module in ESM wrapper…`,\n ` entries:`,\n ...task.entries.map((entry) =>\n [\n ` - ${chalk.cyan(entry.importId)}: `,\n `${chalk.yellow(entry.require)} ${chalk.gray('→')} ${chalk.yellow(entry.import)}`,\n ].join(''),\n ),\n ].join('\\n'),\n exec: (ctx, task) => {\n return from(exec(ctx, task))\n },\n complete: () => {\n //\n },\n error: (_ctx, _task, err) => {\n // eslint-disable-next-line no-console\n console.error(err)\n },\n}\n\nasync function exec(ctx: BuildContext, task: NodeReExportFromCJSTask) {\n const {cwd} = ctx\n\n for (const entry of task.entries) {\n const sourcePath = path.resolve(cwd, entry.require)\n const targetPath = path.resolve(cwd, entry.import)\n const targetDir = path.dirname(targetPath)\n\n await mkdirp(targetDir)\n\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const mod = require(sourcePath)\n\n let relativeImport = `./${path.relative(targetDir, sourcePath)}`\n\n // Strip leading \"./\" from relative import\n if (relativeImport.startsWith('./.')) {\n relativeImport = relativeImport.slice(2)\n }\n\n const code = compileESMWrapper(mod, relativeImport)\n\n await writeFile(targetPath, code, 'utf8')\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction compileESMWrapper(mod: any, relativeImport: string) {\n const keys = Object.keys(mod).filter((k) => k !== '__esModule')\n\n let code = `import cjs from '${relativeImport}';\\n`\n\n if (keys.length) {\n code += `\\n`\n code += keys\n .filter((k) => (mod.__esModule ? k !== 'default' : true))\n .map((k) => `export const ${k} = cjs.${k};\\n`)\n .join('')\n }\n\n code += `\\n`\n\n if (mod.__esModule) {\n // If there is no default export, we shouldn't add it as it'll be undefined\n if ('default' in mod) {\n code += `export default cjs.default;\\n`\n }\n } else {\n code += `export default cjs;\\n`\n }\n\n return code\n}\n"],"names":["nodeReexportCjsTask","name","_ctx","task","entries","map","entry","concat","chalk","cyan","importId","yellow","require","gray","import","join","exec","ctx","from","complete","error","_task","err","console","cwd","sourcePath","path","resolve","targetPath","targetDir","dirname","mkdirp","mod","relativeImport","relative","startsWith","slice","code","compileESMWrapper","writeFile","keys","Object","filter","k","length","__esModule"],"mappings":";;;;;AAUO,MAAMA,mBAA4D,GAAA;EACvEC,IAAA,EAAMA,CAACC,IAAA,EAAMC,IACX,KAAA,iEAGE,GAAGA,KAAKC,OAAQ,CAAAC,GAAA,CAAKC,KACnB,IAAA,UAAAC,MAAA,CACWC,KAAA,CAAMC,IAAK,CAAAH,KAAA,CAAMI,QAAQ,CAAC,YAAAH,MAAA,CAChCC,KAAM,CAAAG,MAAA,CAAOL,KAAM,CAAAM,OAAO,CAAC,OAAAL,MAAA,CAAIC,KAAA,CAAMK,IAAK,CAAA,QAAG,CAAC,OAAAN,MAAA,CAAIC,KAAA,CAAMG,MAAO,CAAAL,KAAA,CAAMQ,MAAM,CAAC,EACjF,CAAEC,KAAK,EAAE,CACX,CAAA,CACF,CAAEA,KAAK,IAAI,CAAA;EACbC,IAAA,EAAMA,CAACC,GAAA,EAAKd,IAAS,KAAA;IACnB,OAAOe,IAAK,CAAAF,IAAA,CAAKC,GAAK,EAAAd,IAAI,CAAC,CAAA;EAC7B,CAAA;EACAgB,UAAUA,CAAA,KAAM,CAEhB,CAAA;EACAC,KAAO,EAAAA,CAAClB,IAAM,EAAAmB,KAAA,EAAOC,GAAQ,KAAA;IAE3BC,OAAA,CAAQH,MAAME,GAAG,CAAA;EACnB;AACF,CAAA;AAEA,eAAeN,IAAAA,CAAKC,KAAmBd,IAA+B,EAAA;EAC9D,MAAA;IAACqB;EAAO,CAAA,GAAAP,GAAA;EAEH,KAAA,MAAAX,KAAA,IAASH,KAAKC,OAAS,EAAA;IAChC,MAAMqB,UAAa,GAAAC,IAAA,CAAKC,OAAQ,CAAAH,GAAA,EAAKlB,MAAMM,OAAO,CAAA;IAClD,MAAMgB,UAAa,GAAAF,IAAA,CAAKC,OAAQ,CAAAH,GAAA,EAAKlB,MAAMQ,MAAM,CAAA;IAC3C,MAAAe,SAAA,GAAYH,IAAK,CAAAI,OAAA,CAAQF,UAAU,CAAA;IAEzC,MAAMG,OAAOF,SAAS,CAAA;IAGhB,MAAAG,GAAA,GAAMpB,QAAQa,UAAU,CAAA;IAE9B,IAAIQ,6BAAsBP,IAAA,CAAKQ,QAAS,CAAAL,SAAA,EAAWJ,UAAU,CAAC,CAAA;IAG1D,IAAAQ,cAAA,CAAeE,UAAW,CAAA,KAAK,CAAG,EAAA;MACnBF,cAAA,GAAAA,cAAA,CAAeG,MAAM,CAAC,CAAA;IACzC;IAEM,MAAAC,IAAA,GAAOC,iBAAkB,CAAAN,GAAA,EAAKC,cAAc,CAAA;IAE5C,MAAAM,SAAA,CAAUX,UAAY,EAAAS,IAAA,EAAM,MAAM,CAAA;EAC1C;AACF;AAGA,SAASC,iBAAAA,CAAkBN,KAAUC,cAAwB,EAAA;EACrD,MAAAO,IAAA,GAAOC,OAAOD,IAAK,CAAAR,GAAG,EAAEU,MAAO,CAACC,CAAM,IAAAA,CAAA,KAAM,YAAY,CAAA;EAE1D,IAAAN,IAAA,uBAAA9B,MAAA,CAA2B0B,cAAc,SAAA;EAE7C,IAAIO,KAAKI,MAAQ,EAAA;IACPP,IAAA,QAAA;IACRA,IAAA,IAAQG,KACLE,MAAO,CAACC,CAAO,IAAAX,GAAA,CAAIa,aAAaF,CAAM,KAAA,SAAA,GAAY,IAAK,CAAA,CACvDtC,IAAKsC,CAAA,oBAAApC,MAAA,CAAsBoC,CAAC,aAAApC,MAAA,CAAUoC,CAAC,QAAK,CAAA,CAC5C5B,KAAK,EAAE,CAAA;EACZ;EAEQsB,IAAA,QAAA;EAER,IAAIL,IAAIa,UAAY,EAAA;IAElB,IAAI,aAAab,GAAK,EAAA;MACZK,IAAA,mCAAA;IACV;EAAA,CACK,MAAA;IACGA,IAAA,2BAAA;EACV;EAEO,OAAAA,IAAA;AACT;"}
|