@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/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) => this.comment(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) => imports.add(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) => this.resourceTypes.add(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(opts) {
6333
- const writerOpts = {
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
- exportTypeTree: this.options.exportTypeTree
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 effectiveOpts = { logger: this.logger, ...writerOpts, ...opts };
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(effectiveOpts, void 0, 2)})`);
6359
+ this.logger.debug(`Configured TypeScript generator (${JSON.stringify(opts, void 0, 2)})`);
6345
6360
  return this;
6346
6361
  }
6347
6362
  csharp(namespace, staticSourceDir) {