UNPKG

gypsum

Version:

Simple and easy lightweight typescript server side framework on Node.js.

46 lines 1.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Moment = require("moment"); const object_1 = require("tools-box/object"); const validall_1 = require("validall"); const logger_1 = require("../misc/logger"); function convert(src, fields, logger) { for (let i = 0; i < src.length; i++) { for (let j = 0; j < fields.length; j++) { let field = Array.isArray(fields[j]) ? fields[j] : [fields[j]]; let srcField = field[0]; let destField = field[1] || srcField; let method = field[2] || field[1] || 'from'; if (['form', 'fromNow'].indexOf(method) === -1) method = 'from'; if (srcField === '.' && typeof src[i] === 'string') { src[i] = Moment()[method](src[i]); } else if (validall_1.Types.object(src[i])) { let srcValue = object_1.getValue(src[i], srcField); if (srcValue) object_1.setValue(src[i], destField, Moment()[method](srcValue)); else logger.warn(`cannot find '${srcField}' in the response object`); } else { logger.warn(`input data does not match the response`); } } } } function moment(ctx, ...fields) { const logger = new logger_1.Logger('moment'); if (!fields || !fields.length) return ctx.next(); let responseData = ctx.response.data; if (!responseData || (responseData && !responseData.length)) return ctx.next(); if (!Array.isArray(responseData)) convert([responseData], fields, logger); else convert(responseData, fields, logger); ctx.next(); } exports.moment = moment; //# sourceMappingURL=moment.js.map