diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000..3db32b4d --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,17 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "plugin-declaration-generator Test", + "runtimeExecutable": "/Users/moonrailgun/.nvm/versions/node/v16.13.1/bin/node", + "type": "node", + "request": "launch", + "program": "${workspaceRoot}/packages/plugin-declaration-generator/node_modules/ts-node/dist/bin.js", + "args": [ + "${workspaceRoot}/packages/plugin-declaration-generator/test/index.ts" + ], + "cwd": "${workspaceRoot}/packages/plugin-declaration-generator", + "protocol": "inspector" + } + ] +} diff --git a/packages/plugin-declaration-generator/package.json b/packages/plugin-declaration-generator/package.json index 648d4d73..6474dcf9 100644 --- a/packages/plugin-declaration-generator/package.json +++ b/packages/plugin-declaration-generator/package.json @@ -8,19 +8,23 @@ "build": "tsc", "watch": "tsc --watch", "prepare": "tsc", - "test": "echo \"Error: no test specified\" && exit 1" + "test": "ts-node ./test/index.ts" }, "author": "", "license": "MIT", - "devDependencies": { - "typescript": "^4.5.2" - }, "dependencies": { "@babel/generator": "^7.17.7", "@babel/parser": "^7.17.7", "@babel/template": "^7.16.7", "@babel/traverse": "^7.17.3", "fs-extra": "^10.0.0", - "lodash": "^4.17.21" + "glob": "^7.2.0", + "lodash": "^4.17.21", + "mkdirp": "^1.0.4", + "typescript": "^4.5.2" + }, + "devDependencies": { + "@types/mkdirp": "^1.0.2", + "ts-node": "^10.0.0" } } diff --git a/packages/plugin-declaration-generator/src/tsgenerator.ts b/packages/plugin-declaration-generator/src/tsgenerator.ts new file mode 100644 index 00000000..2b746c71 --- /dev/null +++ b/packages/plugin-declaration-generator/src/tsgenerator.ts @@ -0,0 +1,53 @@ +import ts from 'typescript'; +import fs from 'fs-extra'; + +/** + * 解析文件 + */ +export function parseFile(filePath: string, options: ts.CompilerOptions) { + const host = new FileServiceHost(filePath, options); + + const service = ts.createLanguageService(host, ts.createDocumentRegistry()); + const program = service.getProgram(); + + const exportModules: string[] = []; + program?.getSourceFile(filePath)?.forEachChild((node) => { + if (ts.isExportDeclaration(node)) { + node.exportClause?.forEachChild((exportSpec) => { + if (ts.isExportSpecifier(exportSpec)) { + exportModules.push(exportSpec.name.text); + } + }); + } + }); + + return { exportModules }; +} + +class FileServiceHost implements ts.LanguageServiceHost { + constructor(public filePath: string, private options: ts.CompilerOptions) {} + + getCompilationSettings = () => this.options; + getScriptFileNames = () => [ + this.filePath, + // '/Users/moonrailgun/inventory/tailchat/packages/plugin-declaration-generator/test/demo/foo.ts', + ]; + getScriptVersion = () => '1'; + getScriptSnapshot = (fileName: string) => { + if (!fs.existsSync(fileName)) { + return undefined; + } + + return ts.ScriptSnapshot.fromString(fs.readFileSync(fileName).toString()); + }; + getCurrentDirectory = () => ''; + getDefaultLibFileName = (options: ts.CompilerOptions) => + ts.getDefaultLibFilePath(options); + + readFile(path: string): string | undefined { + return fs.readFileSync(path).toString(); + } + fileExists(path: string): boolean { + return fs.existsSync(path); + } +} diff --git a/packages/plugin-declaration-generator/test/demo/bar.ts b/packages/plugin-declaration-generator/test/demo/bar.ts new file mode 100644 index 00000000..5c5ec3db --- /dev/null +++ b/packages/plugin-declaration-generator/test/demo/bar.ts @@ -0,0 +1,6 @@ +/** + * This is bar + */ +export function bar() { + console.log('Anything else'); +} diff --git a/packages/plugin-declaration-generator/test/demo/foo.ts b/packages/plugin-declaration-generator/test/demo/foo.ts new file mode 100644 index 00000000..1ed7bf9f --- /dev/null +++ b/packages/plugin-declaration-generator/test/demo/foo.ts @@ -0,0 +1,9 @@ +import * as mkdirp from 'mkdirp'; + +/** + * This is foo + */ +export function foo() { + console.log('Anything'); + mkdirp('./foo/foo/foo/foo/foo/foo/foo'); +} diff --git a/packages/plugin-declaration-generator/test/demo/index.ts b/packages/plugin-declaration-generator/test/demo/index.ts new file mode 100644 index 00000000..d5c9e72a --- /dev/null +++ b/packages/plugin-declaration-generator/test/demo/index.ts @@ -0,0 +1,2 @@ +export { foo } from '@/foo'; +export { bar } from '@/bar'; diff --git a/packages/plugin-declaration-generator/test/demo/tsconfig.json b/packages/plugin-declaration-generator/test/demo/tsconfig.json new file mode 100644 index 00000000..a78e01a8 --- /dev/null +++ b/packages/plugin-declaration-generator/test/demo/tsconfig.json @@ -0,0 +1,7 @@ +{ + "compilerOptions": { + "paths": { + "@/*": ["./*"], + } + } +} diff --git a/packages/plugin-declaration-generator/test/index.ts b/packages/plugin-declaration-generator/test/index.ts new file mode 100644 index 00000000..89f01bbd --- /dev/null +++ b/packages/plugin-declaration-generator/test/index.ts @@ -0,0 +1,11 @@ +import { parseFile } from '../src/tsgenerator'; +import path from 'path'; + +const { exportModules } = parseFile( + path.resolve(__dirname, './demo/index.ts'), + { + paths: { '@/*': ['./*'] }, + } +); + +console.log(exportModules); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3b966055..65de4dac 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -59,8 +59,12 @@ importers: '@babel/parser': ^7.17.7 '@babel/template': ^7.16.7 '@babel/traverse': ^7.17.3 + '@types/mkdirp': ^1.0.2 fs-extra: ^10.0.0 + glob: ^7.2.0 lodash: ^4.17.21 + mkdirp: ^1.0.4 + ts-node: ^10.0.0 typescript: ^4.5.2 dependencies: '@babel/generator': 7.17.7 @@ -68,9 +72,13 @@ importers: '@babel/template': 7.16.7 '@babel/traverse': 7.17.3 fs-extra: 10.0.1 + glob: 7.2.0 lodash: 4.17.21 - devDependencies: + mkdirp: 1.0.4 typescript: 4.5.4 + devDependencies: + '@types/mkdirp': 1.0.2 + ts-node: 10.4.0_typescript@4.5.4 shared: specifiers: @@ -1841,11 +1849,16 @@ packages: chalk: 4.1.2 dev: true + /@cspotcode/source-map-consumer/0.8.0: + resolution: {integrity: sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==} + engines: {node: '>= 12'} + dev: true + /@cspotcode/source-map-support/0.7.0: - resolution: {integrity: sha1-R4mECqhZ5G0vMXNyercHxmvzRPU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@cspotcode/source-map-support/download/@cspotcode/source-map-support-0.7.0.tgz} + resolution: {integrity: sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==} engines: {node: '>=12'} dependencies: - '@cspotcode/source-map-consumer': registry.nlark.com/@cspotcode/source-map-consumer/0.8.0 + '@cspotcode/source-map-consumer': 0.8.0 dev: true /@discoveryjs/json-ext/0.5.6: @@ -2336,6 +2349,22 @@ packages: opencollective-postinstall: 2.0.3 dev: false + /@tsconfig/node10/1.0.8: + resolution: {integrity: sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==} + dev: true + + /@tsconfig/node12/1.0.9: + resolution: {integrity: sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==} + dev: true + + /@tsconfig/node14/1.0.1: + resolution: {integrity: sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==} + dev: true + + /@tsconfig/node16/1.0.2: + resolution: {integrity: sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==} + dev: true + /@types/aria-query/4.2.2: resolution: {integrity: sha1-7U4K2SMGpwT5+xMqDPz3dIbb4rw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@types/aria-query/download/@types/aria-query-4.2.2.tgz} dev: true @@ -2591,12 +2620,18 @@ packages: resolution: {integrity: sha1-7nceK6Sz3Fs3KTXVSf2WF780W4w=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@types/minimist/download/@types/minimist-1.2.2.tgz} dev: true + /@types/mkdirp/1.0.2: + resolution: {integrity: sha512-o0K1tSO0Dx5X6xlU5F1D6625FawhC3dU3iqr25lluNv/+/QIVH8RLNEiVokgIZo+mz+87w/3Mkg/VvQS+J51fQ==} + dependencies: + '@types/node': 17.0.4 + dev: true + /@types/node/15.14.9: resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@types/node/download/@types/node-15.14.9.tgz} dev: true /@types/node/17.0.4: - resolution: {integrity: sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@types/node/download/@types/node-17.0.4.tgz} + resolution: {integrity: sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==} /@types/normalize-package-data/2.4.1: resolution: {integrity: sha1-0zV0eaD9/dWQf+Z+F+CoXJBuEwE=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@types/normalize-package-data/download/@types/normalize-package-data-2.4.1.tgz} @@ -3061,6 +3096,11 @@ packages: acorn-private-class-elements: 0.2.7_acorn@8.6.0 dev: true + /acorn-walk/8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + engines: {node: '>=0.4.0'} + dev: true + /acorn/7.4.1: resolution: {integrity: sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1637225763269&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Facorn%2Fdownload%2Facorn-7.4.1.tgz} engines: {node: '>=0.4.0'} @@ -3208,7 +3248,7 @@ packages: dev: true /arg/4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/arg/download/arg-4.1.3.tgz} + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} dev: true /arg/5.0.1: @@ -3406,7 +3446,6 @@ packages: /balanced-match/1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true /base64-arraybuffer/1.0.1: resolution: {integrity: sha1-h70TUlYm20qYOOAKUIwrc+/PNIw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/base64-arraybuffer/download/base64-arraybuffer-1.0.1.tgz} @@ -3447,7 +3486,6 @@ packages: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - dev: true /broadcast-channel/3.7.0: resolution: {integrity: sha1-Lfpce0KJVHrD9nBfnACvhyOImTc=, registry: https://registry.npm.taobao.org/, tarball: broadcast-channel/download/broadcast-channel-3.7.0.tgz} @@ -3793,7 +3831,6 @@ packages: /concat-map/0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - dev: true /content-disposition/0.5.4: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.4.tgz} @@ -3887,6 +3924,10 @@ packages: buffer: 5.7.1 dev: false + /create-require/1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + dev: true + /cross-fetch/3.1.4: resolution: {integrity: sha1-lyPzo6JHv4uJA586OAqSROj6Lzk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/cross-fetch/download/cross-fetch-3.1.4.tgz} dependencies: @@ -4138,6 +4179,11 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dev: true + /diff/4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + dev: true + /dlv/1.1.3: resolution: {integrity: sha1-XBmKihFFNZbnUUlNSYdLx3MvLnk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/dlv/download/dlv-1.1.3.tgz} dev: false @@ -4809,6 +4855,9 @@ packages: through2: registry.nlark.com/through2/2.0.5 dev: true + /fs.realpath/1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + /fsevents/2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -4892,14 +4941,14 @@ packages: dev: true /glob/7.2.0: - resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/glob/download/glob-7.2.0.tgz} + resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} dependencies: - fs.realpath: registry.nlark.com/fs.realpath/1.0.0 - inflight: registry.nlark.com/inflight/1.0.6 - inherits: registry.nlark.com/inherits/2.0.4 - minimatch: registry.nlark.com/minimatch/3.0.4 - once: registry.nlark.com/once/1.4.0 - path-is-absolute: registry.nlark.com/path-is-absolute/1.0.1 + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.0.4 + once: 1.4.0 + path-is-absolute: 1.0.1 /globals/11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} @@ -5201,6 +5250,15 @@ packages: resolve-cwd: registry.nlark.com/resolve-cwd/3.0.0 dev: true + /inflight/1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + /inherits/2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + /inline-style-parser/0.1.1: resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} dev: false @@ -6229,6 +6287,10 @@ packages: dependencies: semver: 6.3.0 + /make-error/1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + dev: true + /makeerror/1.0.12: resolution: {integrity: sha1-Pl3SB5qC6BLpg8xmEMSiyw6qgBo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/makeerror/download/makeerror-1.0.12.tgz} dependencies: @@ -6413,7 +6475,6 @@ packages: resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} dependencies: brace-expansion: 1.1.11 - dev: true /minimist/1.2.0: resolution: {integrity: sha512-7Wl+Jz+IGWuSdgsQEJ4JunV0si/iMhg42MnQQG6h1R6TNeVenp4U9x5CC5v/gYqz/fENLQITAWXidNtVL0NNbw==} @@ -6428,6 +6489,12 @@ packages: dependencies: minimist: 1.2.5 + /mkdirp/1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + dev: false + /moment/2.29.1: resolution: {integrity: sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/moment/download/moment-2.29.1.tgz} dev: false @@ -6583,6 +6650,11 @@ packages: resolution: {integrity: sha1-yDFvLC+2/3sRthWNsyNMSfczxWY=, registry: https://registry.npm.taobao.org/, tarball: oblivious-set/download/oblivious-set-1.0.0.tgz} dev: false + /once/1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + /onetime/2.0.1: resolution: {integrity: sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==} engines: {node: '>=4'} @@ -6743,6 +6815,10 @@ packages: engines: {node: '>=8'} dev: true + /path-is-absolute/1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + /path-parse/1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -8635,6 +8711,35 @@ packages: yn: registry.nlark.com/yn/3.1.1 dev: true + /ts-node/10.4.0_typescript@4.5.4: + resolution: {integrity: sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.7.0 + '@tsconfig/node10': 1.0.8 + '@tsconfig/node12': 1.0.9 + '@tsconfig/node14': 1.0.1 + '@tsconfig/node16': 1.0.2 + acorn: 8.6.0 + acorn-walk: 8.2.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 4.5.4 + yn: 3.1.1 + dev: true + /tsconfig-paths-webpack-plugin/3.5.2: resolution: {integrity: sha512-EhnfjHbzm5IYI9YPNVIxx1moxMI4bpHD2e0zTXeDNQcwjjRaGepP7IhTHJkyDBG0CAOoxRfe7jCG630Ou+C6Pw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/tsconfig-paths-webpack-plugin/download/tsconfig-paths-webpack-plugin-3.5.2.tgz} dependencies: @@ -8688,7 +8793,6 @@ packages: resolution: {integrity: sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/typescript/download/typescript-4.5.4.tgz} engines: {node: '>=4.2.0'} hasBin: true - dev: true /unicode-canonical-property-names-ecmascript/2.0.0: resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} @@ -9299,6 +9403,9 @@ packages: workbox-core: 6.5.1 dev: true + /wrappy/1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + /ws/7.5.6: resolution: {integrity: sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/ws/download/ws-7.5.6.tgz} engines: {node: '>=8.3.0'} @@ -9372,6 +9479,11 @@ packages: resolution: {integrity: sha1-AI4G2AlDIMNy28L47XagymyKxBk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/yeast/download/yeast-0.1.2.tgz} dev: false + /yn/3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + dev: true + /yoctodelay/1.2.0: resolution: {integrity: sha1-DQIMi87CKYk2nbMeXTUqzGoT7ag=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/yoctodelay/download/yoctodelay-1.2.0.tgz} engines: {node: '>=4'} @@ -9444,13 +9556,6 @@ packages: version: 0.2.3 dev: true - registry.nlark.com/@cspotcode/source-map-consumer/0.8.0: - resolution: {integrity: sha1-M79LeznBeIIWBvZpu8RHpqYpeGs=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@cspotcode/source-map-consumer/download/@cspotcode/source-map-consumer-0.8.0.tgz} - name: '@cspotcode/source-map-consumer' - version: 0.8.0 - engines: {node: '>= 12'} - dev: true - registry.nlark.com/@ctrl/tinycolor/3.4.0: resolution: {integrity: sha1-w8WuVDyJfKqcKmhjC+01W+X5mQ8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@ctrl/tinycolor/download/@ctrl/tinycolor-3.4.0.tgz} name: '@ctrl/tinycolor' @@ -9933,6 +10038,7 @@ packages: resolution: {integrity: sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/balanced-match/download/balanced-match-1.0.2.tgz} name: balanced-match version: 1.0.2 + dev: true registry.nlark.com/base64-js/1.5.1: resolution: {integrity: sha1-GxtEAWClv3rUC2UPCVljSBkDkwo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/base64-js/download/base64-js-1.5.1.tgz} @@ -9981,6 +10087,7 @@ packages: dependencies: balanced-match: registry.nlark.com/balanced-match/1.0.2 concat-map: registry.nlark.com/concat-map/0.0.1 + dev: true registry.nlark.com/braces/3.0.2: resolution: {integrity: sha1-NFThpGLujVmeI23zNs2epPiv4Qc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/braces/download/braces-3.0.2.tgz} @@ -10201,6 +10308,7 @@ packages: resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/concat-map/download/concat-map-0.0.1.tgz} name: concat-map version: 0.0.1 + dev: true registry.nlark.com/connect-history-api-fallback/1.6.0: resolution: {integrity: sha1-izIIk1kwjRERFdgcrT/Oq4iPl7w=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz} @@ -11096,11 +11204,6 @@ packages: version: 1.0.3 dev: true - registry.nlark.com/fs.realpath/1.0.0: - resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/fs.realpath/download/fs.realpath-1.0.0.tgz} - name: fs.realpath - version: 1.0.0 - registry.nlark.com/function-bind/1.1.1: resolution: {integrity: sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/function-bind/download/function-bind-1.1.1.tgz} name: function-bind @@ -11460,14 +11563,6 @@ packages: version: 1.0.1 dev: false - registry.nlark.com/inflight/1.0.6: - resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/inflight/download/inflight-1.0.6.tgz} - name: inflight - version: 1.0.6 - dependencies: - once: registry.nlark.com/once/1.4.0 - wrappy: registry.nlark.com/wrappy/1.0.2 - registry.nlark.com/inherits/2.0.3: resolution: {integrity: sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/inherits/download/inherits-2.0.3.tgz} name: inherits @@ -12141,6 +12236,7 @@ packages: version: 3.0.4 dependencies: brace-expansion: registry.nlark.com/brace-expansion/1.1.11 + dev: true registry.nlark.com/minimist-options/4.1.0: resolution: {integrity: sha1-wGVXE8U6ii69d/+iR9NCxA8BBhk=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/minimist-options/download/minimist-options-4.1.0.tgz} @@ -12376,6 +12472,7 @@ packages: version: 1.4.0 dependencies: wrappy: registry.nlark.com/wrappy/1.0.2 + dev: true registry.nlark.com/onetime/5.1.2: resolution: {integrity: sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/onetime/download/onetime-5.1.2.tgz} @@ -12513,12 +12610,6 @@ packages: engines: {node: '>=8'} dev: true - registry.nlark.com/path-is-absolute/1.0.1: - resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/path-is-absolute/download/path-is-absolute-1.0.1.tgz} - name: path-is-absolute - version: 1.0.1 - engines: {node: '>=0.10.0'} - registry.nlark.com/path-key/3.1.1: resolution: {integrity: sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/path-key/download/path-key-3.1.1.tgz} name: path-key @@ -14273,6 +14364,7 @@ packages: resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/wrappy/download/wrappy-1.0.2.tgz} name: wrappy version: 1.0.2 + dev: true registry.nlark.com/write-file-atomic/3.0.3: resolution: {integrity: sha1-Vr1cWlxwSBzRnFcb05q5ZaXeVug=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/write-file-atomic/download/write-file-atomic-3.0.3.tgz} diff --git a/web/scripts/plugin-declaration.ts b/web/scripts/plugin-declaration.ts index beef0474..fb859932 100644 --- a/web/scripts/plugin-declaration.ts +++ b/web/scripts/plugin-declaration.ts @@ -14,9 +14,11 @@ declare module 'dts-generator' { } dtsgen({ - name: '', // 这个是为了跳过类型问题,其实移除该项也是可以的 + main: '__tailchat__/common/index', + name: '@capital/commmon', out: 'tailchat.d.ts', - prefix: '@capital', - baseDir: path.resolve(__dirname, '../src/plugin'), + prefix: '__tailchat__', + baseDir: path.resolve(__dirname, '../src'), + rootDir: path.resolve(__dirname, '../src'), files: [path.resolve(__dirname, '../src/plugin/common/index.ts')], });