@kintone/dts-gen
Version:
Types for kintone js api and Types generating tools
84 lines • 3.1 kB
JavaScript
;
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