UNPKG

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
"use strict"; 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