@duplojs/utils 1.4.57 → 1.4.59
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/array/group.cjs +11 -11
- package/dist/array/group.d.ts +1 -1
- package/dist/array/group.mjs +11 -11
- package/dist/clean/constraint/base.d.ts +6 -4
- package/dist/clean/constraint/defaultConstraint/index.d.ts +1 -0
- package/dist/clean/constraint/defaultConstraint/number.d.ts +6 -6
- package/dist/clean/constraint/defaultConstraint/string.d.ts +4 -4
- package/dist/clean/constraint/defaultConstraint/time.cjs +19 -0
- package/dist/clean/constraint/defaultConstraint/time.d.ts +61 -0
- package/dist/clean/constraint/defaultConstraint/time.mjs +16 -0
- package/dist/clean/constraint/set.d.ts +6 -4
- package/dist/clean/entity.d.ts +2 -1
- package/dist/clean/index.cjs +3 -0
- package/dist/clean/index.mjs +1 -0
- package/dist/clean/newType.d.ts +7 -5
- package/dist/clean/primitive/base.d.ts +25 -34
- package/dist/clean/primitive/operations/date/dateAddTime.d.ts +7 -11
- package/dist/clean/primitive/operations/date/dateGreaterThan.d.ts +9 -7
- package/dist/clean/primitive/operations/date/dateLessThan.d.ts +9 -7
- package/dist/clean/primitive/operations/date/dateMax.d.ts +3 -10
- package/dist/clean/primitive/operations/date/dateMin.d.ts +3 -10
- package/dist/clean/primitive/operations/date/dateSubtractTime.d.ts +7 -11
- package/dist/clean/primitive/operations/equal.cjs +1 -1
- package/dist/clean/primitive/operations/equal.d.ts +3 -3
- package/dist/clean/primitive/operations/equal.mjs +1 -1
- package/dist/clean/primitive/operations/sort.d.ts +8 -10
- package/dist/clean/primitive/operations/time/timeGreaterThan.d.ts +11 -9
- package/dist/clean/primitive/operations/time/timeLessThan.d.ts +11 -9
- package/dist/clean/primitive/operations/time/timeMax.cjs +2 -2
- package/dist/clean/primitive/operations/time/timeMax.d.ts +10 -17
- package/dist/clean/primitive/operations/time/timeMax.mjs +2 -2
- package/dist/clean/primitive/operations/time/timeMin.cjs +3 -3
- package/dist/clean/primitive/operations/time/timeMin.d.ts +10 -17
- package/dist/clean/primitive/operations/time/timeMin.mjs +3 -3
- package/dist/clean/unwrapEntity.cjs +13 -3
- package/dist/clean/unwrapEntity.d.ts +57 -5
- package/dist/clean/unwrapEntity.mjs +13 -3
- package/dist/common/index.d.ts +3 -4
- package/dist/common/kind.d.ts +1 -0
- package/dist/common/path.cjs +13 -13
- package/dist/common/path.d.ts +17 -11
- package/dist/common/path.mjs +13 -13
- package/dist/common/toRegExp.cjs +19 -0
- package/dist/common/toRegExp.d.ts +31 -0
- package/dist/common/toRegExp.mjs +17 -0
- package/dist/common/transformer.cjs +45 -0
- package/dist/common/transformer.d.ts +61 -0
- package/dist/common/transformer.mjs +40 -0
- package/dist/common/types/DeepReadonly.d.ts +1 -1
- package/dist/common/types/toLargeEnsemble.d.ts +2 -2
- package/dist/dataParser/error.cjs +4 -2
- package/dist/dataParser/error.d.ts +4 -2
- package/dist/dataParser/error.mjs +4 -2
- package/dist/dataParser/extended/date.d.ts +9 -4
- package/dist/dataParser/extended/time.d.ts +28 -12
- package/dist/dataParser/identifier.d.ts +20 -8
- package/dist/dataParser/parsers/date.cjs +16 -12
- package/dist/dataParser/parsers/date.d.ts +15 -9
- package/dist/dataParser/parsers/date.mjs +16 -12
- package/dist/dataParser/parsers/time/checkers/max.cjs +3 -0
- package/dist/dataParser/parsers/time/checkers/max.d.ts +28 -0
- package/dist/dataParser/parsers/time/checkers/max.mjs +3 -0
- package/dist/dataParser/parsers/time/checkers/min.cjs +3 -0
- package/dist/dataParser/parsers/time/checkers/min.d.ts +28 -0
- package/dist/dataParser/parsers/time/checkers/min.mjs +3 -0
- package/dist/dataParser/parsers/time/index.cjs +14 -10
- package/dist/dataParser/parsers/time/index.d.ts +15 -9
- package/dist/dataParser/parsers/time/index.mjs +14 -10
- package/dist/date/applyTimezone.cjs +4 -4
- package/dist/date/applyTimezone.d.ts +18 -16
- package/dist/date/applyTimezone.mjs +2 -2
- package/dist/date/closestTo.cjs +6 -2
- package/dist/date/closestTo.d.ts +15 -15
- package/dist/date/closestTo.mjs +6 -2
- package/dist/date/constants.cjs +4 -4
- package/dist/date/constants.d.ts +2 -2
- package/dist/date/constants.mjs +3 -3
- package/dist/date/create.cjs +20 -10
- package/dist/date/create.d.ts +24 -38
- package/dist/date/create.mjs +21 -11
- package/dist/date/createOrThrow.d.ts +18 -20
- package/dist/date/createTime.cjs +16 -7
- package/dist/date/createTime.d.ts +19 -18
- package/dist/date/createTime.mjs +17 -8
- package/dist/date/createTimeOrThrow.d.ts +17 -20
- package/dist/date/each.cjs +6 -4
- package/dist/date/each.d.ts +21 -19
- package/dist/date/each.mjs +6 -4
- package/dist/date/format.d.ts +17 -15
- package/dist/date/formatTime.d.ts +17 -16
- package/dist/date/getTimezoneOffset.cjs +6 -3
- package/dist/date/getTimezoneOffset.d.ts +17 -18
- package/dist/date/getTimezoneOffset.mjs +6 -3
- package/dist/date/getters/getDayOfMonth.cjs +3 -3
- package/dist/date/getters/getDayOfMonth.d.ts +20 -14
- package/dist/date/getters/getDayOfMonth.mjs +3 -3
- package/dist/date/getters/getDayOfWeek.cjs +3 -3
- package/dist/date/getters/getDayOfWeek.d.ts +15 -12
- package/dist/date/getters/getDayOfWeek.mjs +3 -3
- package/dist/date/getters/getDayOfYear.cjs +6 -6
- package/dist/date/getters/getDayOfYear.d.ts +21 -13
- package/dist/date/getters/getDayOfYear.mjs +6 -6
- package/dist/date/getters/getFirstDayOfMonth.cjs +2 -3
- package/dist/date/getters/getFirstDayOfMonth.d.ts +16 -10
- package/dist/date/getters/getFirstDayOfMonth.mjs +2 -3
- package/dist/date/getters/getFirstDayOfWeek.cjs +2 -3
- package/dist/date/getters/getFirstDayOfWeek.d.ts +17 -10
- package/dist/date/getters/getFirstDayOfWeek.mjs +2 -3
- package/dist/date/getters/getHour.cjs +3 -3
- package/dist/date/getters/getHour.d.ts +16 -14
- package/dist/date/getters/getHour.mjs +3 -3
- package/dist/date/getters/getLastDayOfMonth.cjs +2 -3
- package/dist/date/getters/getLastDayOfMonth.d.ts +16 -10
- package/dist/date/getters/getLastDayOfMonth.mjs +2 -3
- package/dist/date/getters/getLastDayOfWeek.cjs +2 -3
- package/dist/date/getters/getLastDayOfWeek.d.ts +17 -10
- package/dist/date/getters/getLastDayOfWeek.mjs +2 -3
- package/dist/date/getters/getMilliseconds.cjs +2 -2
- package/dist/date/getters/getMilliseconds.d.ts +11 -9
- package/dist/date/getters/getMilliseconds.mjs +2 -2
- package/dist/date/getters/getMinute.cjs +3 -3
- package/dist/date/getters/getMinute.d.ts +17 -15
- package/dist/date/getters/getMinute.mjs +3 -3
- package/dist/date/getters/getMonth.cjs +3 -3
- package/dist/date/getters/getMonth.d.ts +20 -15
- package/dist/date/getters/getMonth.mjs +3 -3
- package/dist/date/getters/getSecond.cjs +3 -3
- package/dist/date/getters/getSecond.d.ts +17 -15
- package/dist/date/getters/getSecond.mjs +3 -3
- package/dist/date/getters/getWeekOfYear.cjs +12 -11
- package/dist/date/getters/getWeekOfYear.d.ts +17 -11
- package/dist/date/getters/getWeekOfYear.mjs +12 -11
- package/dist/date/getters/getYear.cjs +3 -3
- package/dist/date/getters/getYear.d.ts +16 -15
- package/dist/date/getters/getYear.mjs +3 -3
- package/dist/date/index.cjs +12 -6
- package/dist/date/index.d.ts +5 -2
- package/dist/date/index.mjs +6 -3
- package/dist/date/is.cjs +3 -8
- package/dist/date/is.d.ts +9 -14
- package/dist/date/is.mjs +3 -8
- package/dist/date/isSafeTimeValue.d.ts +9 -13
- package/dist/date/isSafeTimestamp.d.ts +7 -16
- package/dist/date/isSerializedTheDate.cjs +20 -0
- package/dist/date/isSerializedTheDate.d.ts +31 -0
- package/dist/date/isSerializedTheDate.mjs +18 -0
- package/dist/date/isSerializedTheTime.cjs +20 -0
- package/dist/date/isSerializedTheTime.d.ts +31 -0
- package/dist/date/isSerializedTheTime.mjs +18 -0
- package/dist/date/isTime.cjs +3 -8
- package/dist/date/isTime.d.ts +7 -14
- package/dist/date/isTime.mjs +3 -8
- package/dist/date/kind.cjs +9 -0
- package/dist/date/kind.d.ts +1 -0
- package/dist/date/kind.mjs +7 -0
- package/dist/date/makeSafeTimeValue.d.ts +12 -11
- package/dist/date/makeSafeTimestamp.d.ts +12 -11
- package/dist/date/max.cjs +2 -2
- package/dist/date/max.d.ts +13 -13
- package/dist/date/max.mjs +2 -2
- package/dist/date/maxTime.cjs +2 -2
- package/dist/date/maxTime.d.ts +13 -21
- package/dist/date/maxTime.mjs +2 -2
- package/dist/date/min.cjs +2 -2
- package/dist/date/min.d.ts +13 -13
- package/dist/date/min.mjs +2 -2
- package/dist/date/minTime.cjs +2 -2
- package/dist/date/minTime.d.ts +13 -21
- package/dist/date/minTime.mjs +2 -2
- package/dist/date/now.cjs +3 -1
- package/dist/date/now.d.ts +9 -7
- package/dist/date/now.mjs +3 -1
- package/dist/date/operators/addDays.cjs +3 -5
- package/dist/date/operators/addDays.d.ts +14 -11
- package/dist/date/operators/addDays.mjs +3 -5
- package/dist/date/operators/addHours.cjs +3 -5
- package/dist/date/operators/addHours.d.ts +14 -11
- package/dist/date/operators/addHours.mjs +3 -5
- package/dist/date/operators/addMilliseconds.cjs +3 -5
- package/dist/date/operators/addMilliseconds.d.ts +14 -11
- package/dist/date/operators/addMilliseconds.mjs +3 -5
- package/dist/date/operators/addMinutes.cjs +3 -5
- package/dist/date/operators/addMinutes.d.ts +14 -11
- package/dist/date/operators/addMinutes.mjs +3 -5
- package/dist/date/operators/addMonths.cjs +2 -2
- package/dist/date/operators/addMonths.d.ts +13 -13
- package/dist/date/operators/addMonths.mjs +2 -2
- package/dist/date/operators/addSeconds.cjs +3 -5
- package/dist/date/operators/addSeconds.d.ts +14 -11
- package/dist/date/operators/addSeconds.mjs +3 -5
- package/dist/date/operators/addTime.cjs +13 -6
- package/dist/date/operators/addTime.d.ts +20 -18
- package/dist/date/operators/addTime.mjs +13 -6
- package/dist/date/operators/addWeeks.cjs +6 -5
- package/dist/date/operators/addWeeks.d.ts +14 -11
- package/dist/date/operators/addWeeks.mjs +6 -5
- package/dist/date/operators/addYears.cjs +2 -2
- package/dist/date/operators/addYears.d.ts +13 -13
- package/dist/date/operators/addYears.mjs +2 -2
- package/dist/date/operators/between.d.ts +11 -11
- package/dist/date/operators/betweenThan.d.ts +11 -11
- package/dist/date/operators/betweenThanTime.d.ts +18 -22
- package/dist/date/operators/betweenTime.d.ts +17 -21
- package/dist/date/operators/greater.d.ts +12 -9
- package/dist/date/operators/greaterThan.d.ts +14 -11
- package/dist/date/operators/greaterThanTime.d.ts +17 -21
- package/dist/date/operators/greaterTime.d.ts +16 -20
- package/dist/date/operators/less.d.ts +12 -9
- package/dist/date/operators/lessThan.d.ts +13 -10
- package/dist/date/operators/lessThanTime.d.ts +17 -21
- package/dist/date/operators/lessTime.d.ts +16 -20
- package/dist/date/operators/subtractDays.cjs +3 -5
- package/dist/date/operators/subtractDays.d.ts +14 -11
- package/dist/date/operators/subtractDays.mjs +3 -5
- package/dist/date/operators/subtractHours.cjs +3 -5
- package/dist/date/operators/subtractHours.d.ts +14 -11
- package/dist/date/operators/subtractHours.mjs +3 -5
- package/dist/date/operators/subtractMilliseconds.cjs +3 -5
- package/dist/date/operators/subtractMilliseconds.d.ts +14 -11
- package/dist/date/operators/subtractMilliseconds.mjs +3 -5
- package/dist/date/operators/subtractMinutes.cjs +3 -5
- package/dist/date/operators/subtractMinutes.d.ts +14 -11
- package/dist/date/operators/subtractMinutes.mjs +3 -5
- package/dist/date/operators/subtractMonths.cjs +2 -2
- package/dist/date/operators/subtractMonths.d.ts +17 -11
- package/dist/date/operators/subtractMonths.mjs +2 -2
- package/dist/date/operators/subtractSeconds.cjs +3 -5
- package/dist/date/operators/subtractSeconds.d.ts +14 -11
- package/dist/date/operators/subtractSeconds.mjs +3 -5
- package/dist/date/operators/subtractTime.cjs +13 -6
- package/dist/date/operators/subtractTime.d.ts +20 -18
- package/dist/date/operators/subtractTime.mjs +13 -6
- package/dist/date/operators/subtractWeeks.cjs +3 -5
- package/dist/date/operators/subtractWeeks.d.ts +14 -11
- package/dist/date/operators/subtractWeeks.mjs +3 -5
- package/dist/date/operators/subtractYears.cjs +2 -2
- package/dist/date/operators/subtractYears.d.ts +17 -11
- package/dist/date/operators/subtractYears.mjs +2 -2
- package/dist/date/round.cjs +2 -2
- package/dist/date/round.d.ts +11 -14
- package/dist/date/round.mjs +2 -2
- package/dist/date/serialize.cjs +14 -0
- package/dist/date/serialize.d.ts +41 -0
- package/dist/date/serialize.mjs +12 -0
- package/dist/date/sort.cjs +2 -2
- package/dist/date/sort.d.ts +16 -15
- package/dist/date/sort.mjs +2 -2
- package/dist/date/sortTimes.cjs +2 -2
- package/dist/date/sortTimes.d.ts +15 -21
- package/dist/date/sortTimes.mjs +2 -2
- package/dist/date/theDate.cjs +124 -0
- package/dist/date/theDate.d.ts +114 -0
- package/dist/date/theDate.mjs +122 -0
- package/dist/date/theTime.cjs +36 -0
- package/dist/date/theTime.d.ts +53 -0
- package/dist/date/theTime.mjs +34 -0
- package/dist/date/timezone.cjs +3 -0
- package/dist/date/timezone.d.ts +27 -0
- package/dist/date/timezone.mjs +3 -0
- package/dist/date/toISOString.cjs +5 -2
- package/dist/date/toISOString.d.ts +12 -10
- package/dist/date/toISOString.mjs +5 -2
- package/dist/date/toNative.cjs +4 -0
- package/dist/date/toNative.d.ts +12 -10
- package/dist/date/toNative.mjs +4 -0
- package/dist/date/toTimeValue.cjs +6 -2
- package/dist/date/toTimeValue.d.ts +14 -12
- package/dist/date/toTimeValue.mjs +6 -2
- package/dist/date/toTimestamp.cjs +5 -3
- package/dist/date/toTimestamp.d.ts +11 -9
- package/dist/date/toTimestamp.mjs +6 -4
- package/dist/date/today.cjs +3 -1
- package/dist/date/today.d.ts +14 -7
- package/dist/date/today.mjs +3 -1
- package/dist/date/tomorrow.cjs +2 -1
- package/dist/date/tomorrow.d.ts +12 -7
- package/dist/date/tomorrow.mjs +2 -1
- package/dist/date/types/index.d.ts +2 -2
- package/dist/date/types/serializedTheDate.d.ts +1 -0
- package/dist/date/types/serializedTheTime.d.ts +42 -0
- package/dist/date/types/spoolingDate.d.ts +2 -1
- package/dist/date/yesterday.cjs +2 -1
- package/dist/date/yesterday.d.ts +12 -7
- package/dist/date/yesterday.mjs +2 -1
- package/dist/generator/asyncGroup.cjs +31 -0
- package/dist/generator/asyncGroup.d.ts +39 -0
- package/dist/generator/asyncGroup.mjs +29 -0
- package/dist/generator/group.cjs +39 -0
- package/dist/generator/group.d.ts +101 -0
- package/dist/generator/group.mjs +36 -0
- package/dist/generator/index.cjs +5 -0
- package/dist/generator/index.d.ts +3 -0
- package/dist/generator/index.mjs +2 -0
- package/dist/index.cjs +7 -6
- package/dist/index.mjs +2 -3
- package/dist/metadata.json +94 -40
- package/dist/object/entries.cjs +7 -2
- package/dist/object/entries.mjs +7 -2
- package/dist/object/keys.cjs +7 -2
- package/dist/object/keys.d.ts +1 -1
- package/dist/object/keys.mjs +7 -2
- package/package.json +1 -1
- package/dist/common/toJSON.cjs +0 -37
- package/dist/common/toJSON.d.ts +0 -44
- package/dist/common/toJSON.mjs +0 -35
- package/dist/common/toString.cjs +0 -10
- package/dist/common/toString.d.ts +0 -17
- package/dist/common/toString.mjs +0 -8
- package/dist/common/toTransform.cjs +0 -37
- package/dist/common/toTransform.d.ts +0 -50
- package/dist/common/toTransform.mjs +0 -35
- package/dist/date/createTheDate.cjs +0 -13
- package/dist/date/createTheDate.d.ts +0 -28
- package/dist/date/createTheDate.mjs +0 -11
- package/dist/date/createTheTime.cjs +0 -13
- package/dist/date/createTheTime.d.ts +0 -25
- package/dist/date/createTheTime.mjs +0 -11
- package/dist/date/types/theDate.d.ts +0 -11
- package/dist/date/types/theTime.d.ts +0 -10
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { millisecondInOneMinute } from '../constants.mjs';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { TheDate } from '../theDate.mjs';
|
|
3
|
+
import { toTimestamp } from '../toTimestamp.mjs';
|
|
4
4
|
|
|
5
5
|
function subtractMinutes(...args) {
|
|
6
6
|
if (args.length === 1) {
|
|
@@ -8,9 +8,7 @@ function subtractMinutes(...args) {
|
|
|
8
8
|
return (input) => subtractMinutes(input, minute);
|
|
9
9
|
}
|
|
10
10
|
const [input, minute] = args;
|
|
11
|
-
|
|
12
|
-
date.setTime(date.getTime() - (minute * millisecondInOneMinute));
|
|
13
|
-
return createTheDate(date.getTime());
|
|
11
|
+
return TheDate.new(toTimestamp(input) - (minute * millisecondInOneMinute));
|
|
14
12
|
}
|
|
15
13
|
|
|
16
14
|
export { subtractMinutes };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var theDate = require('../theDate.cjs');
|
|
4
4
|
var toNative = require('../toNative.cjs');
|
|
5
5
|
|
|
6
6
|
function subtractMonths(...args) {
|
|
@@ -11,7 +11,7 @@ function subtractMonths(...args) {
|
|
|
11
11
|
const [input, month] = args;
|
|
12
12
|
const date = toNative.toNative(input);
|
|
13
13
|
date.setUTCMonth(date.getUTCMonth() - month);
|
|
14
|
-
return
|
|
14
|
+
return theDate.TheDate.new(date.getTime());
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
exports.subtractMonths = subtractMonths;
|
|
@@ -1,29 +1,35 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { TheDate } from "../theDate";
|
|
2
|
+
import type { SerializedTheDate } from "../types";
|
|
2
3
|
/**
|
|
3
|
-
* Subtracts months from a date.
|
|
4
|
+
* Subtracts a number of calendar months from a date.
|
|
4
5
|
*
|
|
5
6
|
* **Supported call styles:**
|
|
6
|
-
* - Classic: `subtractMonths(input, month)` →
|
|
7
|
-
* - Curried: `subtractMonths(month)` →
|
|
7
|
+
* - Classic: `subtractMonths(input, month)` → `TheDate`
|
|
8
|
+
* - Curried: `subtractMonths(month)` → `(input) => TheDate`
|
|
8
9
|
*
|
|
9
|
-
*
|
|
10
|
+
* `input` accepts `TheDate` or `SerializedTheDate`.
|
|
10
11
|
*
|
|
11
12
|
* ```ts
|
|
12
13
|
* const input = D.create("2024-06-30");
|
|
13
14
|
* const result = D.subtractMonths(input, 2);
|
|
14
|
-
* // result:
|
|
15
|
+
* // result: TheDate
|
|
16
|
+
*
|
|
17
|
+
* const serialized = D.serialize(result);
|
|
18
|
+
* // serialized: SerializedTheDate
|
|
15
19
|
*
|
|
16
20
|
* pipe(
|
|
17
|
-
*
|
|
21
|
+
* serialized,
|
|
18
22
|
* D.subtractMonths(2),
|
|
19
|
-
* ); //
|
|
20
|
-
*
|
|
23
|
+
* ); // TheDate
|
|
21
24
|
* ```
|
|
22
25
|
*
|
|
26
|
+
* @remarks
|
|
27
|
+
* - Uses UTC month arithmetic (`Date#setUTCMonth` behavior).
|
|
28
|
+
*
|
|
23
29
|
* @see https://utils.duplojs.dev/en/v1/api/date/subtractMonths
|
|
24
30
|
*
|
|
25
31
|
* @namespace D
|
|
26
32
|
*
|
|
27
33
|
*/
|
|
28
|
-
export declare function subtractMonths<GenericInput extends TheDate, GenericMonth extends number>(month: GenericMonth): (input: GenericInput) => TheDate;
|
|
29
|
-
export declare function subtractMonths<GenericInput extends TheDate, GenericMonth extends number>(input: GenericInput, month: GenericMonth): TheDate;
|
|
34
|
+
export declare function subtractMonths<GenericInput extends TheDate | SerializedTheDate, GenericMonth extends number>(month: GenericMonth): (input: GenericInput) => TheDate;
|
|
35
|
+
export declare function subtractMonths<GenericInput extends TheDate | SerializedTheDate, GenericMonth extends number>(input: GenericInput, month: GenericMonth): TheDate;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TheDate } from '../theDate.mjs';
|
|
2
2
|
import { toNative } from '../toNative.mjs';
|
|
3
3
|
|
|
4
4
|
function subtractMonths(...args) {
|
|
@@ -9,7 +9,7 @@ function subtractMonths(...args) {
|
|
|
9
9
|
const [input, month] = args;
|
|
10
10
|
const date = toNative(input);
|
|
11
11
|
date.setUTCMonth(date.getUTCMonth() - month);
|
|
12
|
-
return
|
|
12
|
+
return TheDate.new(date.getTime());
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
export { subtractMonths };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var constants = require('../constants.cjs');
|
|
4
|
-
var
|
|
5
|
-
var
|
|
4
|
+
var theDate = require('../theDate.cjs');
|
|
5
|
+
var toTimestamp = require('../toTimestamp.cjs');
|
|
6
6
|
|
|
7
7
|
function subtractSeconds(...args) {
|
|
8
8
|
if (args.length === 1) {
|
|
@@ -10,9 +10,7 @@ function subtractSeconds(...args) {
|
|
|
10
10
|
return (input) => subtractSeconds(input, second);
|
|
11
11
|
}
|
|
12
12
|
const [input, second] = args;
|
|
13
|
-
|
|
14
|
-
date.setTime(date.getTime() - (second * constants.millisecondsInOneSecond));
|
|
15
|
-
return createTheDate.createTheDate(date.getTime());
|
|
13
|
+
return theDate.TheDate.new(toTimestamp.toTimestamp(input) - (second * constants.millisecondsInOneSecond));
|
|
16
14
|
}
|
|
17
15
|
|
|
18
16
|
exports.subtractSeconds = subtractSeconds;
|
|
@@ -1,23 +1,26 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { TheDate } from "../theDate";
|
|
2
|
+
import type { SerializedTheDate } from "../types";
|
|
2
3
|
/**
|
|
3
|
-
* Subtracts seconds from a date.
|
|
4
|
+
* Subtracts a number of seconds from a date.
|
|
4
5
|
*
|
|
5
6
|
* **Supported call styles:**
|
|
6
|
-
* - Classic: `subtractSeconds(input, second)` →
|
|
7
|
-
* - Curried: `subtractSeconds(second)` →
|
|
7
|
+
* - Classic: `subtractSeconds(input, second)` → `TheDate`
|
|
8
|
+
* - Curried: `subtractSeconds(second)` → `(input) => TheDate`
|
|
8
9
|
*
|
|
9
|
-
*
|
|
10
|
+
* `input` accepts `TheDate` or `SerializedTheDate`.
|
|
10
11
|
*
|
|
11
12
|
* ```ts
|
|
12
13
|
* const input = D.create("2024-06-20");
|
|
13
14
|
* const result = D.subtractSeconds(input, 30);
|
|
14
|
-
* // result:
|
|
15
|
+
* // result: TheDate
|
|
16
|
+
*
|
|
17
|
+
* const serialized = D.serialize(result);
|
|
18
|
+
* // serialized: SerializedTheDate
|
|
15
19
|
*
|
|
16
20
|
* pipe(
|
|
17
|
-
*
|
|
21
|
+
* serialized,
|
|
18
22
|
* D.subtractSeconds(30),
|
|
19
|
-
* ); //
|
|
20
|
-
*
|
|
23
|
+
* ); // TheDate
|
|
21
24
|
* ```
|
|
22
25
|
*
|
|
23
26
|
* @see https://utils.duplojs.dev/en/v1/api/date/subtractSeconds
|
|
@@ -25,5 +28,5 @@ import type { TheDate } from "../types";
|
|
|
25
28
|
* @namespace D
|
|
26
29
|
*
|
|
27
30
|
*/
|
|
28
|
-
export declare function subtractSeconds<GenericInput extends TheDate, GenericSecond extends number>(second: GenericSecond): (input: GenericInput) => TheDate;
|
|
29
|
-
export declare function subtractSeconds<GenericInput extends TheDate, GenericSecond extends number>(input: GenericInput, second: GenericSecond): TheDate;
|
|
31
|
+
export declare function subtractSeconds<GenericInput extends TheDate | SerializedTheDate, GenericSecond extends number>(second: GenericSecond): (input: GenericInput) => TheDate;
|
|
32
|
+
export declare function subtractSeconds<GenericInput extends TheDate | SerializedTheDate, GenericSecond extends number>(input: GenericInput, second: GenericSecond): TheDate;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { millisecondsInOneSecond } from '../constants.mjs';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { TheDate } from '../theDate.mjs';
|
|
3
|
+
import { toTimestamp } from '../toTimestamp.mjs';
|
|
4
4
|
|
|
5
5
|
function subtractSeconds(...args) {
|
|
6
6
|
if (args.length === 1) {
|
|
@@ -8,9 +8,7 @@ function subtractSeconds(...args) {
|
|
|
8
8
|
return (input) => subtractSeconds(input, second);
|
|
9
9
|
}
|
|
10
10
|
const [input, second] = args;
|
|
11
|
-
|
|
12
|
-
date.setTime(date.getTime() - (second * millisecondsInOneSecond));
|
|
13
|
-
return createTheDate(date.getTime());
|
|
11
|
+
return TheDate.new(toTimestamp(input) - (second * millisecondsInOneSecond));
|
|
14
12
|
}
|
|
15
13
|
|
|
16
14
|
export { subtractSeconds };
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var createTheDate = require('../createTheDate.cjs');
|
|
4
|
-
var createTheTime = require('../createTheTime.cjs');
|
|
5
3
|
var toTimestamp = require('../toTimestamp.cjs');
|
|
6
4
|
var toTimeValue = require('../toTimeValue.cjs');
|
|
5
|
+
var theDate = require('../theDate.cjs');
|
|
6
|
+
var theTime = require('../theTime.cjs');
|
|
7
|
+
var isSerializedTheTime = require('../isSerializedTheTime.cjs');
|
|
7
8
|
|
|
8
9
|
function subtractTime(...args) {
|
|
9
10
|
if (args.length === 1) {
|
|
@@ -11,11 +12,17 @@ function subtractTime(...args) {
|
|
|
11
12
|
return (input) => subtractTime(input, time);
|
|
12
13
|
}
|
|
13
14
|
const [input, time] = args;
|
|
14
|
-
const
|
|
15
|
-
if (input.
|
|
16
|
-
|
|
15
|
+
const timeValue = toTimeValue.toTimeValue(time);
|
|
16
|
+
if (input instanceof theDate.TheDate) {
|
|
17
|
+
const timestamp = toTimestamp.toTimestamp(input);
|
|
18
|
+
return theDate.TheDate.new(timestamp - timeValue);
|
|
17
19
|
}
|
|
18
|
-
|
|
20
|
+
if (input instanceof theTime.TheTime || isSerializedTheTime.isSerializedTheTime(input)) {
|
|
21
|
+
const inputTimeValue = toTimeValue.toTimeValue(input);
|
|
22
|
+
return theTime.TheTime.new(inputTimeValue - timeValue);
|
|
23
|
+
}
|
|
24
|
+
const timestamp = toTimestamp.toTimestamp(input);
|
|
25
|
+
return theDate.TheDate.new(timestamp - timeValue);
|
|
19
26
|
}
|
|
20
27
|
|
|
21
28
|
exports.subtractTime = subtractTime;
|
|
@@ -1,28 +1,30 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { SerializedTheDate, SerializedTheTime } from "../types";
|
|
2
|
+
import { TheDate } from "../theDate";
|
|
3
|
+
import { TheTime } from "../theTime";
|
|
2
4
|
/**
|
|
3
|
-
* Subtracts a TheTime from a
|
|
5
|
+
* Subtracts a normalized duration (`TheTime` or `SerializedTheTime`) from a date.
|
|
4
6
|
*
|
|
5
7
|
* **Supported call styles:**
|
|
6
|
-
* - Classic: `subtractTime(input, time)` →
|
|
7
|
-
* - Curried: `subtractTime(time)` →
|
|
8
|
+
* - Classic: `subtractTime(input, time)` → `TheDate | TheTime`
|
|
9
|
+
* - Curried: `subtractTime(time)` → `(input) => TheDate | TheTime`
|
|
8
10
|
*
|
|
9
|
-
*
|
|
11
|
+
* If `input` is `TheDate | SerializedTheDate`, the result is `TheDate`.
|
|
12
|
+
* The operator also supports `TheTime | SerializedTheTime` as input and returns `TheTime`.
|
|
10
13
|
*
|
|
11
14
|
* ```ts
|
|
12
|
-
* const date = D.
|
|
13
|
-
* const time = D.
|
|
15
|
+
* const date = D.create("2024-06-20");
|
|
16
|
+
* const time = D.createTime(1, "hour");
|
|
14
17
|
*
|
|
15
18
|
* const result = D.subtractTime(date, time);
|
|
16
|
-
* // result:
|
|
19
|
+
* // result: TheDate
|
|
17
20
|
*
|
|
18
|
-
* const result2 = D.subtractTime(
|
|
19
|
-
* // result2:
|
|
21
|
+
* const result2 = D.subtractTime(time, D.createTime(30, "minute"));
|
|
22
|
+
* // result2: TheTime
|
|
20
23
|
*
|
|
21
|
-
*
|
|
24
|
+
* pipe(
|
|
22
25
|
* date,
|
|
23
|
-
* D.subtractTime("
|
|
24
|
-
* );
|
|
25
|
-
* // result3: "date3599000-"
|
|
26
|
+
* D.subtractTime(D.createTime(15, "minute")),
|
|
27
|
+
* ); // TheDate
|
|
26
28
|
* ```
|
|
27
29
|
*
|
|
28
30
|
* @see https://utils.duplojs.dev/en/v1/api/date/subtractTime
|
|
@@ -30,7 +32,7 @@ import type { TheDate, TheTime } from "../types";
|
|
|
30
32
|
* @namespace D
|
|
31
33
|
*
|
|
32
34
|
*/
|
|
33
|
-
export declare function subtractTime<GenericInput extends TheDate>(time: TheTime): (input: GenericInput) => TheDate;
|
|
34
|
-
export declare function subtractTime<GenericInput extends TheTime>(time: TheTime): (input: GenericInput) => TheTime;
|
|
35
|
-
export declare function subtractTime<GenericInput extends TheDate>(input: GenericInput, time: TheTime): TheDate;
|
|
36
|
-
export declare function subtractTime<GenericInput extends TheTime>(input: GenericInput, time: TheTime): TheTime;
|
|
35
|
+
export declare function subtractTime<GenericInput extends TheDate | SerializedTheDate>(time: TheTime | SerializedTheTime): (input: GenericInput) => TheDate;
|
|
36
|
+
export declare function subtractTime<GenericInput extends TheTime | SerializedTheTime>(time: TheTime | SerializedTheTime): (input: GenericInput) => TheTime;
|
|
37
|
+
export declare function subtractTime<GenericInput extends TheDate | SerializedTheDate>(input: GenericInput, time: TheTime | SerializedTheTime): TheDate;
|
|
38
|
+
export declare function subtractTime<GenericInput extends TheTime | SerializedTheTime>(input: GenericInput, time: TheTime | SerializedTheTime): TheTime;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { createTheDate } from '../createTheDate.mjs';
|
|
2
|
-
import { createTheTime } from '../createTheTime.mjs';
|
|
3
1
|
import { toTimestamp } from '../toTimestamp.mjs';
|
|
4
2
|
import { toTimeValue } from '../toTimeValue.mjs';
|
|
3
|
+
import { TheDate } from '../theDate.mjs';
|
|
4
|
+
import { TheTime } from '../theTime.mjs';
|
|
5
|
+
import { isSerializedTheTime } from '../isSerializedTheTime.mjs';
|
|
5
6
|
|
|
6
7
|
function subtractTime(...args) {
|
|
7
8
|
if (args.length === 1) {
|
|
@@ -9,11 +10,17 @@ function subtractTime(...args) {
|
|
|
9
10
|
return (input) => subtractTime(input, time);
|
|
10
11
|
}
|
|
11
12
|
const [input, time] = args;
|
|
12
|
-
const
|
|
13
|
-
if (input
|
|
14
|
-
|
|
13
|
+
const timeValue = toTimeValue(time);
|
|
14
|
+
if (input instanceof TheDate) {
|
|
15
|
+
const timestamp = toTimestamp(input);
|
|
16
|
+
return TheDate.new(timestamp - timeValue);
|
|
15
17
|
}
|
|
16
|
-
|
|
18
|
+
if (input instanceof TheTime || isSerializedTheTime(input)) {
|
|
19
|
+
const inputTimeValue = toTimeValue(input);
|
|
20
|
+
return TheTime.new(inputTimeValue - timeValue);
|
|
21
|
+
}
|
|
22
|
+
const timestamp = toTimestamp(input);
|
|
23
|
+
return TheDate.new(timestamp - timeValue);
|
|
17
24
|
}
|
|
18
25
|
|
|
19
26
|
export { subtractTime };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var constants = require('../constants.cjs');
|
|
4
|
-
var
|
|
5
|
-
var
|
|
4
|
+
var theDate = require('../theDate.cjs');
|
|
5
|
+
var toTimestamp = require('../toTimestamp.cjs');
|
|
6
6
|
|
|
7
7
|
function subtractWeeks(...args) {
|
|
8
8
|
if (args.length === 1) {
|
|
@@ -10,9 +10,7 @@ function subtractWeeks(...args) {
|
|
|
10
10
|
return (input) => subtractWeeks(input, week);
|
|
11
11
|
}
|
|
12
12
|
const [input, week] = args;
|
|
13
|
-
|
|
14
|
-
date.setTime(date.getTime() - (week * constants.millisecondInOneWeek));
|
|
15
|
-
return createTheDate.createTheDate(date.getTime());
|
|
13
|
+
return theDate.TheDate.new(toTimestamp.toTimestamp(input) - (week * constants.millisecondInOneWeek));
|
|
16
14
|
}
|
|
17
15
|
|
|
18
16
|
exports.subtractWeeks = subtractWeeks;
|
|
@@ -1,23 +1,26 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { TheDate } from "../theDate";
|
|
2
|
+
import type { SerializedTheDate } from "../types";
|
|
2
3
|
/**
|
|
3
|
-
* Subtracts weeks from a date.
|
|
4
|
+
* Subtracts a number of weeks from a date.
|
|
4
5
|
*
|
|
5
6
|
* **Supported call styles:**
|
|
6
|
-
* - Classic: `subtractWeeks(input, week)` →
|
|
7
|
-
* - Curried: `subtractWeeks(week)` →
|
|
7
|
+
* - Classic: `subtractWeeks(input, week)` → `TheDate`
|
|
8
|
+
* - Curried: `subtractWeeks(week)` → `(input) => TheDate`
|
|
8
9
|
*
|
|
9
|
-
*
|
|
10
|
+
* `input` accepts `TheDate` or `SerializedTheDate`.
|
|
10
11
|
*
|
|
11
12
|
* ```ts
|
|
12
13
|
* const input = D.create("2024-06-30");
|
|
13
14
|
* const result = D.subtractWeeks(input, 4);
|
|
14
|
-
* // result:
|
|
15
|
+
* // result: TheDate
|
|
16
|
+
*
|
|
17
|
+
* const serialized = D.serialize(result);
|
|
18
|
+
* // serialized: SerializedTheDate
|
|
15
19
|
*
|
|
16
20
|
* pipe(
|
|
17
|
-
*
|
|
21
|
+
* serialized,
|
|
18
22
|
* D.subtractWeeks(4),
|
|
19
|
-
* ); //
|
|
20
|
-
*
|
|
23
|
+
* ); // TheDate
|
|
21
24
|
* ```
|
|
22
25
|
*
|
|
23
26
|
* @see https://utils.duplojs.dev/en/v1/api/date/subtractWeeks
|
|
@@ -25,5 +28,5 @@ import type { TheDate } from "../types";
|
|
|
25
28
|
* @namespace D
|
|
26
29
|
*
|
|
27
30
|
*/
|
|
28
|
-
export declare function subtractWeeks<GenericInput extends TheDate, GenericWeek extends number>(week: GenericWeek): (input: GenericInput) => TheDate;
|
|
29
|
-
export declare function subtractWeeks<GenericInput extends TheDate, GenericWeek extends number>(input: GenericInput, week: GenericWeek): TheDate;
|
|
31
|
+
export declare function subtractWeeks<GenericInput extends TheDate | SerializedTheDate, GenericWeek extends number>(week: GenericWeek): (input: GenericInput) => TheDate;
|
|
32
|
+
export declare function subtractWeeks<GenericInput extends TheDate | SerializedTheDate, GenericWeek extends number>(input: GenericInput, week: GenericWeek): TheDate;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { millisecondInOneWeek } from '../constants.mjs';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { TheDate } from '../theDate.mjs';
|
|
3
|
+
import { toTimestamp } from '../toTimestamp.mjs';
|
|
4
4
|
|
|
5
5
|
function subtractWeeks(...args) {
|
|
6
6
|
if (args.length === 1) {
|
|
@@ -8,9 +8,7 @@ function subtractWeeks(...args) {
|
|
|
8
8
|
return (input) => subtractWeeks(input, week);
|
|
9
9
|
}
|
|
10
10
|
const [input, week] = args;
|
|
11
|
-
|
|
12
|
-
date.setTime(date.getTime() - (week * millisecondInOneWeek));
|
|
13
|
-
return createTheDate(date.getTime());
|
|
11
|
+
return TheDate.new(toTimestamp(input) - (week * millisecondInOneWeek));
|
|
14
12
|
}
|
|
15
13
|
|
|
16
14
|
export { subtractWeeks };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var theDate = require('../theDate.cjs');
|
|
4
4
|
var toNative = require('../toNative.cjs');
|
|
5
5
|
|
|
6
6
|
function subtractYears(...args) {
|
|
@@ -11,7 +11,7 @@ function subtractYears(...args) {
|
|
|
11
11
|
const [input, year] = args;
|
|
12
12
|
const date = toNative.toNative(input);
|
|
13
13
|
date.setUTCFullYear(date.getUTCFullYear() - year);
|
|
14
|
-
return
|
|
14
|
+
return theDate.TheDate.new(date.getTime());
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
exports.subtractYears = subtractYears;
|
|
@@ -1,29 +1,35 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { TheDate } from "../theDate";
|
|
2
|
+
import type { SerializedTheDate } from "../types";
|
|
2
3
|
/**
|
|
3
|
-
* Subtracts years from a date.
|
|
4
|
+
* Subtracts a number of calendar years from a date.
|
|
4
5
|
*
|
|
5
6
|
* **Supported call styles:**
|
|
6
|
-
* - Classic: `subtractYears(input, year)` →
|
|
7
|
-
* - Curried: `subtractYears(year)` →
|
|
7
|
+
* - Classic: `subtractYears(input, year)` → `TheDate`
|
|
8
|
+
* - Curried: `subtractYears(year)` → `(input) => TheDate`
|
|
8
9
|
*
|
|
9
|
-
*
|
|
10
|
+
* `input` accepts `TheDate` or `SerializedTheDate`.
|
|
10
11
|
*
|
|
11
12
|
* ```ts
|
|
12
13
|
* const input = D.create("2024-06-20");
|
|
13
14
|
* const result = D.subtractYears(input, 1);
|
|
14
|
-
* // result:
|
|
15
|
+
* // result: TheDate
|
|
16
|
+
*
|
|
17
|
+
* const serialized = D.serialize(result);
|
|
18
|
+
* // serialized: SerializedTheDate
|
|
15
19
|
*
|
|
16
20
|
* pipe(
|
|
17
|
-
*
|
|
21
|
+
* serialized,
|
|
18
22
|
* D.subtractYears(1),
|
|
19
|
-
* ); //
|
|
20
|
-
*
|
|
23
|
+
* ); // TheDate
|
|
21
24
|
* ```
|
|
22
25
|
*
|
|
26
|
+
* @remarks
|
|
27
|
+
* - Uses UTC year arithmetic (`Date#setUTCFullYear` behavior).
|
|
28
|
+
*
|
|
23
29
|
* @see https://utils.duplojs.dev/en/v1/api/date/subtractYears
|
|
24
30
|
*
|
|
25
31
|
* @namespace D
|
|
26
32
|
*
|
|
27
33
|
*/
|
|
28
|
-
export declare function subtractYears<GenericInput extends TheDate, GenericYear extends number>(year: GenericYear): (input: GenericInput) => TheDate;
|
|
29
|
-
export declare function subtractYears<GenericInput extends TheDate, GenericYear extends number>(input: GenericInput, year: GenericYear): TheDate;
|
|
34
|
+
export declare function subtractYears<GenericInput extends TheDate | SerializedTheDate, GenericYear extends number>(year: GenericYear): (input: GenericInput) => TheDate;
|
|
35
|
+
export declare function subtractYears<GenericInput extends TheDate | SerializedTheDate, GenericYear extends number>(input: GenericInput, year: GenericYear): TheDate;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TheDate } from '../theDate.mjs';
|
|
2
2
|
import { toNative } from '../toNative.mjs';
|
|
3
3
|
|
|
4
4
|
function subtractYears(...args) {
|
|
@@ -9,7 +9,7 @@ function subtractYears(...args) {
|
|
|
9
9
|
const [input, year] = args;
|
|
10
10
|
const date = toNative(input);
|
|
11
11
|
date.setUTCFullYear(date.getUTCFullYear() - year);
|
|
12
|
-
return
|
|
12
|
+
return TheDate.new(date.getTime());
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
export { subtractYears };
|
package/dist/date/round.cjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var theDate = require('./theDate.cjs');
|
|
3
4
|
var toNative = require('./toNative.cjs');
|
|
4
5
|
|
|
5
6
|
const stepMapper = {
|
|
@@ -19,8 +20,7 @@ const stepMapper = {
|
|
|
19
20
|
function round(input, unit = "day") {
|
|
20
21
|
const date = toNative.toNative(input);
|
|
21
22
|
const timestamp = stepMapper[unit](date);
|
|
22
|
-
|
|
23
|
-
return `date${Math.abs(timestamp)}${isNegative ? "-" : "+"}`;
|
|
23
|
+
return theDate.TheDate.new(timestamp);
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
exports.round = round;
|
package/dist/date/round.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { TheDate } from "./theDate";
|
|
2
|
+
import type { SerializedTheDate, Unit } from "./types";
|
|
2
3
|
export type RoundUnit = Exclude<Unit, "millisecond">;
|
|
3
4
|
/**
|
|
4
|
-
* Rounds a date to a unit.
|
|
5
|
+
* Rounds down a date to a UTC unit boundary.
|
|
5
6
|
*
|
|
6
|
-
* Signature: `round(input, unit)` →
|
|
7
|
+
* Signature: `round(input, unit?)` → `TheDate`
|
|
7
8
|
*
|
|
8
|
-
*
|
|
9
|
+
* `input` accepts `TheDate` or `SerializedTheDate`. Default `unit` is `"day"`.
|
|
9
10
|
*
|
|
10
11
|
* ```ts
|
|
11
12
|
* const input = D.create("2024-06-20", {
|
|
@@ -14,25 +15,21 @@ export type RoundUnit = Exclude<Unit, "millisecond">;
|
|
|
14
15
|
* second: "56",
|
|
15
16
|
* millisecond: "789",
|
|
16
17
|
* });
|
|
17
|
-
* const result = D.round(input);
|
|
18
|
-
* // result: "date1718841600000+"
|
|
19
18
|
*
|
|
20
|
-
* const
|
|
21
|
-
* //
|
|
19
|
+
* const byDay = D.round(input);
|
|
20
|
+
* // byDay: TheDate
|
|
22
21
|
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* D.round,
|
|
26
|
-
* ); // result: "date1718841600000+"
|
|
22
|
+
* const byMonth = D.round(input, "month");
|
|
23
|
+
* // byMonth: TheDate
|
|
27
24
|
*
|
|
28
25
|
* ```
|
|
29
26
|
*
|
|
30
27
|
* @remarks
|
|
31
|
-
* -
|
|
28
|
+
* - Supported units: `second`, `minute`, `hour`, `day`, `month`, `year`.
|
|
32
29
|
*
|
|
33
30
|
* @see https://utils.duplojs.dev/en/v1/api/date/round
|
|
34
31
|
*
|
|
35
32
|
* @namespace D
|
|
36
33
|
*
|
|
37
34
|
*/
|
|
38
|
-
export declare function round(input: TheDate, unit?: RoundUnit):
|
|
35
|
+
export declare function round(input: (TheDate | SerializedTheDate), unit?: RoundUnit): TheDate;
|
package/dist/date/round.mjs
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { TheDate } from './theDate.mjs';
|
|
1
2
|
import { toNative } from './toNative.mjs';
|
|
2
3
|
|
|
3
4
|
const stepMapper = {
|
|
@@ -17,8 +18,7 @@ const stepMapper = {
|
|
|
17
18
|
function round(input, unit = "day") {
|
|
18
19
|
const date = toNative(input);
|
|
19
20
|
const timestamp = stepMapper[unit](date);
|
|
20
|
-
|
|
21
|
-
return `date${Math.abs(timestamp)}${isNegative ? "-" : "+"}`;
|
|
21
|
+
return TheDate.new(timestamp);
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
export { round };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var theDate = require('./theDate.cjs');
|
|
4
|
+
|
|
5
|
+
function serialize(input) {
|
|
6
|
+
if (input instanceof theDate.TheDate) {
|
|
7
|
+
const timestamp = input.getTime();
|
|
8
|
+
return `date${Math.abs(timestamp)}${timestamp > 0 ? "+" : "-"}`;
|
|
9
|
+
}
|
|
10
|
+
const number = input.toNative();
|
|
11
|
+
return `time${Math.abs(number)}${number > 0 ? "+" : "-"}`;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
exports.serialize = serialize;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { TheDate } from "./theDate";
|
|
2
|
+
import type { TheTime } from "./theTime";
|
|
3
|
+
import type { SerializedTheTime } from "./types";
|
|
4
|
+
import { type SerializedTheDate } from "./types/serializedTheDate";
|
|
5
|
+
/**
|
|
6
|
+
* Serializes immutable date values into their string literal formats.
|
|
7
|
+
*
|
|
8
|
+
* Supported call styles:
|
|
9
|
+
* - Classic: `serialize(input)` where `input` is `TheDate` or `TheTime`
|
|
10
|
+
* - Curried: not supported
|
|
11
|
+
*
|
|
12
|
+
* `TheDate` values are serialized to `SerializedTheDate` (`date${number}${"+" | "-"}`), and `TheTime` values are serialized to `SerializedTheTime` (`time${number}${"+" | "-"}`).
|
|
13
|
+
*
|
|
14
|
+
* ```ts
|
|
15
|
+
* const inputDate = D.create("2024-06-20");
|
|
16
|
+
* const resultDate = D.serialize(inputDate);
|
|
17
|
+
* // resultDate: SerializedTheDate
|
|
18
|
+
*
|
|
19
|
+
* const inputTime = D.createTime(4, "day");
|
|
20
|
+
* const resultTime = D.serialize(inputTime);
|
|
21
|
+
* // resultTime: SerializedTheTime
|
|
22
|
+
*
|
|
23
|
+
* const resultDate2 = D.serialize(
|
|
24
|
+
* D.create("2025-10-20"),
|
|
25
|
+
* );
|
|
26
|
+
* // resultDate2: SerializedTheDate
|
|
27
|
+
*
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* @remarks
|
|
31
|
+
* - This function is the string bridge between immutable classes (`TheDate`, `TheTime`) and serialized literal types (`SerializedTheDate`, `SerializedTheTime`).
|
|
32
|
+
*
|
|
33
|
+
* @see https://utils.duplojs.dev/en/v1/api/date/serialize
|
|
34
|
+
* @see https://utils.duplojs.dev/en/v1/api/date/theDate
|
|
35
|
+
* @see https://utils.duplojs.dev/en/v1/api/date/theTime
|
|
36
|
+
*
|
|
37
|
+
* @namespace D
|
|
38
|
+
*
|
|
39
|
+
*/
|
|
40
|
+
export declare function serialize(input: TheDate): SerializedTheDate;
|
|
41
|
+
export declare function serialize(input: TheTime): SerializedTheTime;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TheDate } from './theDate.mjs';
|
|
2
|
+
|
|
3
|
+
function serialize(input) {
|
|
4
|
+
if (input instanceof TheDate) {
|
|
5
|
+
const timestamp = input.getTime();
|
|
6
|
+
return `date${Math.abs(timestamp)}${timestamp > 0 ? "+" : "-"}`;
|
|
7
|
+
}
|
|
8
|
+
const number = input.toNative();
|
|
9
|
+
return `time${Math.abs(number)}${number > 0 ? "+" : "-"}`;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export { serialize };
|