UNPKG

@kintone/dts-gen

Version:

Types for kintone js api and Types generating tools

84 lines 3.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.VisibleForTesting = exports.FieldTypeConverter = void 0; const objectvalues_1 = require("../utils/objectvalues"); const SIMPLE_VALUE_TYPES = [ "SINGLE_LINE_TEXT", "MULTI_LINE_TEXT", "RICH_TEXT", "DATE", "NUMBER", "DATETIME", "TIME", "DROP_DOWN", "LINK", "RADIO_BUTTON", ]; const CALCULATED_VALUE_TYPES = ["CALC"]; const SIMPLE_VALUE_IN_SAVED_RECORD = [ "RECORD_NUMBER", "CREATED_TIME", "UPDATED_TIME", ]; const USER_TYPES_IN_SAVED_RECORD = ["CREATOR", "MODIFIER"]; const STRING_LIST_TYPES = ["CHECK_BOX", "MULTI_SELECT"]; const ENTITY_LIST_TYPE = ["USER_SELECT", "GROUP_SELECT", "ORGANIZATION_SELECT"]; const FILE_TYPE = "FILE"; const SUB_TABLE_TYPE = "SUBTABLE"; const excludeLookupOrRelatedRecord = (field) => { return Object.keys(field).indexOf("relatedApp") < 0; }; const selectFieldsTypesIn = (types, fieldsToBeSelected) => { const fields = fieldsToBeSelected; const typeIncludes = (fieldToTest) => types.indexOf(fieldToTest.type) >= 0; return fields.filter(typeIncludes).filter(excludeLookupOrRelatedRecord); }; const selectFieldsTypesEquals = (type, fieldsToBeSelected) => { const fields = fieldsToBeSelected; return fields .filter((field) => field.type === type) .filter(excludeLookupOrRelatedRecord); }; const convertSubTableFields = (subTableFields) => { return subTableFields.map((subTableField) => { return { code: subTableField.code, type: subTableField.type, fields: convertFieldTypesToFieldTypeGroups((0, objectvalues_1.objectValues)(subTableField.fields)), }; }); }; const convertFieldTypesToFieldTypeGroups = (properties) => { const fieldTypes = (0, objectvalues_1.objectValues)(properties); const stringFields = selectFieldsTypesIn(SIMPLE_VALUE_TYPES, fieldTypes); const calculatedFields = selectFieldsTypesIn(CALCULATED_VALUE_TYPES, fieldTypes); const stringFieldsInSavedRecord = selectFieldsTypesIn(SIMPLE_VALUE_IN_SAVED_RECORD, fieldTypes); const userFieldsInSavedRecord = selectFieldsTypesIn(USER_TYPES_IN_SAVED_RECORD, fieldTypes); const stringListFields = selectFieldsTypesIn(STRING_LIST_TYPES, fieldTypes); const entityListFields = selectFieldsTypesIn(ENTITY_LIST_TYPE, fieldTypes); const fileTypeFields = selectFieldsTypesEquals(FILE_TYPE, fieldTypes); const subTableFields = convertSubTableFields(selectFieldsTypesEquals(SUB_TABLE_TYPE, fieldTypes)); return { stringFields, calculatedFields, stringFieldsInSavedRecord, entityListFields, userFieldsInSavedRecord, stringListFields, fileTypeFields, subTableFields, }; }; exports.FieldTypeConverter = { convertFieldTypesToFieldTypeGroups, }; exports.VisibleForTesting = { selectFieldsTypesIn, selectFieldsTypesEquals, convertSubTableFields, constants: { STRING_LIST_TYPES, FILE_TYPE, }, }; //# sourceMappingURL=fileldtype-converter.js.map