@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
package/dist/date/sort.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var createOrThrow = require('./createOrThrow.cjs');
|
|
4
3
|
var toTimestamp = require('./toTimestamp.cjs');
|
|
4
|
+
var theDate = require('./theDate.cjs');
|
|
5
5
|
|
|
6
6
|
function sort(...args) {
|
|
7
7
|
if (args.length === 1) {
|
|
@@ -14,7 +14,7 @@ function sort(...args) {
|
|
|
14
14
|
.sort(type === "DSC"
|
|
15
15
|
? (first, second) => second - first
|
|
16
16
|
: (first, second) => first - second)
|
|
17
|
-
.map(
|
|
17
|
+
.map(theDate.TheDate.new);
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
exports.sort = sort;
|
package/dist/date/sort.d.ts
CHANGED
|
@@ -1,33 +1,34 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { SortType } from "../common/types/sortType";
|
|
2
|
+
import { TheDate } from "./theDate";
|
|
3
|
+
import type { SerializedTheDate } from "./types";
|
|
3
4
|
/**
|
|
4
|
-
* Sorts
|
|
5
|
+
* Sorts date values and returns normalized `TheDate[]`.
|
|
5
6
|
*
|
|
6
7
|
* **Supported call styles:**
|
|
7
|
-
* - Classic: `sort(array, type)` →
|
|
8
|
-
* - Curried: `sort(type)` →
|
|
9
|
-
*
|
|
10
|
-
* The input value is not mutated.
|
|
8
|
+
* - Classic: `sort(array, type)` → `TheDate[]`
|
|
9
|
+
* - Curried: `sort(type)` → `(array) => TheDate[]`
|
|
11
10
|
*
|
|
12
11
|
* ```ts
|
|
13
|
-
* const input = [
|
|
12
|
+
* const input = [
|
|
13
|
+
* D.create("2024-06-03"),
|
|
14
|
+
* "date1717286400000+",
|
|
15
|
+
* D.create("2024-06-01"),
|
|
16
|
+
* ] as const;
|
|
14
17
|
*
|
|
15
|
-
* const
|
|
18
|
+
* const asc = D.sort(input, "ASC");
|
|
19
|
+
* // asc: TheDate[]
|
|
16
20
|
*
|
|
17
21
|
* pipe(
|
|
18
22
|
* input,
|
|
19
|
-
* D.sort("ASC"),
|
|
20
|
-
* );
|
|
21
|
-
*
|
|
22
23
|
* ```
|
|
23
24
|
*
|
|
24
25
|
* @remarks
|
|
25
|
-
* -
|
|
26
|
+
* - `type` is `"ASC"` or `"DSC"`.
|
|
26
27
|
*
|
|
27
28
|
* @see https://utils.duplojs.dev/en/v1/api/date/sort
|
|
28
29
|
*
|
|
29
30
|
* @namespace D
|
|
30
31
|
*
|
|
31
32
|
*/
|
|
32
|
-
export declare function sort<GenericArray extends readonly TheDate[]>(type: SortType): (array: GenericArray) => TheDate[];
|
|
33
|
-
export declare function sort<GenericArray extends readonly TheDate[]>(array: GenericArray, type: SortType): TheDate[];
|
|
33
|
+
export declare function sort<GenericArray extends readonly (TheDate | SerializedTheDate)[]>(type: SortType): (array: GenericArray) => TheDate[];
|
|
34
|
+
export declare function sort<GenericArray extends readonly (TheDate | SerializedTheDate)[]>(array: GenericArray, type: SortType): TheDate[];
|
package/dist/date/sort.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { createOrThrow } from './createOrThrow.mjs';
|
|
2
1
|
import { toTimestamp } from './toTimestamp.mjs';
|
|
2
|
+
import { TheDate } from './theDate.mjs';
|
|
3
3
|
|
|
4
4
|
function sort(...args) {
|
|
5
5
|
if (args.length === 1) {
|
|
@@ -12,7 +12,7 @@ function sort(...args) {
|
|
|
12
12
|
.sort(type === "DSC"
|
|
13
13
|
? (first, second) => second - first
|
|
14
14
|
: (first, second) => first - second)
|
|
15
|
-
.map(
|
|
15
|
+
.map(TheDate.new);
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
export { sort };
|
package/dist/date/sortTimes.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var createTheTime = require('./createTheTime.cjs');
|
|
4
3
|
var toTimeValue = require('./toTimeValue.cjs');
|
|
4
|
+
var theTime = require('./theTime.cjs');
|
|
5
5
|
|
|
6
6
|
function sortTimes(...args) {
|
|
7
7
|
if (args.length === 1) {
|
|
@@ -14,7 +14,7 @@ function sortTimes(...args) {
|
|
|
14
14
|
.sort(type === "DSC"
|
|
15
15
|
? (first, second) => second - first
|
|
16
16
|
: (first, second) => first - second)
|
|
17
|
-
.map(
|
|
17
|
+
.map(theTime.TheTime.new);
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
exports.sortTimes = sortTimes;
|
package/dist/date/sortTimes.d.ts
CHANGED
|
@@ -1,40 +1,34 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { SortType } from "../common/types/sortType";
|
|
2
|
+
import { TheTime } from "./theTime";
|
|
3
|
+
import type { SerializedTheTime } from "./types/serializedTheTime";
|
|
3
4
|
/**
|
|
4
|
-
* Sorts
|
|
5
|
+
* Sorts duration values and returns normalized `TheTime[]`.
|
|
5
6
|
*
|
|
6
7
|
* **Supported call styles:**
|
|
7
|
-
* - Classic: `sortTimes(array, type)` →
|
|
8
|
-
* - Curried: `sortTimes(type)` →
|
|
9
|
-
*
|
|
10
|
-
* The input value is not mutated.
|
|
8
|
+
* - Classic: `sortTimes(array, type)` → `TheTime[]`
|
|
9
|
+
* - Curried: `sortTimes(type)` → `(array) => TheTime[]`
|
|
11
10
|
*
|
|
12
11
|
* ```ts
|
|
13
12
|
* const input = [
|
|
14
|
-
* D.
|
|
15
|
-
*
|
|
16
|
-
* D.
|
|
17
|
-
* ];
|
|
18
|
-
*
|
|
19
|
-
* const result = D.sortTimes(input, "ASC");
|
|
20
|
-
* // result: ["time1000+", "time2000+", "time3000+"]
|
|
13
|
+
* D.createTime(3_000, "millisecond"),
|
|
14
|
+
* "time1000+",
|
|
15
|
+
* D.createTime(2_000, "millisecond"),
|
|
16
|
+
* ] as const;
|
|
21
17
|
*
|
|
22
|
-
* const
|
|
23
|
-
* //
|
|
18
|
+
* const asc = D.sortTimes(input, "ASC");
|
|
19
|
+
* // asc: TheTime[]
|
|
24
20
|
*
|
|
25
21
|
* pipe(
|
|
26
22
|
* input,
|
|
27
|
-
* D.sortTimes("ASC"),
|
|
28
|
-
* ); // result: ["time1000+", "time2000+", "time3000+"]
|
|
29
23
|
* ```
|
|
30
24
|
*
|
|
31
25
|
* @remarks
|
|
32
|
-
* -
|
|
26
|
+
* - `type` is `"ASC"` or `"DSC"`.
|
|
33
27
|
*
|
|
34
28
|
* @see https://utils.duplojs.dev/en/v1/api/date/sortTimes
|
|
35
29
|
*
|
|
36
30
|
* @namespace D
|
|
37
31
|
*
|
|
38
32
|
*/
|
|
39
|
-
export declare function sortTimes<GenericArray extends readonly TheTime[]>(type: SortType): (array: GenericArray) => TheTime[];
|
|
40
|
-
export declare function sortTimes<GenericArray extends readonly TheTime[]>(array: GenericArray, type: SortType): TheTime[];
|
|
33
|
+
export declare function sortTimes<GenericArray extends readonly (TheTime | SerializedTheTime)[]>(type: SortType): (array: GenericArray) => TheTime[];
|
|
34
|
+
export declare function sortTimes<GenericArray extends readonly (TheTime | SerializedTheTime)[]>(array: GenericArray, type: SortType): TheTime[];
|
package/dist/date/sortTimes.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { createTheTime } from './createTheTime.mjs';
|
|
2
1
|
import { toTimeValue } from './toTimeValue.mjs';
|
|
2
|
+
import { TheTime } from './theTime.mjs';
|
|
3
3
|
|
|
4
4
|
function sortTimes(...args) {
|
|
5
5
|
if (args.length === 1) {
|
|
@@ -12,7 +12,7 @@ function sortTimes(...args) {
|
|
|
12
12
|
.sort(type === "DSC"
|
|
13
13
|
? (first, second) => second - first
|
|
14
14
|
: (first, second) => first - second)
|
|
15
|
-
.map(
|
|
15
|
+
.map(TheTime.new);
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
export { sortTimes };
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var kind = require('../common/kind.cjs');
|
|
4
|
+
var kind$1 = require('./kind.cjs');
|
|
5
|
+
var makeSafeTimestamp = require('./makeSafeTimestamp.cjs');
|
|
6
|
+
var serialize = require('./serialize.cjs');
|
|
7
|
+
|
|
8
|
+
const defaultKindValue = {};
|
|
9
|
+
/**
|
|
10
|
+
* {@include date/theDate/index.md}
|
|
11
|
+
*/
|
|
12
|
+
class TheDate extends kind.kindHeritage("the-date", kind$1.createDateKind("the-date"), Date) {
|
|
13
|
+
constructor(timestamp) {
|
|
14
|
+
super(defaultKindValue, [timestamp]);
|
|
15
|
+
}
|
|
16
|
+
toNative() {
|
|
17
|
+
return new Date(this.getTime());
|
|
18
|
+
}
|
|
19
|
+
toString() {
|
|
20
|
+
return serialize.serialize(this);
|
|
21
|
+
}
|
|
22
|
+
toJSON() {
|
|
23
|
+
return serialize.serialize(this);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* @deprecated this method does not work on ImmutableDate
|
|
27
|
+
*/
|
|
28
|
+
setDate(_date) {
|
|
29
|
+
return this.getTime();
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* @deprecated this method does not work on ImmutableDate
|
|
33
|
+
*/
|
|
34
|
+
setFullYear(_year, _month, _date) {
|
|
35
|
+
return this.getTime();
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* @deprecated this method does not work on ImmutableDate
|
|
39
|
+
*/
|
|
40
|
+
setHours(_hours, _min, _sec, _ms) {
|
|
41
|
+
return this.getTime();
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* @deprecated this method does not work on ImmutableDate
|
|
45
|
+
*/
|
|
46
|
+
setMilliseconds(_ms) {
|
|
47
|
+
return this.getTime();
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* @deprecated this method does not work on ImmutableDate
|
|
51
|
+
*/
|
|
52
|
+
setMinutes(_min, _sec, _ms) {
|
|
53
|
+
return this.getTime();
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* @deprecated this method does not work on ImmutableDate
|
|
57
|
+
*/
|
|
58
|
+
setMonth(_month, _date) {
|
|
59
|
+
return this.getTime();
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* @deprecated this method does not work on ImmutableDate
|
|
63
|
+
*/
|
|
64
|
+
setSeconds(_sec, _ms) {
|
|
65
|
+
return this.getTime();
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* @deprecated this method does not work on ImmutableDate
|
|
69
|
+
*/
|
|
70
|
+
setTime(_time) {
|
|
71
|
+
return this.getTime();
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* @deprecated this method does not work on ImmutableDate
|
|
75
|
+
*/
|
|
76
|
+
setUTCDate(_date) {
|
|
77
|
+
return this.getTime();
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* @deprecated this method does not work on ImmutableDate
|
|
81
|
+
*/
|
|
82
|
+
setUTCFullYear(_year, _month, _date) {
|
|
83
|
+
return this.getTime();
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* @deprecated this method does not work on ImmutableDate
|
|
87
|
+
*/
|
|
88
|
+
setUTCHours(_hours, _min, _sec, _ms) {
|
|
89
|
+
return this.getTime();
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* @deprecated this method does not work on ImmutableDate
|
|
93
|
+
*/
|
|
94
|
+
setUTCMilliseconds(_ms) {
|
|
95
|
+
return this.getTime();
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* @deprecated this method does not work on ImmutableDate
|
|
99
|
+
*/
|
|
100
|
+
setUTCMinutes(_min, _sec, _ms) {
|
|
101
|
+
return this.getTime();
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* @deprecated this method does not work on ImmutableDate
|
|
105
|
+
*/
|
|
106
|
+
setUTCMonth(_month, _date) {
|
|
107
|
+
return this.getTime();
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* @deprecated this method does not work on ImmutableDate
|
|
111
|
+
*/
|
|
112
|
+
setUTCSeconds(_sec, _ms) {
|
|
113
|
+
return this.getTime();
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* @internal
|
|
117
|
+
* @deprecated use DDate.create | DDate.createOrThrow function
|
|
118
|
+
*/
|
|
119
|
+
static "new"(timestamp) {
|
|
120
|
+
return new TheDate(makeSafeTimestamp.makeSafeTimestamp(timestamp));
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
exports.TheDate = TheDate;
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import type { SerializedTheDate } from "./types/serializedTheDate";
|
|
2
|
+
declare const TheDate_base: new (params: {
|
|
3
|
+
"@DuplojsUtilsDate/the-date"?: unknown;
|
|
4
|
+
}, parentParams: readonly [value: string | number | Date]) => Date & import("../common/kind").Kind<import("../common/kind").KindDefinition<"the-date", unknown>, unknown> & import("../common/kind").Kind<import("../common/kind").KindDefinition<"@DuplojsUtilsDate/the-date", unknown>, unknown>;
|
|
5
|
+
/**
|
|
6
|
+
* Represents an immutable date-time object (`TheDate`) based on UTC.
|
|
7
|
+
*
|
|
8
|
+
* Signature: `TheDate` → immutable class extending `Date`
|
|
9
|
+
*
|
|
10
|
+
* `TheDate` solves two recurring problems: accidental mutation of native `Date`, and ambiguity between object dates and transport formats. You manipulate a stable object in code, and serialize it explicitly when you need to cross process boundaries.
|
|
11
|
+
*
|
|
12
|
+
* ```ts
|
|
13
|
+
* const theDate = D.create("2025-10-20");
|
|
14
|
+
* // theDate: TheDate
|
|
15
|
+
*
|
|
16
|
+
* const timestamp = theDate.getTime();
|
|
17
|
+
* // timestamp: number
|
|
18
|
+
*
|
|
19
|
+
* const nativeDate = theDate.toNative();
|
|
20
|
+
* // nativeDate: Date
|
|
21
|
+
*
|
|
22
|
+
* const serialized = D.serialize(theDate);
|
|
23
|
+
* // serialized: SerializedTheDate
|
|
24
|
+
*
|
|
25
|
+
* const yearInParis = D.getYear(theDate, "Europe/Paris");
|
|
26
|
+
* // yearInParis: number
|
|
27
|
+
*
|
|
28
|
+
* const datePlusOneDay = D.addDays(theDate, 1);
|
|
29
|
+
* // datePlusOneDay: TheDate
|
|
30
|
+
*
|
|
31
|
+
* const iso = D.toISOString(theDate);
|
|
32
|
+
* // iso: string
|
|
33
|
+
*
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* @remarks
|
|
37
|
+
* - `TheDate` is immutable: mutation methods from `Date` are intentionally disabled.
|
|
38
|
+
* - Use `D.serialize(theDate)` to convert to `SerializedTheDate`.
|
|
39
|
+
* - Use `D.create(...)` / `D.createOrThrow(...)` to construct instances.
|
|
40
|
+
*
|
|
41
|
+
* @see https://utils.duplojs.dev/en/v1/api/date/theDate
|
|
42
|
+
* @see https://utils.duplojs.dev/en/v1/api/date/serialize
|
|
43
|
+
* @see https://utils.duplojs.dev/en/v1/api/date/create
|
|
44
|
+
*
|
|
45
|
+
* @namespace D
|
|
46
|
+
*
|
|
47
|
+
*/
|
|
48
|
+
export declare class TheDate extends TheDate_base {
|
|
49
|
+
private constructor();
|
|
50
|
+
toNative(): Date;
|
|
51
|
+
toString(): SerializedTheDate;
|
|
52
|
+
toJSON(): SerializedTheDate;
|
|
53
|
+
/**
|
|
54
|
+
* @deprecated this method does not work on ImmutableDate
|
|
55
|
+
*/
|
|
56
|
+
setDate(_date: number): number;
|
|
57
|
+
/**
|
|
58
|
+
* @deprecated this method does not work on ImmutableDate
|
|
59
|
+
*/
|
|
60
|
+
setFullYear(_year: number, _month?: number, _date?: number): number;
|
|
61
|
+
/**
|
|
62
|
+
* @deprecated this method does not work on ImmutableDate
|
|
63
|
+
*/
|
|
64
|
+
setHours(_hours: number, _min?: number, _sec?: number, _ms?: number): number;
|
|
65
|
+
/**
|
|
66
|
+
* @deprecated this method does not work on ImmutableDate
|
|
67
|
+
*/
|
|
68
|
+
setMilliseconds(_ms: number): number;
|
|
69
|
+
/**
|
|
70
|
+
* @deprecated this method does not work on ImmutableDate
|
|
71
|
+
*/
|
|
72
|
+
setMinutes(_min: number, _sec?: number, _ms?: number): number;
|
|
73
|
+
/**
|
|
74
|
+
* @deprecated this method does not work on ImmutableDate
|
|
75
|
+
*/
|
|
76
|
+
setMonth(_month: number, _date?: number): number;
|
|
77
|
+
/**
|
|
78
|
+
* @deprecated this method does not work on ImmutableDate
|
|
79
|
+
*/
|
|
80
|
+
setSeconds(_sec: number, _ms?: number): number;
|
|
81
|
+
/**
|
|
82
|
+
* @deprecated this method does not work on ImmutableDate
|
|
83
|
+
*/
|
|
84
|
+
setTime(_time: number): number;
|
|
85
|
+
/**
|
|
86
|
+
* @deprecated this method does not work on ImmutableDate
|
|
87
|
+
*/
|
|
88
|
+
setUTCDate(_date: number): number;
|
|
89
|
+
/**
|
|
90
|
+
* @deprecated this method does not work on ImmutableDate
|
|
91
|
+
*/
|
|
92
|
+
setUTCFullYear(_year: number, _month?: number, _date?: number): number;
|
|
93
|
+
/**
|
|
94
|
+
* @deprecated this method does not work on ImmutableDate
|
|
95
|
+
*/
|
|
96
|
+
setUTCHours(_hours: number, _min?: number, _sec?: number, _ms?: number): number;
|
|
97
|
+
/**
|
|
98
|
+
* @deprecated this method does not work on ImmutableDate
|
|
99
|
+
*/
|
|
100
|
+
setUTCMilliseconds(_ms: number): number;
|
|
101
|
+
/**
|
|
102
|
+
* @deprecated this method does not work on ImmutableDate
|
|
103
|
+
*/
|
|
104
|
+
setUTCMinutes(_min: number, _sec?: number, _ms?: number): number;
|
|
105
|
+
/**
|
|
106
|
+
* @deprecated this method does not work on ImmutableDate
|
|
107
|
+
*/
|
|
108
|
+
setUTCMonth(_month: number, _date?: number): number;
|
|
109
|
+
/**
|
|
110
|
+
* @deprecated this method does not work on ImmutableDate
|
|
111
|
+
*/
|
|
112
|
+
setUTCSeconds(_sec: number, _ms?: number): number;
|
|
113
|
+
}
|
|
114
|
+
export {};
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { kindHeritage } from '../common/kind.mjs';
|
|
2
|
+
import { createDateKind } from './kind.mjs';
|
|
3
|
+
import { makeSafeTimestamp } from './makeSafeTimestamp.mjs';
|
|
4
|
+
import { serialize } from './serialize.mjs';
|
|
5
|
+
|
|
6
|
+
const defaultKindValue = {};
|
|
7
|
+
/**
|
|
8
|
+
* {@include date/theDate/index.md}
|
|
9
|
+
*/
|
|
10
|
+
class TheDate extends kindHeritage("the-date", createDateKind("the-date"), Date) {
|
|
11
|
+
constructor(timestamp) {
|
|
12
|
+
super(defaultKindValue, [timestamp]);
|
|
13
|
+
}
|
|
14
|
+
toNative() {
|
|
15
|
+
return new Date(this.getTime());
|
|
16
|
+
}
|
|
17
|
+
toString() {
|
|
18
|
+
return serialize(this);
|
|
19
|
+
}
|
|
20
|
+
toJSON() {
|
|
21
|
+
return serialize(this);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @deprecated this method does not work on ImmutableDate
|
|
25
|
+
*/
|
|
26
|
+
setDate(_date) {
|
|
27
|
+
return this.getTime();
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* @deprecated this method does not work on ImmutableDate
|
|
31
|
+
*/
|
|
32
|
+
setFullYear(_year, _month, _date) {
|
|
33
|
+
return this.getTime();
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* @deprecated this method does not work on ImmutableDate
|
|
37
|
+
*/
|
|
38
|
+
setHours(_hours, _min, _sec, _ms) {
|
|
39
|
+
return this.getTime();
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* @deprecated this method does not work on ImmutableDate
|
|
43
|
+
*/
|
|
44
|
+
setMilliseconds(_ms) {
|
|
45
|
+
return this.getTime();
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* @deprecated this method does not work on ImmutableDate
|
|
49
|
+
*/
|
|
50
|
+
setMinutes(_min, _sec, _ms) {
|
|
51
|
+
return this.getTime();
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* @deprecated this method does not work on ImmutableDate
|
|
55
|
+
*/
|
|
56
|
+
setMonth(_month, _date) {
|
|
57
|
+
return this.getTime();
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* @deprecated this method does not work on ImmutableDate
|
|
61
|
+
*/
|
|
62
|
+
setSeconds(_sec, _ms) {
|
|
63
|
+
return this.getTime();
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* @deprecated this method does not work on ImmutableDate
|
|
67
|
+
*/
|
|
68
|
+
setTime(_time) {
|
|
69
|
+
return this.getTime();
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* @deprecated this method does not work on ImmutableDate
|
|
73
|
+
*/
|
|
74
|
+
setUTCDate(_date) {
|
|
75
|
+
return this.getTime();
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* @deprecated this method does not work on ImmutableDate
|
|
79
|
+
*/
|
|
80
|
+
setUTCFullYear(_year, _month, _date) {
|
|
81
|
+
return this.getTime();
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* @deprecated this method does not work on ImmutableDate
|
|
85
|
+
*/
|
|
86
|
+
setUTCHours(_hours, _min, _sec, _ms) {
|
|
87
|
+
return this.getTime();
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* @deprecated this method does not work on ImmutableDate
|
|
91
|
+
*/
|
|
92
|
+
setUTCMilliseconds(_ms) {
|
|
93
|
+
return this.getTime();
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* @deprecated this method does not work on ImmutableDate
|
|
97
|
+
*/
|
|
98
|
+
setUTCMinutes(_min, _sec, _ms) {
|
|
99
|
+
return this.getTime();
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* @deprecated this method does not work on ImmutableDate
|
|
103
|
+
*/
|
|
104
|
+
setUTCMonth(_month, _date) {
|
|
105
|
+
return this.getTime();
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* @deprecated this method does not work on ImmutableDate
|
|
109
|
+
*/
|
|
110
|
+
setUTCSeconds(_sec, _ms) {
|
|
111
|
+
return this.getTime();
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* @internal
|
|
115
|
+
* @deprecated use DDate.create | DDate.createOrThrow function
|
|
116
|
+
*/
|
|
117
|
+
static "new"(timestamp) {
|
|
118
|
+
return new TheDate(makeSafeTimestamp(timestamp));
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export { TheDate };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var kind = require('../common/kind.cjs');
|
|
4
|
+
var kind$1 = require('./kind.cjs');
|
|
5
|
+
var makeSafeTimeValue = require('./makeSafeTimeValue.cjs');
|
|
6
|
+
var serialize = require('./serialize.cjs');
|
|
7
|
+
|
|
8
|
+
const defaultKindValue = {};
|
|
9
|
+
/**
|
|
10
|
+
* {@include date/theTime/index.md}
|
|
11
|
+
*/
|
|
12
|
+
class TheTime extends kind.kindHeritage("the-time", kind$1.createDateKind("the-time")) {
|
|
13
|
+
timeValue;
|
|
14
|
+
constructor(timeValue) {
|
|
15
|
+
super(defaultKindValue);
|
|
16
|
+
this.timeValue = timeValue;
|
|
17
|
+
}
|
|
18
|
+
toNative() {
|
|
19
|
+
return this.timeValue;
|
|
20
|
+
}
|
|
21
|
+
toString() {
|
|
22
|
+
return serialize.serialize(this);
|
|
23
|
+
}
|
|
24
|
+
toJSON() {
|
|
25
|
+
return serialize.serialize(this);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* @internal
|
|
29
|
+
* @deprecated use DDate.createTime | DDate.createTimeOrThrow function
|
|
30
|
+
*/
|
|
31
|
+
static "new"(time) {
|
|
32
|
+
return new TheTime(makeSafeTimeValue.makeSafeTimeValue(time));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
exports.TheTime = TheTime;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { type SerializedTheTime } from "./types";
|
|
2
|
+
declare const TheTime_base: new (params?: {
|
|
3
|
+
"@DuplojsUtilsDate/the-time"?: unknown;
|
|
4
|
+
} | undefined) => import("../common/kind").Kind<import("../common/kind").KindDefinition<"the-time", unknown>, unknown> & import("../common/kind").Kind<import("../common/kind").KindDefinition<"@DuplojsUtilsDate/the-time", unknown>, unknown>;
|
|
5
|
+
/**
|
|
6
|
+
* Represents an immutable time value object (`TheTime`) stored in milliseconds.
|
|
7
|
+
*
|
|
8
|
+
* Signature: `TheTime` → immutable class-like value object
|
|
9
|
+
*
|
|
10
|
+
* `TheTime` solves unit-fragmentation issues (`hours`, `minutes`, `seconds`) by using a single safe millisecond representation while keeping strong typing and explicit serialization.
|
|
11
|
+
*
|
|
12
|
+
* ```ts
|
|
13
|
+
* const theTime = D.createTime(2, "hour");
|
|
14
|
+
* // theTime: TheTime
|
|
15
|
+
*
|
|
16
|
+
* const timeValue = theTime.toNative();
|
|
17
|
+
* // timeValue: number
|
|
18
|
+
*
|
|
19
|
+
* const serialized = D.serialize(theTime);
|
|
20
|
+
* // serialized: SerializedTheTime
|
|
21
|
+
*
|
|
22
|
+
* const date = D.create("2025-10-20");
|
|
23
|
+
* const dateWithDuration = D.addTime(date, theTime);
|
|
24
|
+
* // dateWithDuration: TheDate
|
|
25
|
+
*
|
|
26
|
+
* const threeHours = D.createTime(3, "hour");
|
|
27
|
+
* // threeHours: TheTime
|
|
28
|
+
*
|
|
29
|
+
* const asMilliseconds = D.toTimeValue(theTime);
|
|
30
|
+
* // asMilliseconds: number
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* @remarks
|
|
34
|
+
* - `TheTime` is not a `number`, but it behaves as an immutable numeric time value.
|
|
35
|
+
* - Date unit operators (`addMinutes`, `subtractDays`, etc.) target `TheDate`; `TheTime` is used as a normalized duration value.
|
|
36
|
+
* - Use `D.serialize(theTime)` to convert to `SerializedTheTime`.
|
|
37
|
+
* - Use `D.createTime(...)` / `D.createTimeOrThrow(...)` to construct instances.
|
|
38
|
+
*
|
|
39
|
+
* @see https://utils.duplojs.dev/en/v1/api/date/theTime
|
|
40
|
+
* @see https://utils.duplojs.dev/en/v1/api/date/serialize
|
|
41
|
+
* @see https://utils.duplojs.dev/en/v1/api/date/createTime
|
|
42
|
+
*
|
|
43
|
+
* @namespace D
|
|
44
|
+
*
|
|
45
|
+
*/
|
|
46
|
+
export declare class TheTime extends TheTime_base {
|
|
47
|
+
private timeValue;
|
|
48
|
+
private constructor();
|
|
49
|
+
toNative(): number;
|
|
50
|
+
toString(): SerializedTheTime;
|
|
51
|
+
toJSON(): SerializedTheTime;
|
|
52
|
+
}
|
|
53
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { kindHeritage } from '../common/kind.mjs';
|
|
2
|
+
import { createDateKind } from './kind.mjs';
|
|
3
|
+
import { makeSafeTimeValue } from './makeSafeTimeValue.mjs';
|
|
4
|
+
import { serialize } from './serialize.mjs';
|
|
5
|
+
|
|
6
|
+
const defaultKindValue = {};
|
|
7
|
+
/**
|
|
8
|
+
* {@include date/theTime/index.md}
|
|
9
|
+
*/
|
|
10
|
+
class TheTime extends kindHeritage("the-time", createDateKind("the-time")) {
|
|
11
|
+
timeValue;
|
|
12
|
+
constructor(timeValue) {
|
|
13
|
+
super(defaultKindValue);
|
|
14
|
+
this.timeValue = timeValue;
|
|
15
|
+
}
|
|
16
|
+
toNative() {
|
|
17
|
+
return this.timeValue;
|
|
18
|
+
}
|
|
19
|
+
toString() {
|
|
20
|
+
return serialize(this);
|
|
21
|
+
}
|
|
22
|
+
toJSON() {
|
|
23
|
+
return serialize(this);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* @internal
|
|
27
|
+
* @deprecated use DDate.createTime | DDate.createTimeOrThrow function
|
|
28
|
+
*/
|
|
29
|
+
static "new"(time) {
|
|
30
|
+
return new TheTime(makeSafeTimeValue(time));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export { TheTime };
|