@udraft/core
Version:
uDraft is a language and stack agnostic code-generation tool that simplifies full-stack development by converting a single YAML file into code for rapid development.
40 lines • 2.15 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.uNested = exports.uReference = exports.uEnum = exports.uDate = exports.uBoolean = exports.uFloat = exports.uInteger = exports.uNumber = exports.uString = exports.throwMissingFieldParameterError = void 0;
const builders_1 = require("../helpers/builders");
const attributes_1 = require("./attributes");
const entities_1 = require("./entities");
const queries_1 = require("./queries");
const terminal_kit_1 = require("terminal-kit");
const throwMissingFieldParameterError = (field, fieldType, parameter) => {
terminal_kit_1.terminal
.red(`[uDraft] Missing Field Parameter: The field `)
.bold.red(field)
.red(` of type `)
.bold.red(fieldType)
.red(` is missing the `)
.bold.red(parameter)
.red(` attribute!\n`);
process.exit(-1);
};
exports.throwMissingFieldParameterError = throwMissingFieldParameterError;
exports.uString = (0, builders_1.fieldBuilder)("string");
exports.uNumber = (0, builders_1.fieldBuilder)("number");
exports.uInteger = (0, builders_1.fieldBuilder)("int");
exports.uFloat = (0, builders_1.fieldBuilder)("float");
exports.uBoolean = (0, builders_1.fieldBuilder)("boolean");
exports.uDate = (0, builders_1.fieldBuilder)("date");
const uEnum = (name, enumName, enumDefinition) => {
const enumModel = (0, entities_1.uModel)(enumName);
if (enumDefinition)
enumModel.attributes([(0, attributes_1._enum)(enumDefinition)]);
else if (!(0, queries_1.$attr)(enumModel, (0, attributes_1._enum)()))
(0, exports.throwMissingFieldParameterError)(name, "uEnum:" + enumName, "enumDefinition");
return (0, exports.uNested)(name, enumModel);
};
exports.uEnum = uEnum;
const uReference = (name, nested, attributes = []) => (0, entities_1.uField)(name, "reference").attributes([(0, attributes_1._ref)(nested), ...attributes]);
exports.uReference = uReference;
const uNested = (name, nested, attributes = []) => (0, entities_1.uField)(name, "nested").attributes([(0, attributes_1._ref)(nested), ...attributes]);
exports.uNested = uNested;
//# sourceMappingURL=fields.js.map
;