@thisisagile/easy
Version:
Straightforward library for building domain-driven microservice architectures
1 lines • 5.3 kB
Source Map (JSON)
{"version":3,"sources":["../../src/utils/Period.ts"],"sourcesContent":["import { choose } from '../types/Case';\nimport { DateTime } from '../domain/DateTime';\nimport { Period } from '../types/Period';\nimport { utc } from '../types/Timezone';\n\nexport type StartEnd = { start: DateTime; end: DateTime };\n\nexport type StartEndOptions = {\n period?: Period;\n start?: DateTime;\n end?: DateTime;\n zone?: string;\n};\nexport const toStartEnd = ({ period, start, end, zone = utc }: StartEndOptions): StartEnd => {\n const today = DateTime.now.withZone(zone).startOf('day');\n return choose(period)\n .equals('today', { start: today, end: today.endOf('day') })\n .equals('yesterday', { start: today.subtract(1, 'day'), end: today })\n .equals('tomorrow', { start: today.add(1, 'day'), end: today.add(1, 'day').endOf('day') })\n .equals('this-week', { start: today.startOf('week'), end: today.endOf('week') })\n .equals('last-seven-days', { start: today.subtract(6, 'day'), end: today.endOf('day') })\n .equals('last-week', {\n start: today.subtract(1, 'week').startOf('week'),\n end: today.subtract(1, 'week').endOf('week'),\n })\n .equals('last-two-weeks', { start: today.subtract(13, 'day'), end: today.endOf('day') })\n .equals('last-month', {\n start: today.subtract(1, 'month').startOf('month'),\n end: today.subtract(1, 'month').endOf('month'),\n })\n .equals('next-week', { start: today.add(1, 'week').startOf('week'), end: today.add(1, 'week').endOf('week') })\n .equals('this-month', { start: today.startOf('month'), end: today.endOf('month') })\n .equals('three-months-ago', {\n start: today.subtract(3, 'month').startOf('month'),\n end: today.subtract(3, 'month').endOf('month'),\n })\n .equals('two-months-ago', {\n start: today.subtract(2, 'month').startOf('month'),\n end: today.subtract(2, 'month').endOf('month'),\n })\n .equals('last-three-months', { start: today.subtract(3, 'month'), end: today.endOf('day') })\n .equals('next-month', { start: today.add(1, 'month').startOf('month'), end: today.add(1, 'month').endOf('month') })\n .equals('this-year', { start: today.startOf('year'), end: today.endOf('year') })\n .equals('last-year', {\n start: today.subtract(1, 'year').startOf('year'),\n end: today.subtract(1, 'year').endOf('year'),\n })\n .equals('two-years-ago', {\n start: today.subtract(2, 'year').startOf('year'),\n end: today.subtract(2, 'year').endOf('year'),\n })\n .equals('three-years-ago', {\n start: today.subtract(3, 'year').startOf('year'),\n end: today.subtract(3, 'year').endOf('year'),\n })\n .equals('next-year', { start: today.add(1, 'year').startOf('year'), end: today.add(1, 'year').endOf('year') })\n .equals('all-time', { start: new DateTime(0).withZone(zone), end: today.endOf('day') })\n .else({ start: start ?? today, end: end ?? today.endOf('day') });\n};\n"],"mappings":"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","names":[]}