Skip to content

Commit c7d7918

Browse files
fix: object[] JSON (#161)
1 parent f4d41b3 commit c7d7918

File tree

4 files changed

+27
-11
lines changed

4 files changed

+27
-11
lines changed

src/generate.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,10 @@ export function createGeneratePlugin({
296296
if (dtsCode && RE_JSON.test(id)) {
297297
// if contains invalid json keys
298298
if (dtsCode.includes('declare const _exports')) {
299-
if (dtsCode.includes('declare const _exports: {')) {
299+
if (
300+
dtsCode.includes('declare const _exports: {') &&
301+
!dtsCode.includes('\n}[];')
302+
) {
300303
// patch: add named export
301304
const exports = collectJsonExports(dtsCode)
302305
let i = 0

tests/__snapshots__/tsc.test.ts.snap

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -113,24 +113,24 @@ declare namespace __json_default_export {
113113
export { name, age };
114114
}
115115
declare namespace bar_d_exports {
116-
export { _exports as default };
116+
export { _exports$1 as default };
117117
}
118-
declare const _exports: string[];
118+
declare const _exports$1: string[];
119119
declare namespace invalid_d_exports {
120-
export { __3 as "\\"", _11 as "1", __4 as "\\\\", ___2 as __, _class0 as class, _exports$1 as default };
120+
export { __3 as "\\"", _11 as "1", __4 as "\\\\", ___2 as __, _class0 as class, _exports$2 as default };
121121
}
122-
declare const _exports$1: {
122+
declare const _exports$2: {
123123
class: string;
124124
"1": number;
125125
__: string;
126126
"\\"": string;
127127
"\\\\": string;
128128
};
129-
declare let _class0: typeof _exports$1["class"];
130-
declare let _11: typeof _exports$1["1"];
131-
declare let ___2: typeof _exports$1["__"];
132-
declare let __3: typeof _exports$1["\\""];
133-
declare let __4: typeof _exports$1["\\\\"];
129+
declare let _class0: typeof _exports$2["class"];
130+
declare let _11: typeof _exports$2["1"];
131+
declare let ___2: typeof _exports$2["__"];
132+
declare let __3: typeof _exports$2["\\""];
133+
declare let __4: typeof _exports$2["\\\\"];
134134
//#endregion
135135
//#region tests/fixtures/import-json/nested.d.ts
136136
declare let openapi: string;
@@ -338,7 +338,12 @@ declare namespace __json_default_export$1 {
338338
export { openapi, info, components, paths };
339339
}
340340
//#endregion
341-
export { age, _exports as bar, bar_d_exports as barNs, __json_default_export as foo, foo_d_exports as fooNs, invalid_d_exports as invalidNs, name, __json_default_export$1 as nested };"
341+
//#region tests/fixtures/import-json/array-of-object.d.ts
342+
declare const _exports: {
343+
key: string;
344+
}[];
345+
//#endregion
346+
export { age, _exports as arrayOfObjects, _exports$1 as bar, bar_d_exports as barNs, __json_default_export as foo, foo_d_exports as fooNs, invalid_d_exports as invalidNs, name, __json_default_export$1 as nested };"
342347
`;
343348
344349
exports[`tsc > jsdoc 1`] = `
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
[
2+
{
3+
"key": "baz"
4+
}
5+
]

tests/fixtures/import-json/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,6 @@ export { invalidNs }
1212

1313
import nested from './nested.json'
1414
export { nested }
15+
16+
import arrayOfObjects from './array-of-object.json'
17+
export { arrayOfObjects }

0 commit comments

Comments
 (0)