Skip to content

Commit a7ea70e

Browse files
committed
feat: support typesVersions
1 parent 46db97f commit a7ea70e

File tree

9 files changed

+78
-20
lines changed

9 files changed

+78
-20
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ es-legacy
44
umd
55
tslib
66
tses
7+
types-legacy/*/**
78
node_modules
89
npm-debug.log
910
e2e/fixtures/scripts

package.json

Lines changed: 66 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "enum-plus",
3-
"version": "3.0.0-alpha.3",
3+
"version": "3.0.0-alpha.4",
44
"description": "A drop-in replacement for native enum. Like native enum but much better!",
55
"keywords": [
66
"enum",
@@ -45,12 +45,19 @@
4545
"browser-legacy": "./es-legacy/index.js",
4646
"default": "./lib/index.js"
4747
},
48-
"./enum-collection": {
49-
"types": "./lib/enum-collection.d.ts",
50-
"import": "./es/enum-collection.js",
51-
"require": "./lib/enum-collection.js",
52-
"browser-legacy": "./es-legacy/enum-collection.js",
53-
"default": "./lib/enum-collection.js"
48+
"./enum": {
49+
"types": "./lib/enum.d.ts",
50+
"import": "./es/enum.js",
51+
"require": "./lib/enum.js",
52+
"browser-legacy": "./es-legacy/enum.js",
53+
"default": "./lib/enum.js"
54+
},
55+
"./enum-items": {
56+
"types": "./lib/enum-items.d.ts",
57+
"import": "./es/enum-items.js",
58+
"require": "./lib/enum-items.js",
59+
"browser-legacy": "./es-legacy/enum-items.js",
60+
"default": "./lib/enum-items.js"
5461
},
5562
"./enum-item": {
5663
"types": "./lib/enum-item.d.ts",
@@ -59,22 +66,66 @@
5966
"browser-legacy": "./es-legacy/enum-item.js",
6067
"default": "./lib/enum-item.js"
6168
},
69+
"./utils": {
70+
"types": "./lib/utils.d.ts",
71+
"import": "./es/utils.js",
72+
"require": "./lib/utils.js",
73+
"browser-legacy": "./es-legacy/utils.js",
74+
"default": "./lib/utils.js"
75+
},
76+
"./localize-interface": {
77+
"types": "./lib/localize-interface.d.ts",
78+
"import": "./es/localize-interface.js",
79+
"require": "./lib/localize-interface.js",
80+
"browser-legacy": "./es-legacy/localize-interface.js",
81+
"default": "./lib/localize-interface.js"
82+
},
6283
"./es-legacy": {
6384
"types": "./es-legacy/index.d.ts",
6485
"import": "./es-legacy/index.js",
6586
"require": "./es-legacy/index.js",
6687
"default": "./es-legacy/index.js"
6788
},
6889
"./types": "./lib/types.d.ts",
90+
"./extension": "./lib/extension.d.ts",
6991
"./package.json": "./package.json"
7092
},
7193
"main": "lib/index.js",
7294
"module": "es-legacy/index.js",
7395
"types": "lib/index.d.ts",
96+
"typesVersions": {
97+
"<5.0": {
98+
".": [
99+
"./lib/index.d.ts"
100+
],
101+
"./enum": [
102+
"./types-legacy/pre-v5/enum.d.ts"
103+
],
104+
"./enum-items": [
105+
"./lib/enum-items.d.ts"
106+
],
107+
"./enum-item": [
108+
"./lib/enum-item.d.ts"
109+
],
110+
"./utils": [
111+
"./lib/utils.d.ts"
112+
],
113+
"./localize-interface": [
114+
"./lib/localize-interface.d.ts"
115+
],
116+
"./types": [
117+
"./lib/types.d.ts"
118+
],
119+
"./extension": [
120+
"./lib/extension.d.ts"
121+
]
122+
}
123+
},
74124
"files": [
75125
"lib",
76126
"es",
77127
"es-legacy",
128+
"types-legacy",
78129
"umd",
79130
"LICENSE",
80131
"CHANGELOG.md",
@@ -89,7 +140,7 @@
89140
"build": "run-p build:*",
90141
"build:es": "run-s task:build-es task:add-umd-banner task:add-es-extensions",
91142
"build:es-legacy": "cross-env LEGACY=1 run-s task:build-es-legacy task:add-umd-banner task:add-es-legacy-extensions",
92-
"build:lib": "run-s ts2lib task:copy-dts task:copy-lib",
143+
"build:lib": "run-s ts2lib task:copy-lib task:copy-dts task:types-legacy",
93144
"build:tses": "run-s ts2es task:add-tses-extensions",
94145
"e2e": "run-s task:bundle-e2e task:run-e2e",
95146
"e2e:debug": "run-s task:bundle-e2e task:run-e2e-debug",
@@ -106,6 +157,7 @@
106157
"task:bundle-e2e": "tsx scripts/make-e2e-bundle.ts",
107158
"task:copy-dts": "shx cp ./src/*.d.ts ./lib",
108159
"task:copy-lib": "tsx scripts/copy-lib.ts",
160+
"task:types-legacy": "tsx scripts/gen-legacy-type.ts",
109161
"task:jest": "jest --coverage",
110162
"task:jest-cjs": "jest --coverage -c jest-cjs.config.js",
111163
"task:jest-esm": "jest --coverage -c jest-esm.config.js",
@@ -118,12 +170,6 @@
118170
"ts2es": "tsc -p tsconfig.es.json",
119171
"ts2lib": "tsc -p tsconfig.lib.json"
120172
},
121-
"overrides": {
122-
"@umijs/babel-preset-umi": {
123-
"@babel/runtime": "^7.27.1"
124-
},
125-
"esbuild": "^0.25.4"
126-
},
127173
"devDependencies": {
128174
"@playwright/test": "^1.52.0",
129175
"@rollup/plugin-node-resolve": "^16.0.1",
@@ -150,5 +196,11 @@
150196
},
151197
"publishConfig": {
152198
"registry": "https://registry.npmjs.org/"
199+
},
200+
"overrides": {
201+
"@umijs/babel-preset-umi": {
202+
"@babel/runtime": "^7.27.1"
203+
},
204+
"esbuild": "^0.25.4"
153205
}
154206
}

scripts/gen-legacy-type.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import { readFileSync, writeFileSync } from 'fs';
2+
3+
const enumDeclaration = readFileSync('./tslib/src/enum.d.ts', 'utf-8');
4+
writeFileSync('./types-legacy/pre-v5/enum.d.ts', enumDeclaration.replace(/const\s+(\w+\s+extends)/g, '$1'));

src/enum-collection.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import type { EnumExtension } from 'enum-plus-extend';
22
import type { EnumItemOptions } from './enum-item';
33
import { EnumItemClass } from './enum-item';
4-
import type { IEnumItems, ToListConfig } from './enum-values';
5-
import { EnumItemsArray } from './enum-values';
4+
import type { IEnumItems, ToListConfig } from './enum-items';
5+
import { EnumItemsArray } from './enum-items';
66
import { localizer } from './localize';
77
import type {
88
ColumnFilterItem,
@@ -30,6 +30,7 @@ export class EnumExtensionClass<
3030
K extends EnumKey<T> = EnumKey<T>,
3131
V extends EnumValue = ValueTypeFromSingleInit<T[K], K>,
3232
> implements EnumExtension<T, K, V> {}
33+
3334
/**
3435
* - **EN:** Enum collection
3536
* - **CN:** 枚举项集合
File renamed without changes.

src/enum.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { EnumExtension } from 'enum-plus-extend';
22
import { EnumCollectionClass, EnumExtensionClass } from './enum-collection';
33
import type { EnumItemClass, EnumItemOptions } from './enum-item';
4-
import type { IEnumItems } from './enum-values';
4+
import type { IEnumItems } from './enum-items';
55
import { localizer } from './localize';
66
import type {
77
ArrayToMap,

src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export type {
1111
ArrayToMap,
1212
} from './types';
1313
export type { LocalizeInterface } from './localize-interface';
14-
export type { ToListConfig, IEnumItems } from './enum-values';
14+
export type { ToListConfig, IEnumItems } from './enum-items';
1515
export type { EnumItemClass, EnumItemOptions } from './enum-item';
1616
export type { IEnum, EnumInterface, EnumInitOptions } from './enum';
1717

tsconfig.eslint.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@
55
// ensure that nobody can accidentally use this config for a build
66
"noEmit": true
77
},
8-
"include": ["src", "scripts", "test", "e2e", "packages", "*.ts", ".*.ts"]
8+
"include": ["src", "scripts", "test", "e2e", "tslib", "tses", "types-legacy", "packages", "*.ts", ".*.ts"]
99
}

tsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,5 @@
3131
}
3232
},
3333
"include": ["src", "scripts", "test", "test-browser", "*.ts", ".*.ts"],
34-
"exclude": ["node_modules", "es", "es-legacy", "lib", "tslib"]
34+
"exclude": ["node_modules", "es", "es-legacy", "lib", "tslib", "tses", "types-legacy"]
3535
}

0 commit comments

Comments
 (0)