@storm-software/untyped
Version:
A package containing `untyped` utilities for building Storm Software libraries and applications
53 lines (46 loc) • 1.27 kB
JavaScript
import {
writeError,
writeTrace
} from "./chunk-WTJWQQN2.js";
import {
__name,
getOutputFile,
init_esm_shims
} from "./chunk-YRIEPGDN.js";
// src/generators/dts.ts
init_esm_shims();
import { writeFile } from "node:fs/promises";
import { generateTypes } from "untyped";
function generateDeclaration(schema) {
return `
// Generated by @storm-software/untyped
// Do not edit this file directly
${generateTypes(schema, {
addExport: true,
partial: true,
interfaceName: `${schema.title?.replaceAll(" ", "") || "Type"}Schema`
})}
`;
}
__name(generateDeclaration, "generateDeclaration");
function generateDeclarationFile(schema, file, config) {
try {
const declarations = getOutputFile(file, "d.ts");
writeTrace(`Writing type declaration file ${declarations}`, config);
return writeFile(declarations, generateDeclaration(schema));
} catch (error) {
writeError(`Error writing declaration file for ${file.name}
Error:
${error?.message ? error.message : JSON.stringify(error)}${error?.stack ? `
Stack Trace: ${error.stack}` : ""}
Parsed schema:
${JSON.stringify(schema)}
`, config);
throw error;
}
}
__name(generateDeclarationFile, "generateDeclarationFile");
export {
generateDeclaration,
generateDeclarationFile
};