babelfhir-ts 1.0.15 → 1.0.16
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/out/main.js +27 -18
- package/package.json +2 -1
package/out/main.js
CHANGED
|
@@ -210,6 +210,8 @@ async function run() {
|
|
|
210
210
|
console.error(' or: babelfhir-ts install ./package.tgz');
|
|
211
211
|
process.exit(1);
|
|
212
212
|
}
|
|
213
|
+
// Force no-cache for install command
|
|
214
|
+
flags.noCache = true;
|
|
213
215
|
try {
|
|
214
216
|
let downloadedPath;
|
|
215
217
|
// Check if packageToInstall is a local file path
|
|
@@ -234,38 +236,37 @@ async function run() {
|
|
|
234
236
|
}
|
|
235
237
|
console.log(`✓ Package processed successfully: ${path.basename(outputArchive)}`);
|
|
236
238
|
// Extract the archive to access generated folder
|
|
237
|
-
console.log(`Extracting
|
|
239
|
+
console.log(`Extracting generated code...`);
|
|
238
240
|
const { extract } = await import('tar');
|
|
239
241
|
const extractDir = path.join(process.cwd(), '.temp-install');
|
|
240
242
|
if (!fs.existsSync(extractDir)) {
|
|
241
243
|
fs.mkdirSync(extractDir, { recursive: true });
|
|
242
244
|
}
|
|
243
245
|
await extract({ cwd: extractDir, file: outputArchive });
|
|
244
|
-
//
|
|
245
|
-
|
|
246
|
+
// Look for generated folder - could be at root or under 'package' subfolder
|
|
247
|
+
let generatedDir = path.join(extractDir, 'generated');
|
|
248
|
+
if (!fs.existsSync(generatedDir)) {
|
|
249
|
+
generatedDir = path.join(extractDir, 'package', 'generated');
|
|
250
|
+
}
|
|
246
251
|
if (!fs.existsSync(generatedDir)) {
|
|
247
252
|
throw new Error('Generated folder not found in package archive');
|
|
248
253
|
}
|
|
249
|
-
|
|
250
|
-
const
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
//
|
|
258
|
-
await npmInstall(generatedTarball);
|
|
259
|
-
// Clean up extraction directory and archives
|
|
254
|
+
// Verify package.json exists
|
|
255
|
+
const pkgJsonPath = path.join(generatedDir, 'package.json');
|
|
256
|
+
if (!fs.existsSync(pkgJsonPath)) {
|
|
257
|
+
throw new Error(`package.json not found in generated folder: ${generatedDir}`);
|
|
258
|
+
}
|
|
259
|
+
console.log(`Installing from: ${path.relative(process.cwd(), generatedDir)}`);
|
|
260
|
+
// Install directly from the generated folder
|
|
261
|
+
await npmInstall(generatedDir);
|
|
262
|
+
// Clean up temporary files
|
|
260
263
|
console.log(`Cleaning up temporary files...`);
|
|
261
264
|
if (fs.existsSync(extractDir)) {
|
|
262
265
|
fs.rmSync(extractDir, { recursive: true, force: true });
|
|
263
266
|
}
|
|
264
267
|
if (fs.existsSync(outputArchive)) {
|
|
265
268
|
fs.unlinkSync(outputArchive);
|
|
266
|
-
|
|
267
|
-
if (fs.existsSync(generatedTarball)) {
|
|
268
|
-
fs.unlinkSync(generatedTarball);
|
|
269
|
+
console.log(`✓ Removed ${path.basename(outputArchive)}`);
|
|
269
270
|
}
|
|
270
271
|
if (flags.noCache) {
|
|
271
272
|
cleanupCache();
|
|
@@ -274,7 +275,7 @@ async function run() {
|
|
|
274
275
|
return;
|
|
275
276
|
}
|
|
276
277
|
catch (error) {
|
|
277
|
-
// Clean up
|
|
278
|
+
// Clean up temporary files on error
|
|
278
279
|
const tempDir = path.join(process.cwd(), '.temp-download');
|
|
279
280
|
if (fs.existsSync(tempDir)) {
|
|
280
281
|
fs.rmSync(tempDir, { recursive: true, force: true });
|
|
@@ -283,6 +284,14 @@ async function run() {
|
|
|
283
284
|
if (fs.existsSync(extractDir)) {
|
|
284
285
|
fs.rmSync(extractDir, { recursive: true, force: true });
|
|
285
286
|
}
|
|
287
|
+
// Clean up any leftover archive
|
|
288
|
+
const baseName = packageToInstall.includes('@')
|
|
289
|
+
? packageToInstall.replace('@', '-').replace(/\//g, '-')
|
|
290
|
+
: path.basename(packageToInstall, path.extname(packageToInstall));
|
|
291
|
+
const outputArchive = path.join(process.cwd(), `${baseName}.with-generated.tgz`);
|
|
292
|
+
if (fs.existsSync(outputArchive)) {
|
|
293
|
+
fs.unlinkSync(outputArchive);
|
|
294
|
+
}
|
|
286
295
|
console.error(`Error: ${error.message}`);
|
|
287
296
|
process.exit(1);
|
|
288
297
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "babelfhir-ts",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.16",
|
|
4
4
|
"description": "BabelFHIR-TS: generate TypeScript interfaces, validators, and helper classes from FHIR R4 StructureDefinitions (profiles) directly inside package archives.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "out/main.js",
|
|
@@ -66,6 +66,7 @@
|
|
|
66
66
|
"@vitest/eslint-plugin": "^1.1.44",
|
|
67
67
|
"axios": "^1.8.4",
|
|
68
68
|
"fhirpath": "^4.0.0",
|
|
69
|
+
"pink.admission-generated": "file:.temp-install/generated",
|
|
69
70
|
"tar": "^7.4.3",
|
|
70
71
|
"ts-morph": "^25.0.1",
|
|
71
72
|
"tsx": "^4.19.3",
|