From: Evan You Date: Mon, 15 Apr 2024 07:52:48 +0000 (+0800) Subject: chore(types): perform strict es2016 lib check when building dts X-Git-Tag: v3.4.22~19 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2ae908d00c7744e194dae5fd279b5db8603a988b;p=thirdparty%2Fvuejs%2Fcore.git chore(types): perform strict es2016 lib check when building dts --- diff --git a/package.json b/package.json index 071c51311a..2c8ba0b817 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "dev": "node scripts/dev.js", "build": "node scripts/build.js", - "build-dts": "tsc -p tsconfig.build.json && rollup -c rollup.dts.config.js", + "build-dts": "tsc -p tsconfig.build-browser.json && tsc -p tsconfig.build-node.json && rollup -c rollup.dts.config.js", "clean": "rimraf packages/*/dist temp .eslintcache", "size": "run-s \"size-*\" && tsx scripts/usage-size.ts", "size-global": "node scripts/build.js vue runtime-dom -f global -p --size", diff --git a/packages/compiler-sfc/src/compileStyle.ts b/packages/compiler-sfc/src/compileStyle.ts index 4390014e89..f27a6338e8 100644 --- a/packages/compiler-sfc/src/compileStyle.ts +++ b/packages/compiler-sfc/src/compileStyle.ts @@ -13,7 +13,7 @@ import { type StylePreprocessorResults, processors, } from './style/preprocessors' -import type { RawSourceMap } from 'source-map-js' +import type { RawSourceMap } from '@vue/compiler-core' import { cssVarsPlugin } from './style/cssVars' import postcssModules from 'postcss-modules' diff --git a/packages/compiler-sfc/src/compileTemplate.ts b/packages/compiler-sfc/src/compileTemplate.ts index 2d5ffdad7d..5ba8a5e481 100644 --- a/packages/compiler-sfc/src/compileTemplate.ts +++ b/packages/compiler-sfc/src/compileTemplate.ts @@ -6,14 +6,11 @@ import { type NodeTransform, NodeTypes, type ParserOptions, + type RawSourceMap, type RootNode, createRoot, } from '@vue/compiler-core' -import { - type RawSourceMap, - SourceMapConsumer, - SourceMapGenerator, -} from 'source-map-js' +import { SourceMapConsumer, SourceMapGenerator } from 'source-map-js' import { type AssetURLOptions, type AssetURLTagConfig, diff --git a/packages/compiler-sfc/src/style/preprocessors.ts b/packages/compiler-sfc/src/style/preprocessors.ts index 7915d1d140..6a974368ec 100644 --- a/packages/compiler-sfc/src/style/preprocessors.ts +++ b/packages/compiler-sfc/src/style/preprocessors.ts @@ -1,5 +1,5 @@ import merge from 'merge-source-map' -import type { RawSourceMap } from 'source-map-js' +import type { RawSourceMap } from '@vue/compiler-core' import type { SFCStyleCompileOptions } from '../compileStyle' import { isFunction } from '@vue/shared' diff --git a/packages/runtime-core/src/compat/global.ts b/packages/runtime-core/src/compat/global.ts index 5bf234fcf4..1c633ed52a 100644 --- a/packages/runtime-core/src/compat/global.ts +++ b/packages/runtime-core/src/compat/global.ts @@ -427,15 +427,14 @@ function applySingletonPrototype(app: App, Ctor: Function) { app.config.globalProperties = Object.create(Ctor.prototype) } let hasPrototypeAugmentations = false - const descriptors = Object.getOwnPropertyDescriptors(Ctor.prototype) - for (const key in descriptors) { + for (const key of Object.getOwnPropertyNames(Ctor.prototype)) { if (key !== 'constructor') { hasPrototypeAugmentations = true if (enabled) { Object.defineProperty( app.config.globalProperties, key, - descriptors[key], + Object.getOwnPropertyDescriptor(Ctor.prototype, key)!, ) } } diff --git a/packages/shared/src/general.ts b/packages/shared/src/general.ts index e04b961227..47ab022925 100644 --- a/packages/shared/src/general.ts +++ b/packages/shared/src/general.ts @@ -165,6 +165,9 @@ export const toNumber = (val: any): any => { return isNaN(n) ? val : n } +// for typeof global checks without @types/node +declare var global: {} + let _globalThis: any export const getGlobalThis = (): any => { return ( diff --git a/packages/shared/src/toDisplayString.ts b/packages/shared/src/toDisplayString.ts index aff107cd97..b63cb4112a 100644 --- a/packages/shared/src/toDisplayString.ts +++ b/packages/shared/src/toDisplayString.ts @@ -54,4 +54,6 @@ const replacer = (_key: string, val: any): any => { } const stringifySymbol = (v: unknown, i: number | string = ''): any => - isSymbol(v) ? `Symbol(${v.description ?? i})` : v + // Symbol.description in es2019+ so we need to cast here to pass + // the lib: es2016 check + isSymbol(v) ? `Symbol(${(v as any).description ?? i})` : v diff --git a/tsconfig.build-browser.json b/tsconfig.build-browser.json new file mode 100644 index 0000000000..707c99e58a --- /dev/null +++ b/tsconfig.build-browser.json @@ -0,0 +1,20 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "types": [], + "declaration": true, + "emitDeclarationOnly": true, + "stripInternal": true + }, + "include": [ + "packages/global.d.ts", + "packages/vue/src", + "packages/vue-compat/src", + "packages/compiler-core/src", + "packages/compiler-dom/src", + "packages/runtime-core/src", + "packages/runtime-dom/src", + "packages/reactivity/src", + "packages/shared/src" + ] +} diff --git a/tsconfig.build-node.json b/tsconfig.build-node.json new file mode 100644 index 0000000000..fac1412fad --- /dev/null +++ b/tsconfig.build-node.json @@ -0,0 +1,15 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "types": ["node"], + "declaration": true, + "emitDeclarationOnly": true, + "stripInternal": true + }, + "include": [ + "packages/global.d.ts", + "packages/compiler-sfc/src", + "packages/compiler-ssr/src", + "packages/server-renderer/src" + ] +} diff --git a/tsconfig.build.json b/tsconfig.build.json deleted file mode 100644 index ea2aecc450..0000000000 --- a/tsconfig.build.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "declaration": true, - "emitDeclarationOnly": true, - "stripInternal": true - }, - "exclude": [ - "packages/*/__tests__", - "packages/runtime-test", - "packages/template-explorer", - "packages/sfc-playground", - "packages/dts-test", - "packages/dts-built-test" - ] -}