@atomic-ehr/codegen 0.0.1-canary.20251106152808.f4530b9 → 0.0.1-canary.20251107144815.ed5b2c9
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 +8 -8
- package/dist/index.d.ts +31 -10
- package/dist/index.js +19 -25
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1715,8 +1715,10 @@ var mkField = (register, fhirSchema, path, element, logger) => {
|
|
|
1715
1715
|
enumValues = buildEnum(register, fhirSchema, element, logger);
|
|
1716
1716
|
}
|
|
1717
1717
|
}
|
|
1718
|
+
const fieldType = buildFieldType(register, fhirSchema, path, element, logger);
|
|
1719
|
+
if (!fieldType) logger?.warn(`Field type not found for ${path.join(".")}`);
|
|
1718
1720
|
return {
|
|
1719
|
-
type:
|
|
1721
|
+
type: fieldType,
|
|
1720
1722
|
required: isRequired(register, fhirSchema, path),
|
|
1721
1723
|
excluded: isExcluded(register, fhirSchema, path),
|
|
1722
1724
|
reference: buildReferences(register, fhirSchema, element),
|
|
@@ -4162,7 +4164,7 @@ var BaseGenerator = class {
|
|
|
4162
4164
|
* This is the main method that orchestrates the entire generation process
|
|
4163
4165
|
* @param schemas - Array of TypeSchema documents
|
|
4164
4166
|
*/
|
|
4165
|
-
async generate(schemas) {
|
|
4167
|
+
async generate({ schemas }) {
|
|
4166
4168
|
return this.errorBoundary.withErrorBoundary(
|
|
4167
4169
|
async () => {
|
|
4168
4170
|
this.generationStartTime = performance.now();
|
|
@@ -4202,7 +4204,7 @@ var BaseGenerator = class {
|
|
|
4202
4204
|
return result;
|
|
4203
4205
|
};
|
|
4204
4206
|
try {
|
|
4205
|
-
const result = await this.generate(schemas);
|
|
4207
|
+
const result = await this.generate({ schemas, index: null });
|
|
4206
4208
|
result.forEach((file) => {
|
|
4207
4209
|
const mockResult = mockWriteResults.get(file.filename);
|
|
4208
4210
|
if (mockResult) {
|
|
@@ -5510,10 +5512,10 @@ ${nestedInterfaces}`;
|
|
|
5510
5512
|
/**
|
|
5511
5513
|
* Override generate to clean directory first
|
|
5512
5514
|
*/
|
|
5513
|
-
async generate(
|
|
5515
|
+
async generate(input) {
|
|
5514
5516
|
await this.fileManager.cleanDirectory();
|
|
5515
5517
|
this.logger.debug("Cleaned output directory before generation");
|
|
5516
|
-
return super.generate(
|
|
5518
|
+
return super.generate(input);
|
|
5517
5519
|
}
|
|
5518
5520
|
/**
|
|
5519
5521
|
* Run post-generation hooks - generate utility files
|
|
@@ -6077,16 +6079,12 @@ var writerToGenerator = (writerGen) => {
|
|
|
6077
6079
|
});
|
|
6078
6080
|
};
|
|
6079
6081
|
return {
|
|
6080
|
-
generate: async (
|
|
6081
|
-
const tsIndex = mkTypeSchemaIndex(schemas);
|
|
6082
|
-
if (writerGen.opts.writeTypeTree) {
|
|
6083
|
-
await tsIndex.exportTree(writerGen.opts.writeTypeTree);
|
|
6084
|
-
}
|
|
6082
|
+
generate: async ({ index: tsIndex }) => {
|
|
6085
6083
|
writerGen.generate(tsIndex);
|
|
6086
6084
|
return getGeneratedFiles();
|
|
6087
6085
|
},
|
|
6088
6086
|
setOutputDir: (outputDir) => writerGen.opts.outputDir = outputDir,
|
|
6089
|
-
build: async (
|
|
6087
|
+
build: async (_input) => getGeneratedFiles()
|
|
6090
6088
|
};
|
|
6091
6089
|
};
|
|
6092
6090
|
var normalizeFileName = (str) => {
|
|
@@ -6131,24 +6129,18 @@ var APIBuilder = class {
|
|
|
6131
6129
|
this.packages.push(packageMetaToNpm({ name: packageName, version: version || "latest" }));
|
|
6132
6130
|
return this;
|
|
6133
6131
|
}
|
|
6134
|
-
/**
|
|
6135
|
-
* Load TypeSchema from files
|
|
6136
|
-
*/
|
|
6137
6132
|
fromFiles(...filePaths) {
|
|
6138
6133
|
this.logger.debug(`Loading from ${filePaths.length} TypeSchema files`);
|
|
6139
6134
|
const operation = this.loadFromFiles(filePaths);
|
|
6140
6135
|
this.pendingOperations.push(operation);
|
|
6141
6136
|
return this;
|
|
6142
6137
|
}
|
|
6143
|
-
/**
|
|
6144
|
-
* Load TypeSchema from TypeSchema objects
|
|
6145
|
-
*/
|
|
6146
6138
|
fromSchemas(schemas) {
|
|
6147
6139
|
this.logger.debug(`Adding ${schemas.length} TypeSchemas to generation`);
|
|
6148
6140
|
this.schemas = [...this.schemas, ...schemas];
|
|
6149
6141
|
return this;
|
|
6150
6142
|
}
|
|
6151
|
-
|
|
6143
|
+
typescriptDepricated(options = {}) {
|
|
6152
6144
|
const typesOutputDir = `${this.options.outputDir}/types`;
|
|
6153
6145
|
const generator = new TypeScriptGenerator({
|
|
6154
6146
|
outputDir: typesOutputDir,
|
|
@@ -6173,7 +6165,7 @@ var APIBuilder = class {
|
|
|
6173
6165
|
this.logger.debug(`Configured TypeScript generator (${options.moduleFormat || "esm"})`);
|
|
6174
6166
|
return this;
|
|
6175
6167
|
}
|
|
6176
|
-
|
|
6168
|
+
typescript(opts) {
|
|
6177
6169
|
const writerOpts = {
|
|
6178
6170
|
outputDir: Path4.join(this.options.outputDir, "/types"),
|
|
6179
6171
|
tabSize: 4,
|
|
@@ -6347,8 +6339,10 @@ var APIBuilder = class {
|
|
|
6347
6339
|
});
|
|
6348
6340
|
const typeSchemas = await generateTypeSchemas(register, this.logger);
|
|
6349
6341
|
await this.tryWriteTypeSchema(typeSchemas);
|
|
6342
|
+
const tsIndex = mkTypeSchemaIndex(typeSchemas);
|
|
6343
|
+
if (this.options.exportTypeTree) await tsIndex.exportTree(this.options.exportTypeTree);
|
|
6350
6344
|
this.logger.debug(`Executing ${this.generators.size} generators`);
|
|
6351
|
-
await this.executeGenerators(result, typeSchemas);
|
|
6345
|
+
await this.executeGenerators(result, { schemas: typeSchemas, index: tsIndex });
|
|
6352
6346
|
this.logger.info("Generation completed successfully");
|
|
6353
6347
|
result.success = result.errors.length === 0;
|
|
6354
6348
|
this.logger.debug(`Generation completed: ${result.filesGenerated.length} files`);
|
|
@@ -6415,11 +6409,11 @@ var APIBuilder = class {
|
|
|
6415
6409
|
this.cache.setMany(schemas);
|
|
6416
6410
|
}
|
|
6417
6411
|
}
|
|
6418
|
-
async executeGenerators(result,
|
|
6412
|
+
async executeGenerators(result, input) {
|
|
6419
6413
|
for (const [type, generator] of this.generators.entries()) {
|
|
6420
6414
|
this.logger.info(`Generating ${type}...`);
|
|
6421
6415
|
try {
|
|
6422
|
-
const files = await generator.generate(
|
|
6416
|
+
const files = await generator.generate(input);
|
|
6423
6417
|
result.filesGenerated.push(...files.map((f) => f.path || f.filename));
|
|
6424
6418
|
this.logger.info(`Generating ${type} finished successfully`);
|
|
6425
6419
|
} catch (error) {
|
|
@@ -6452,7 +6446,7 @@ function createAPIFromConfig(config) {
|
|
|
6452
6446
|
builder.fromFiles(...config.files);
|
|
6453
6447
|
}
|
|
6454
6448
|
if (config.typescript) {
|
|
6455
|
-
builder.
|
|
6449
|
+
builder.typescriptDepricated(config.typescript);
|
|
6456
6450
|
}
|
|
6457
6451
|
return builder;
|
|
6458
6452
|
}
|
|
@@ -6460,13 +6454,13 @@ async function generateTypesFromPackage(packageName, outputDir, options = {}) {
|
|
|
6460
6454
|
return createAPI({
|
|
6461
6455
|
outputDir,
|
|
6462
6456
|
verbose: options.verbose
|
|
6463
|
-
}).fromPackage(packageName, options.version).
|
|
6457
|
+
}).fromPackage(packageName, options.version).typescriptDepricated().generate();
|
|
6464
6458
|
}
|
|
6465
6459
|
async function generateTypesFromFiles(inputFiles, outputDir, options = {}) {
|
|
6466
6460
|
return createAPI({
|
|
6467
6461
|
outputDir,
|
|
6468
6462
|
verbose: options.verbose
|
|
6469
|
-
}).fromFiles(...inputFiles).
|
|
6463
|
+
}).fromFiles(...inputFiles).typescriptDepricated().generate();
|
|
6470
6464
|
}
|
|
6471
6465
|
var DEFAULT_CONFIG = {
|
|
6472
6466
|
outputDir: "./generated",
|