@storm-software/untyped
Version:
A package containing `untyped` utilities for building Storm Software libraries and applications
74 lines (69 loc) • 2.12 kB
JavaScript
import {
generateDeclarationFile
} from "./chunk-LZOR3QY4.js";
import {
generateJsonSchemaFile
} from "./chunk-JIHQMZNF.js";
import {
generateMarkdownFile
} from "./chunk-6G3CK5VB.js";
import {
isVerbose,
writeError,
writeTrace
} from "./chunk-WTJWQQN2.js";
import {
__name,
init_esm_shims,
joinPaths
} from "./chunk-YRIEPGDN.js";
// src/generate.ts
init_esm_shims();
import { glob } from "glob";
import { loadSchema } from "untyped/loader";
var getGenerateAction = /* @__PURE__ */ __name((config) => async (options) => {
writeTrace(`Running Storm Untyped with options: ${JSON.stringify(options)}`, config);
const files = await glob(options.entry || "**/{untyped.ts,*.untyped.ts}", {
ignore: [
"**/{*.stories.tsx,*.stories.ts,*.spec.tsx,*.spec.ts}",
"**/dist/**",
"**/tmp/**",
"**/node_modules/**",
"**/.git/**",
"**/.cache/**",
"**/.nx/**"
],
withFileTypes: true,
cwd: config.workspaceRoot
});
await Promise.all(files.map(async (file) => {
writeTrace(`Generating files for schema file: ${joinPaths(file.parentPath, file.name)}`, config);
let schema;
try {
schema = await loadSchema(joinPaths(file.parentPath, file.name), {
jiti: {
debug: isVerbose(config.logLevel),
fsCache: config.skipCache ? false : joinPaths(config.directories.cache || joinPaths(config.workspaceRoot, "node_modules/.cache/storm"), "jiti"),
interopDefault: true
}
});
} catch (error) {
writeError(`Error while parsing schema file: ${joinPaths(file.parentPath, file.name)}
Error:
${error?.message ? error.message : JSON.stringify(error)}${error?.stack ? `
Stack Trace: ${error.stack}` : ""}
Parsed schema:
${JSON.stringify(schema)}
`, config);
throw error;
}
const promises = [];
promises.push(generateDeclarationFile(schema, file, config));
promises.push(generateMarkdownFile(schema, file, config));
promises.push(generateJsonSchemaFile(schema, file, config));
return Promise.all(promises);
}));
}, "getGenerateAction");
export {
getGenerateAction
};