Skip to content

Commit e47fb5f

Browse files
committed
fix: fixed build-npm script and export mapping
1 parent c7eb8bc commit e47fb5f

File tree

2 files changed

+200
-8
lines changed

2 files changed

+200
-8
lines changed

resources/build-npm.ts

Lines changed: 188 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ function buildPackage(outDir: string, isESMOnly: boolean): void {
7171
const versionTag = splittedTag[2] ?? splittedTag[0];
7272
assert(
7373
['alpha', 'beta', 'rc'].includes(versionTag) ||
74-
versionTag.startsWith('experimental-'),
74+
versionTag.startsWith('experimental-'),
7575
`"${versionTag}" tag is not supported.`,
7676
);
7777
assert.equal(
@@ -110,14 +110,195 @@ function buildPackage(outDir: string, isESMOnly: boolean): void {
110110
packageJSON.types = 'index.d.ts';
111111
packageJSON.exports = {
112112
'.': {
113-
'import': {
114-
'types': './index.d.ts',
115-
'default': './index.mjs'
113+
import: {
114+
types: './index.d.ts',
115+
default: './index.mjs'
116116
},
117-
'require': {
118-
'types': './index.d.ts',
119-
'default': './index.js'
117+
require: {
118+
types: './index.d.ts',
119+
default: './index.js'
120120
}
121+
},
122+
'./graphql': {
123+
import: {
124+
types: './graphql.d.ts',
125+
default: './graphql.mjs'
126+
},
127+
require: {
128+
types: './graphql.d.ts',
129+
default: './graphql.js'
130+
}
131+
},
132+
'./version': {
133+
import: {
134+
types: './version.d.ts',
135+
default: './version.mjs'
136+
},
137+
require: {
138+
types: './version.d.ts',
139+
default: './version.js'
140+
}
141+
},
142+
'./error': {
143+
import: {
144+
types: './error/index.d.ts',
145+
default: './error/index.mjs'
146+
},
147+
require: {
148+
types: './error/index.d.ts',
149+
default: './error/index.js'
150+
}
151+
},
152+
'./error/*': {
153+
import: {
154+
types: './error/*.d.ts',
155+
default: './error/*.mjs'
156+
},
157+
require: {
158+
types: './error/*.d.ts',
159+
default: './error/*.js'
160+
}
161+
},
162+
'./execution': {
163+
import: {
164+
types: './execution/index.d.ts',
165+
default: './execution/index.mjs'
166+
},
167+
require: {
168+
types: './execution/index.d.ts',
169+
default: './execution/index.js'
170+
}
171+
},
172+
'./execution/*': {
173+
import: {
174+
types: './execution/*.d.ts',
175+
default: './execution/*.mjs'
176+
},
177+
require: {
178+
types: './execution/*.d.ts',
179+
default: './execution/*.js'
180+
}
181+
},
182+
'./jsutils': {
183+
import: {
184+
types: './jsutils/index.d.ts',
185+
default: './jsutils/index.mjs'
186+
},
187+
require: {
188+
types: './jsutils/index.d.ts',
189+
default: './jsutils/index.js'
190+
}
191+
},
192+
'./jsutils/*': {
193+
import: {
194+
types: './jsutils/*.d.ts',
195+
default: './jsutils/*.mjs'
196+
},
197+
require: {
198+
types: './jsutils/*.d.ts',
199+
default: './jsutils/*.js'
200+
}
201+
},
202+
'./language': {
203+
import: {
204+
types: './language/index.d.ts',
205+
default: './language/index.mjs'
206+
},
207+
require: {
208+
types: './language/index.d.ts',
209+
default: './language/index.js'
210+
}
211+
},
212+
'./language/*': {
213+
import: {
214+
types: './language/*.d.ts',
215+
default: './language/*.mjs'
216+
},
217+
require: {
218+
types: './language/*.d.ts',
219+
default: './language/*.js'
220+
}
221+
},
222+
'./subscription': {
223+
import: {
224+
types: './subscription/index.d.ts',
225+
default: './subscription/index.mjs'
226+
},
227+
require: {
228+
types: './subscription/index.d.ts',
229+
default: './subscription/index.js'
230+
}
231+
},
232+
'./subscription/*': {
233+
import: {
234+
types: './subscription/*.d.ts',
235+
default: './subscription/*.mjs'
236+
},
237+
require: {
238+
types: './subscription/*.d.ts',
239+
default: './subscription/*.js'
240+
}
241+
},
242+
'./type': {
243+
import: {
244+
types: './type/index.d.ts',
245+
default: './type/index.mjs'
246+
},
247+
require: {
248+
types: './type/index.d.ts',
249+
default: './type/index.js'
250+
}
251+
},
252+
'./type/*': {
253+
import: {
254+
types: './type/*.d.ts',
255+
default: './type/*.mjs'
256+
},
257+
require: {
258+
types: './type/*.d.ts',
259+
default: './type/*.js'
260+
}
261+
},
262+
'./utilities': {
263+
import: {
264+
types: './utilities/index.d.ts',
265+
default: './utilities/index.mjs'
266+
},
267+
require: {
268+
types: './utilities/index.d.ts',
269+
default: './utilities/index.js'
270+
}
271+
},
272+
'./utilities/*': {
273+
import: {
274+
types: './utilities/*.d.ts',
275+
default: './utilities/*.mjs'
276+
},
277+
require: {
278+
types: './utilities/*.d.ts',
279+
default: './utilities/*.js'
280+
}
281+
},
282+
'./validation': {
283+
import: {
284+
types: './validation/index.d.ts',
285+
default: './validation/index.mjs'
286+
},
287+
require: {
288+
types: './validation/index.d.ts',
289+
default: './validation/index.js'
290+
}
291+
},
292+
'./validation/*': {
293+
import: {
294+
types: './validation/*.d.ts',
295+
default: './validation/*.mjs'
296+
},
297+
require: {
298+
types: './validation/*.d.ts',
299+
default: './validation/*.js'
300+
}
301+
}
121302
}
122303
emitTSFiles({ outDir, module: 'commonjs', extension: '.js' });
123304
emitTSFiles({ outDir, module: 'es2020', extension: '.mjs' });

resources/utils.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,14 +218,25 @@ export function writeGeneratedFile(filepath: string, body: string): void {
218218
fs.writeFileSync(filepath, formatted);
219219
}
220220

221+
interface PackageJsonExportMapping {
222+
import: {
223+
types: string;
224+
default: string;
225+
};
226+
require: {
227+
types: string;
228+
default: string;
229+
}
230+
}
231+
221232
interface PackageJSON {
222233
description: string;
223234
version: string;
224235
private?: boolean;
225236
repository?: { url?: string };
226237
scripts?: { [name: string]: string };
227238
type?: string;
228-
exports: { [path: string]: string };
239+
exports: { [path: string]: string | PackageJsonExportMapping };
229240
types?: string;
230241
typesVersions: { [ranges: string]: { [path: string]: Array<string> } };
231242
devDependencies?: { [name: string]: string };

0 commit comments

Comments
 (0)