When schema emitter emits additional "definitions", and we muck around here, we do not copy those definitions.
| /** Patch ts-node stuff into the schemastore definition. */ |
| constmergedSchema={ |
| ...schemastoreSchema, |
| definitions: { |
| ...schemastoreSchema.definitions, |
| tsNodeDefinition: { |
| properties: { |
| 'ts-node': { |
| ...typescriptNodeSchema.definitions.TsConfigOptions, |
| description: |
| typescriptNodeSchema.definitions.TsConfigSchema.properties[ |
| 'ts-node' |
| ].description, |
| properties: { |
| ...typescriptNodeSchema.definitions.TsConfigOptions.properties, |
| compilerOptions: { |
| ...typescriptNodeSchema.definitions.TsConfigOptions.properties |
| .compilerOptions, |
| allOf: [ |
| { |
| $ref: |
| '#/definitions/compilerOptionsDefinition/properties/compilerOptions', |
| }, |
| ], |
| }, |
| }, |
| }, |
| }, |
| }, |
| }, |
| allOf: [ |
| // Splice into the allOf array at a spot that looks good. Does not affect |
| // behavior of the schema, but looks nicer if we want to submit as a PR to schemastore. |
| ...schemastoreSchema.allOf.slice(0,4), |
| {$ref: '#/definitions/tsNodeDefinition'}, |
| ...schemastoreSchema.allOf.slice(4), |
| ], |
| }; |
| writeFileSync( |
| resolve(__dirname,'../tsconfig.schemastore-schema.json'), |
| JSON.stringify(mergedSchema,null,2) |
| ); |
| } |
When schema emitter emits additional "definitions", and we muck around here, we do not copy those definitions.
ts-node/scripts/create-merged-schema.ts
Lines 20 to 62 in 8114afc