Skip to content

Commit

Permalink
fix(cli): generate ExternalObject type on demand
Browse files Browse the repository at this point in the history
  • Loading branch information
Brooooooklyn committed Feb 10, 2022
1 parent e607bc1 commit f9c618e
Showing 1 changed file with 22 additions and 13 deletions.
35 changes: 22 additions & 13 deletions cli/src/build.ts
Original file line number Diff line number Diff line change
Expand Up @@ -493,18 +493,6 @@ async function processIntermediateTypeFile(
return idents
}

const dtsHeader = `/* tslint:disable */
/* eslint-disable */
/* auto-generated by NAPI-RS */
export class ExternalObject<T> {
readonly '': {
readonly '': unique symbol
[K: symbol]: T
}
}\n`

const allDefs = lines.map((line) => JSON.parse(line) as TypeDef)

function convertDefs(defs: TypeDef[], nested = false): string {
Expand Down Expand Up @@ -597,8 +585,29 @@ export class ExternalObject<T> {
return acc + `export namespace ${mod} {\n${convertDefs(defs, true)}}\n`
}, '')

const dtsHeader = `/* tslint:disable */
/* eslint-disable */
/* auto-generated by NAPI-RS */\n
`

const externalDef =
topLevelDef.indexOf('ExternalObject<') > -1 ||
namespaceDefs.indexOf('ExternalObject<') > -1
? `export class ExternalObject<T> {
readonly '': {
readonly '': unique symbol
[K: symbol]: T
}
}\n`
: ''

await unlinkAsync(source)
await writeFileAsync(target, dtsHeader + topLevelDef + namespaceDefs, 'utf8')
await writeFileAsync(
target,
dtsHeader + externalDef + topLevelDef + namespaceDefs,
'utf8',
)
return idents
}

Expand Down

0 comments on commit f9c618e

Please sign in to comment.