Skip to content

Commit 48f7043

Browse files
committed
fix #2919: publish two versions of the index.d.ts file to fix a TypeScript type exports issues
1 parent 2c819ea commit 48f7043

File tree

2 files changed

+40
-11
lines changed

2 files changed

+40
-11
lines changed

gulpfile.cjs

+16
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ const REF_DIR = path.join(__dirname, '/docs')
3131
const REF_DEST = `${REF_DIR}/reference/functions`
3232
const REF_ROOT = `${REF_DIR}/reference`
3333

34+
const TYPES_SRC = path.join(__dirname, '/types/index.d.ts')
35+
const TYPES_DEST_ESM = path.join(__dirname, '/lib/esm/index.d.ts')
36+
const TYPES_DEST_CJS = path.join(__dirname, '/lib/cjs/index.d.cts')
37+
3438
const MATH_JS = `${COMPILE_BROWSER}/${FILE}`
3539
const COMPILED_HEADER = `${COMPILE_CJS}/header.js`
3640

@@ -222,6 +226,15 @@ async function generateDocs (done) {
222226
done()
223227
}
224228

229+
function copyTypes(done) {
230+
const types = fs.readFileSync(TYPES_SRC)
231+
232+
fs.writeFileSync(TYPES_DEST_ESM, types)
233+
fs.writeFileSync(TYPES_DEST_CJS, types)
234+
235+
done()
236+
}
237+
225238
function generateEntryFiles (done) {
226239
entryGenerator.generateEntryFiles().then(() => {
227240
done()
@@ -252,6 +265,8 @@ gulp.task('clean', clean)
252265

253266
gulp.task('docs', generateDocs)
254267

268+
gulp.task('copyTypes', copyTypes)
269+
255270
// check whether any of the source files contains non-ascii characters
256271
gulp.task('validate:ascii', validateAscii)
257272

@@ -276,6 +291,7 @@ gulp.task('default', gulp.series(
276291
compileCommonJs,
277292
compileEntryFiles,
278293
compileESModules, // Must be after generateEntryFiles
294+
copyTypes,
279295
writeCompiledHeader,
280296
bundle,
281297
generateDocs

package.json

+24-11
Original file line numberDiff line numberDiff line change
@@ -95,25 +95,39 @@
9595
},
9696
"type": "module",
9797
"main": "./lib/cjs",
98-
"types": "./types/index.d.ts",
9998
"module": "./lib/esm",
10099
"unpkg": "./lib/browser/math.js",
101100
"jsdelivr": "./lib/browser/math.js",
102101
"exports": {
103102
".": {
104-
"types": "./types/index.d.ts",
105-
"import": "./lib/esm/index.js",
106-
"require": "./lib/cjs/index.js"
103+
"import": {
104+
"types": "./lib/esm/index.d.ts",
105+
"default": "./lib/esm/index.js"
106+
},
107+
"require": {
108+
"types": "./lib/cjs/index.d.cts",
109+
"default": "./lib/cjs/index.js"
110+
}
107111
},
108112
"./number": {
109-
"types": "./types/index.d.ts",
110-
"import": "./lib/esm/number.js",
111-
"require": "./lib/cjs/number.js"
113+
"import": {
114+
"types": "./lib/esm/index.d.ts",
115+
"default": "./lib/esm/number.js"
116+
},
117+
"require": {
118+
"types": "./lib/cjs/index.d.cts",
119+
"default": "./lib/cjs/number.js"
120+
}
112121
},
113122
"./lib/esm/number": {
114-
"types": "./types/index.d.ts",
115-
"import": "./lib/esm/number.js",
116-
"require": "./lib/cjs/number.js"
123+
"import": {
124+
"types": "./lib/esm/index.d.ts",
125+
"default": "./lib/esm/number.js"
126+
},
127+
"require": {
128+
"types": "./lib/cjs/index.d.cts",
129+
"default": "./lib/cjs/number.js"
130+
}
117131
},
118132
"./package.json": "./package.json",
119133
"./lib/browser/math.js": "./lib/browser/math.js",
@@ -131,7 +145,6 @@
131145
"dist",
132146
"lib",
133147
"main",
134-
"types",
135148
"number.cjs",
136149
"LICENSE",
137150
"NOTICE",

0 commit comments

Comments
 (0)