UNPKG

n8n-nodes-larkbase-v3

Version:

n8n node to connect with Larkbase API with UTF-8 support, date filtering, array filter values, text field processing, improved field type handling, pagination fixes, advanced data type conversion, proper date filtering with ExactDate format, updated node

97 lines 3.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.normalizeRecord = exports.processFieldValue = exports.mapInputToUpdateRecords = exports.mapInputToRecords = void 0; function mapInputToRecords(items, fieldMapping) { return items.map((item) => { const fields = {}; for (const [targetField, sourceField] of Object.entries(fieldMapping)) { if (sourceField && typeof sourceField === 'string') { const value = item.json[sourceField]; if (value !== undefined) { fields[targetField] = value; } } } return { fields }; }); } exports.mapInputToRecords = mapInputToRecords; function mapInputToUpdateRecords(items, fieldMapping, recordIdField) { return items .map((item) => { const fields = {}; const recordId = item.json[recordIdField]; if (!recordId) return null; for (const [targetField, sourceField] of Object.entries(fieldMapping)) { if (sourceField && typeof sourceField === 'string') { const value = item.json[sourceField]; if (value !== undefined) { fields[targetField] = value; } } } return { record_id: recordId, fields, }; }) .filter((record) => record !== null); } exports.mapInputToUpdateRecords = mapInputToUpdateRecords; function processFieldValue(value, fieldType) { if (value === null || value === undefined) { return null; } switch (fieldType) { case 'text': return String(value); case 'number': return Number(value); case 'datetime': if (typeof value === 'string') { const timestamp = new Date(value).getTime(); return isNaN(timestamp) ? null : timestamp; } return value; case 'select': return String(value); case 'user': if (typeof value === 'string') { return [{ id: value }]; } else if (Array.isArray(value) && typeof value[0] === 'string') { return value.map((id) => ({ id })); } return value; case 'link_record': if (typeof value === 'string') { return [value]; } else if (Array.isArray(value) && !value.some((v) => typeof v === 'object')) { return value; } return value; default: return value; } } exports.processFieldValue = processFieldValue; function normalizeRecord(record, fieldTypes) { const normalizedFields = {}; for (const [fieldName, value] of Object.entries(record.fields)) { const fieldType = fieldTypes[fieldName]; if (fieldType) { normalizedFields[fieldName] = processFieldValue(value, fieldType); } else { normalizedFields[fieldName] = value; } } return { ...(record.record_id ? { record_id: record.record_id } : {}), fields: normalizedFields, }; } exports.normalizeRecord = normalizeRecord; //# sourceMappingURL=utils.js.map