@knapsack/app
Version:
Build Design Systems with Knapsack
40 lines • 1.39 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateSpec = validateSpec;
const schema_utils_1 = require("@knapsack/schema-utils");
const schemaKsTemplateSpecSlots_json_1 = __importDefault(require("@knapsack/types/json-schemas/schemaKsTemplateSpecSlots.json"));
function validateSpec(spec) {
let ok = true;
const msgs = [];
if (spec?.props) {
const result = (0, schema_utils_1.validateSchema)(spec.props);
if (!result.ok) {
ok = false;
msgs.push('Invalid "spec.props":');
msgs.push(result.message);
}
}
if (spec?.slots) {
const result = (0, schema_utils_1.validateDataAgainstSchema)(schemaKsTemplateSpecSlots_json_1.default, spec.slots);
if (!result.ok) {
ok = false;
msgs.push('Invalid "spec.slots":');
msgs.push(result.message);
if (result.errors) {
result.errors.forEach((e) => {
if (!e.message)
return;
msgs.push(e.message);
});
}
}
}
return {
ok,
message: msgs.join('\n'),
};
}
//# sourceMappingURL=validate-spec.js.map