UNPKG

@nodescript/stdlib

Version:
75 lines (74 loc) 2 kB
import { parseDate } from '../lib/date.js'; export const module = { version: '1.0.4', moduleName: 'Date / Increment', description: 'Increments a specified date component.', params: { date: { schema: { type: 'any' }, attributes: { valuePlaceholder: 'now', }, }, increment: { schema: { type: 'number', default: 0, }, }, unit: { schema: { type: 'string', enum: ['year', 'month', 'day', 'hour', 'minute', 'second', 'millisecond'], default: 'day', } } }, result: { schema: { type: 'any' }, } }; export const compute = params => { const { date, increment, unit } = params; const d = parseDate(date); switch (unit) { case 'year': { const val = d.getUTCFullYear(); d.setUTCFullYear(val + increment); return d; } case 'month': { const val = d.getUTCMonth(); d.setUTCMonth(val + increment); return d; } case 'day': { const val = d.getUTCDate(); d.setUTCDate(val + increment); return d; } case 'hour': { const val = d.getUTCHours(); d.setUTCHours(val + increment); return d; } case 'minute': { const val = d.getUTCMinutes(); d.setUTCMinutes(val + increment); return d; } case 'second': { const val = d.getUTCSeconds(); d.setUTCSeconds(val + increment); return d; } case 'millisecond': { const val = d.getUTCMilliseconds(); d.setUTCMilliseconds(val + increment); return d; } default: { throw new Error(`Unsupported unit: ${unit}`); } } };