UNPKG

@gameroom/cli

Version:

A command line tool for Gameroom

68 lines (65 loc) 2.33 kB
const { dateAddDays, parseDate } = require('../helpers'), { prompt } = require('../consoleIO'), PERIOD_START = 1598763600000 // Aug 30, 2020 module.exports = async (options) => { if (options.today) { const date = new Date() date.setHours(0,0,0,0) options.start_at = date options.end_at = dateAddDays(date, 1) } if (options.yesterday) { const date = new Date() date.setHours(0,0,0,0) options.end_at = date options.start_at = dateAddDays(date, -1) } if (options['this-week']) { const date = new Date() date.setHours(0,0,0,0) options.start_at = date.setDate(date.getDate() - date.getDay()) options.end_at = dateAddDays(date, 7) } if (options['last-week']) { const date = new Date() date.setHours(0,0,0,0) options.end_at = date.setDate(date.getDate() - date.getDay()) options.start_at = dateAddDays(date, -7) } if (options['this-period']) { const date = new Date() date.setHours(0,0,0,0) date.setDate(date.getDate() - date.getDay()) // Sunday let end = new Date(PERIOD_START) while (end <= date) end = dateAddDays(end, 14) // Period End options.end_at = end options.start_at = dateAddDays(end, -14) } if (options['last-period']) { const date = new Date() date.setHours(0,0,0,0) date.setDate(date.getDate() - date.getDay()) // Sunday let end = new Date(PERIOD_START) while (end <= date) end = dateAddDays(end, 14) // This Period End options.end_at = dateAddDays(end, -14) options.start_at = dateAddDays(end, -28) } if (!options.start_at) options.start_at = await prompt('start_at (mm/dd/yy): ') options.start_at = parseDate(options.start_at) let end_ats = [] if (options.weeks) { options.weeks = parseInt(options.weeks) for (let w = 1; w <= options.weeks; w++) end_ats.push(dateAddDays(options.start_at, 7 * w)) options.weeks = end_ats options.end_at = options.weeks[options.weeks.length - 1] } else if (options.days) { options.days = parseInt(options.days) options.end_at = dateAddDays(options.start_at, options.days) } else if (options.end_at) { options.end_at = parseDate(options.end_at) } else { options.end_at = await prompt('end_at (mm/dd/yy): ') options.end_at = dateAddDays(parseDate(options.end_at), 1) } return options }