@atomic-ehr/codegen 0.0.2-canary.20251118084806.b0f2c4d → 0.0.2-canary.20251119112501.fdc096d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/index.js +12 -12
- package/dist/index.d.ts +10 -1
- package/dist/index.js +27 -12
- package/dist/index.js.map +1 -1
- package/package.json +12 -11
package/dist/index.js
CHANGED
|
@@ -1496,6 +1496,7 @@ function determineKind(fhirSchema) {
|
|
|
1496
1496
|
if (fhirSchema.kind === "primitive-type") return "primitive-type";
|
|
1497
1497
|
if (fhirSchema.kind === "complex-type") return "complex-type";
|
|
1498
1498
|
if (fhirSchema.kind === "resource") return "resource";
|
|
1499
|
+
if (fhirSchema.kind === "logical") return "logical";
|
|
1499
1500
|
return "resource";
|
|
1500
1501
|
}
|
|
1501
1502
|
function mkIdentifier(fhirSchema) {
|
|
@@ -3123,7 +3124,9 @@ var Writer = class extends FileSystemWriter {
|
|
|
3123
3124
|
];
|
|
3124
3125
|
}
|
|
3125
3126
|
generateDisclaimer() {
|
|
3126
|
-
this.disclaimer().forEach((e) =>
|
|
3127
|
+
this.disclaimer().forEach((e) => {
|
|
3128
|
+
this.comment(e);
|
|
3129
|
+
});
|
|
3127
3130
|
this.line();
|
|
3128
3131
|
}
|
|
3129
3132
|
indentBlock(gencontent) {
|
|
@@ -5250,7 +5253,9 @@ ${nestedInterfaces}`;
|
|
|
5250
5253
|
if ("fields" in schema && schema.fields) {
|
|
5251
5254
|
for (const [, field] of Object.entries(schema.fields)) {
|
|
5252
5255
|
const importDeps = this.collectFieldImports(field);
|
|
5253
|
-
importDeps.forEach((imp) =>
|
|
5256
|
+
importDeps.forEach((imp) => {
|
|
5257
|
+
imports.add(imp);
|
|
5258
|
+
});
|
|
5254
5259
|
}
|
|
5255
5260
|
}
|
|
5256
5261
|
lines.push("import type { ResourceType } from './utilities.js';");
|
|
@@ -5489,7 +5494,9 @@ ${nestedInterfaces}`;
|
|
|
5489
5494
|
} else if (typeString === "Reference" && field.reference && Array.isArray(field.reference)) {
|
|
5490
5495
|
const referenceTypes = this.extractReferenceTypes(field.reference);
|
|
5491
5496
|
if (referenceTypes.length > 0) {
|
|
5492
|
-
referenceTypes.forEach((type) =>
|
|
5497
|
+
referenceTypes.forEach((type) => {
|
|
5498
|
+
this.resourceTypes.add(type);
|
|
5499
|
+
});
|
|
5493
5500
|
const unionType = referenceTypes.map((type) => `'${type}'`).join(" | ");
|
|
5494
5501
|
typeString = `Reference<${unionType}>`;
|
|
5495
5502
|
}
|
|
@@ -5898,8 +5905,9 @@ var TypeScript = class extends Writer {
|
|
|
5898
5905
|
if (isResourceTypeSchema(schema)) {
|
|
5899
5906
|
const possibleResourceTypes = [schema.identifier];
|
|
5900
5907
|
possibleResourceTypes.push(...tsIndex.resourceChildren(schema.identifier));
|
|
5908
|
+
const openSetSuffix = this.opts.openResourceTypeSet && possibleResourceTypes.length > 1 ? " | string" : "";
|
|
5901
5909
|
this.lineSM(
|
|
5902
|
-
`resourceType: ${possibleResourceTypes.sort((a, b) => a.name.localeCompare(b.name)).map((e) => `"${e.name}"`).join(" | ")}`
|
|
5910
|
+
`resourceType: ${possibleResourceTypes.sort((a, b) => a.name.localeCompare(b.name)).map((e) => `"${e.name}"`).join(" | ")}${openSetSuffix}`
|
|
5903
5911
|
);
|
|
5904
5912
|
this.line();
|
|
5905
5913
|
}
|
|
@@ -6158,7 +6166,7 @@ var writerToGenerator = (writerGen) => {
|
|
|
6158
6166
|
};
|
|
6159
6167
|
return {
|
|
6160
6168
|
generate: async ({ index: tsIndex }) => {
|
|
6161
|
-
writerGen.generate(tsIndex);
|
|
6169
|
+
await writerGen.generate(tsIndex);
|
|
6162
6170
|
return getGeneratedFiles();
|
|
6163
6171
|
},
|
|
6164
6172
|
setOutputDir: (outputDir) => writerGen.opts.outputDir = outputDir,
|
|
@@ -6329,19 +6337,26 @@ var APIBuilder = class {
|
|
|
6329
6337
|
this.logger.debug(`Configured TypeScript generator (${options.moduleFormat || "esm"})`);
|
|
6330
6338
|
return this;
|
|
6331
6339
|
}
|
|
6332
|
-
typescript(
|
|
6333
|
-
const
|
|
6340
|
+
typescript(userOpts) {
|
|
6341
|
+
const defaultWriterOpts = {
|
|
6342
|
+
logger: this.logger,
|
|
6334
6343
|
outputDir: Path4.join(this.options.outputDir, "/types"),
|
|
6335
6344
|
tabSize: 4,
|
|
6336
6345
|
withDebugComment: false,
|
|
6337
6346
|
commentLinePrefix: "//",
|
|
6338
|
-
generateProfile: true
|
|
6339
|
-
|
|
6347
|
+
generateProfile: true
|
|
6348
|
+
};
|
|
6349
|
+
const defaultTsOpts = {
|
|
6350
|
+
...defaultWriterOpts,
|
|
6351
|
+
openResourceTypeSet: false
|
|
6352
|
+
};
|
|
6353
|
+
const opts = {
|
|
6354
|
+
...defaultTsOpts,
|
|
6355
|
+
...Object.fromEntries(Object.entries(userOpts).filter(([_, v]) => v !== void 0))
|
|
6340
6356
|
};
|
|
6341
|
-
const
|
|
6342
|
-
const generator = writerToGenerator(new TypeScript(effectiveOpts));
|
|
6357
|
+
const generator = writerToGenerator(new TypeScript(opts));
|
|
6343
6358
|
this.generators.set("typescript", generator);
|
|
6344
|
-
this.logger.debug(`Configured TypeScript generator (${JSON.stringify(
|
|
6359
|
+
this.logger.debug(`Configured TypeScript generator (${JSON.stringify(opts, void 0, 2)})`);
|
|
6345
6360
|
return this;
|
|
6346
6361
|
}
|
|
6347
6362
|
csharp(namespace, staticSourceDir) {
|