@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
JavaScript
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
};