@kubernetes-models/crd-generate
Version:
Generate Kubernetes models for custom resource definitions (CRD).
29 lines • 1.13 kB
JavaScript
import { transformSchema, compileSchemas, } from "@kubernetes-models/generate";
import { getSchemaPath } from "../utils.js";
import { trimSuffix } from "@kubernetes-models/string-util";
const generateSchemas = async (definitions) => {
const files = [];
const tasks = definitions.map((def) => ({
schema: { ...transformSchema(def.schema), $id: def.schemaId },
refs: {
"io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta": "@kubernetes-models/apimachinery/_schemas/IoK8sApimachineryPkgApisMetaV1ObjectMeta",
},
}));
const schemas = await compileSchemas(tasks);
for (let i = 0; i < definitions.length; i++) {
const def = definitions[i];
const path = getSchemaPath(def.schemaId);
files.push({
path,
content: schemas[i],
},
// TODO: Move this to @kubernetes-models/generate
{
path: trimSuffix(path, ".js") + ".d.ts",
content: `export function validate(data: unknown): boolean;`,
});
}
return files;
};
export default generateSchemas;
//# sourceMappingURL=schema.js.map