macoolka-type-model
Version:
`macoolka-type-model` is a library for define model in TypeScript. It easily build a type contain field and method to your Application. It provide a generation model for type and validition
88 lines • 3.31 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateModelName = exports.validateFieldName = exports.validateId = void 0;
/**
* Validate Module
* @desczh
* 校验Module
* @file
*/
var pipeable_1 = require("fp-ts/pipeable");
var macoolka_collection_1 = require("macoolka-collection");
var Show_1 = require("fp-ts/Show");
var Module_1 = require("../Module");
var graph_1 = require("../graph");
var E = __importStar(require("fp-ts/Either"));
/**
* Validate field id in interface
* @desczh
* 校验interface中id的规则
* @since 0.2.0
*/
var validateId = function (a) {
var idNames = (0, pipeable_1.pipe)(a.fields, macoolka_collection_1.array.filter(function (a) { return a.id === true; }), macoolka_collection_1.array.map(function (a) { return a.name; }));
return idNames.length === 0
? E.left((0, Module_1.idNotFound)({ model: a.name, name: '' }))
: idNames.length > 1
? E.left((0, Module_1.idRepeat)({ model: a.name, name: idNames.join(',') }))
: E.right(a);
};
exports.validateId = validateId;
/**
* Validate field id in interface
* @desczh
* 校验interface中字段名称的规则
* @since 0.2.0
*/
var validateFieldName = function (a) {
var fieldNames = (0, pipeable_1.pipe)(a.fields, macoolka_collection_1.array.groupBy({
getValue: function (a) { return a.name; },
show: Show_1.showString
}), Object.entries, macoolka_collection_1.array.filter(function (_a) {
var _ = _a[0], values = _a[1];
return values.length > 1;
}), macoolka_collection_1.array.map(function (_a) {
var key = _a[0];
return key;
}));
return fieldNames.length > 0
? E.left((0, Module_1.fieldNameRepeat)({ model: a.name, name: fieldNames.map(Show_1.showString.show).join(',') }))
: E.right(a);
};
exports.validateFieldName = validateFieldName;
/**
* Validate name rule in module
* @desczh
* 校验Module中名称的规则
* @since 0.2.0
*/
var validateModelName = function (ignoreNames) { return function (a) {
return (0, pipeable_1.pipe)(a, (0, graph_1.buildGraph)(ignoreNames), E.map(function () {
return a;
}));
}; };
exports.validateModelName = validateModelName;
//# sourceMappingURL=validation.js.map