@amritk/mjst 0.3.0 → 0.4.0
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.js +18 -1
- package/package.json +1 -1
- package/src/cli.ts +5 -1
package/dist/cli.js
CHANGED
|
@@ -2575,6 +2575,21 @@ var buildSchema = async (rootSchema, rootTypeName, extensions, typesOnly, logWar
|
|
|
2575
2575
|
return files;
|
|
2576
2576
|
};
|
|
2577
2577
|
|
|
2578
|
+
// ../helpers/dist/derive-root-type-name.js
|
|
2579
|
+
var isObject = (value) => !!value && typeof value === "object" && !Array.isArray(value);
|
|
2580
|
+
var titleToPascalCase = (title) => {
|
|
2581
|
+
const words = title.split(/[^a-zA-Z0-9]+/).filter(Boolean);
|
|
2582
|
+
const pascal = words.map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join("");
|
|
2583
|
+
return pascal.replace(/^\d+/, "");
|
|
2584
|
+
};
|
|
2585
|
+
var deriveRootTypeName = (schema) => {
|
|
2586
|
+
if (!isObject(schema) || typeof schema["title"] !== "string") {
|
|
2587
|
+
return "Document";
|
|
2588
|
+
}
|
|
2589
|
+
const name = titleToPascalCase(schema["title"]);
|
|
2590
|
+
return name || "Document";
|
|
2591
|
+
};
|
|
2592
|
+
|
|
2578
2593
|
// src/detect-helpers-mode.ts
|
|
2579
2594
|
import { createRequire as createRequire2 } from "node:module";
|
|
2580
2595
|
import { resolve } from "node:path";
|
|
@@ -2714,7 +2729,9 @@ var run = async () => {
|
|
|
2714
2729
|
await mkdir(outputDir, { recursive: true });
|
|
2715
2730
|
const helpersMode = config.helpers ?? detectHelpersMode(outputDir);
|
|
2716
2731
|
console.log(`Helpers mode: ${helpersMode}${config.helpers ? " (explicit)" : " (auto-detected)"}`);
|
|
2717
|
-
const
|
|
2732
|
+
const rootTypeName = deriveRootTypeName(schema);
|
|
2733
|
+
console.log(`Root type: ${rootTypeName}`);
|
|
2734
|
+
const files = await buildSchema(schema, rootTypeName, undefined, config.typesOnly, config.logWarnings, config.strict, helpersMode);
|
|
2718
2735
|
for (const file of files) {
|
|
2719
2736
|
const filePath = join(outputDir, file.filename);
|
|
2720
2737
|
await mkdir(dirname2(filePath), { recursive: true });
|
package/package.json
CHANGED
package/src/cli.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { mkdir, readFile, unlink, writeFile } from 'node:fs/promises'
|
|
|
4
4
|
import { dirname, join, resolve } from 'node:path'
|
|
5
5
|
import { promisify } from 'node:util'
|
|
6
6
|
import { buildSchema } from '@amritk/generate-parsers'
|
|
7
|
+
import { deriveRootTypeName } from '@amritk/helpers/derive-root-type-name'
|
|
7
8
|
import type { JSONSchema } from 'json-schema-typed/draft-2020-12'
|
|
8
9
|
|
|
9
10
|
const execFileAsync = promisify(execFile)
|
|
@@ -63,9 +64,12 @@ const run = async (): Promise<void> => {
|
|
|
63
64
|
const helpersMode = config.helpers ?? detectHelpersMode(outputDir)
|
|
64
65
|
console.log(`Helpers mode: ${helpersMode}${config.helpers ? ' (explicit)' : ' (auto-detected)'}`)
|
|
65
66
|
|
|
67
|
+
const rootTypeName = deriveRootTypeName(schema)
|
|
68
|
+
console.log(`Root type: ${rootTypeName}`)
|
|
69
|
+
|
|
66
70
|
const files = await buildSchema(
|
|
67
71
|
schema as JSONSchema,
|
|
68
|
-
|
|
72
|
+
rootTypeName,
|
|
69
73
|
undefined,
|
|
70
74
|
config.typesOnly,
|
|
71
75
|
config.logWarnings,
|