UNPKG

@storm-software/workspace-tools

Version:

Tools for managing a Storm workspace, including various Nx generators and executors for common development tasks.

52 lines (49 loc) 1.77 kB
import { withRunGenerator } from "./chunk-4LIIIWIV.mjs"; import { stormWorkspaceConfigSchema, writeInfo, writeSuccess, writeTrace } from "./chunk-NODM27UV.mjs"; import { findWorkspaceRoot } from "./chunk-FR3YQN55.mjs"; import { __name } from "./chunk-2BPV2XV2.mjs"; // src/generators/config-schema/generator.ts import { formatFiles, writeJson } from "@nx/devkit"; import { zodToJsonSchema } from "zod-to-json-schema"; async function configSchemaGeneratorFn(tree, options, config) { writeInfo("\u{1F4E6} Running Storm Workspace Configuration JSON Schema generator", config); writeTrace(`Determining the Storm Workspace Configuration JSON Schema...`, config); const jsonSchema = zodToJsonSchema(stormWorkspaceConfigSchema, { name: "StormWorkspaceConfiguration" }); writeTrace(jsonSchema, config); const outputPath = options.outputFile.replaceAll("{workspaceRoot}", "").replaceAll(config?.workspaceRoot ?? findWorkspaceRoot(), options.outputFile?.startsWith("./") ? "" : "./"); writeTrace(`\u{1F4DD} Writing Storm Configuration JSON Schema to "${outputPath}"`, config); writeJson(tree, outputPath, jsonSchema, { spaces: 2 }); await formatFiles(tree); writeSuccess("\u{1F680} Storm Configuration JSON Schema creation has completed successfully!", config); return { success: true }; } __name(configSchemaGeneratorFn, "configSchemaGeneratorFn"); var generator_default = withRunGenerator("Configuration Schema Creator", configSchemaGeneratorFn, { hooks: { applyDefaultOptions: /* @__PURE__ */ __name((options) => { options.outputFile ??= "{workspaceRoot}/storm-workspace.schema.json"; return options; }, "applyDefaultOptions") } }); export { configSchemaGeneratorFn, generator_default };