@utiliread/primitives 1.0.0-98 → 1.0.0-99

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.
@@ -2,7 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TimeOrRule = void 0;
4
4
  const luxon_1 = require("luxon");
5
- var TimeOrRule;
5
+ function TimeOrRule(timeOrRule) {
6
+ return timeOrRule;
7
+ }
8
+ exports.TimeOrRule = TimeOrRule;
6
9
  (function (TimeOrRule) {
7
10
  function parse(input) {
8
11
  const time = luxon_1.DateTime.fromISO(input, { setZone: true });
@@ -21,7 +24,16 @@ var TimeOrRule;
21
24
  if (isRule(input)) {
22
25
  return;
23
26
  }
24
- return luxon_1.DateTime.isDateTime(input) ? input : luxon_1.DateTime.fromJSDate(input);
27
+ else if (luxon_1.DateTime.isDateTime(input)) {
28
+ return input;
29
+ }
30
+ else {
31
+ const dateTime = luxon_1.DateTime.fromJSDate(input);
32
+ if (!dateTime.isValid) {
33
+ throw new Error("Unable to convert from Date to DateTime");
34
+ }
35
+ return dateTime;
36
+ }
25
37
  }
26
38
  TimeOrRule.asDateTime = asDateTime;
27
39
  function toJSON(input) {
@@ -1 +1 @@
1
- {"version":3,"file":"time-or-rule.js","sourceRoot":"","sources":["../../src/time-or-rule.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AAIjC,IAAiB,UAAU,CAwB1B;AAxBD,WAAiB,UAAU;IACvB,SAAgB,KAAK,CAAC,KAAa;QAC/B,MAAM,IAAI,GAAG,gBAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACvC,CAAC;IAHe,gBAAK,QAGpB,CAAA;IAED,SAAgB,MAAM,CAAC,KAAiB;QACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;IACrC,CAAC;IAFe,iBAAM,SAErB,CAAA;IAED,SAAgB,MAAM,CAAC,KAAiB;QACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;IACrC,CAAC;IAFe,iBAAM,SAErB,CAAA;IAED,SAAgB,UAAU,CAAC,KAAiB;QACxC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAChB,OAAO;QACX,CAAC;QACD,OAAO,gBAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC3E,CAAC;IALe,qBAAU,aAKzB,CAAA;IAED,SAAgB,MAAM,CAAC,KAAiB;QACpC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAClD,CAAC;IAFe,iBAAM,SAErB,CAAA;AACL,CAAC,EAxBgB,UAAU,0BAAV,UAAU,QAwB1B"}
1
+ {"version":3,"file":"time-or-rule.js","sourceRoot":"","sources":["../../src/time-or-rule.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AAIjC,SAAgB,UAAU,CACtB,UAA0C;IAE1C,OAAO,UAAU,CAAC;AACtB,CAAC;AAJD,gCAIC;AAED,WAAiB,UAAU;IACvB,SAAgB,KAAK,CAAC,KAAa;QAC/B,MAAM,IAAI,GAAG,gBAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACvC,CAAC;IAHe,gBAAK,QAGpB,CAAA;IAED,SAAgB,MAAM,CAAC,KAAiB;QACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;IACrC,CAAC;IAFe,iBAAM,SAErB,CAAA;IAED,SAAgB,MAAM,CAAC,KAAiB;QACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;IACrC,CAAC;IAFe,iBAAM,SAErB,CAAA;IAED,SAAgB,UAAU,CAAC,KAAiB;QACxC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAChB,OAAO;QACX,CAAC;aACI,IAAI,gBAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC;QACjB,CAAC;aACI,CAAC;YACF,MAAM,QAAQ,GAAG,gBAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,QAAQ,CAAC;QACpB,CAAC;IACL,CAAC;IAde,qBAAU,aAczB,CAAA;IAED,SAAgB,MAAM,CAAC,KAAiB;QACpC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAClD,CAAC;IAFe,iBAAM,SAErB,CAAA;AACL,CAAC,EAjCgB,UAAU,0BAAV,UAAU,QAiC1B"}
@@ -1,9 +1,10 @@
1
1
  import { DateTime } from "luxon";
2
- export type TimeOrRule = Date | DateTime | string;
2
+ export type TimeOrRule = Date | DateTime<true> | string;
3
+ export declare function TimeOrRule(timeOrRule: Date | DateTime<true> | string): TimeOrRule;
3
4
  export declare namespace TimeOrRule {
4
5
  function parse(input: string): TimeOrRule;
5
- function isTime(input: TimeOrRule): input is Date | DateTime;
6
+ function isTime(input: TimeOrRule): input is Date | DateTime<true>;
6
7
  function isRule(input: TimeOrRule): input is string;
7
- function asDateTime(input: TimeOrRule): DateTime<true> | DateTime<false> | undefined;
8
- function toJSON(input: TimeOrRule): string | null;
8
+ function asDateTime(input: TimeOrRule): DateTime<true> | undefined;
9
+ function toJSON(input: TimeOrRule): string;
9
10
  }
@@ -1,5 +1,7 @@
1
1
  import { DateTime } from "luxon";
2
- export var TimeOrRule;
2
+ export function TimeOrRule(timeOrRule) {
3
+ return timeOrRule;
4
+ }
3
5
  (function (TimeOrRule) {
4
6
  function parse(input) {
5
7
  const time = DateTime.fromISO(input, { setZone: true });
@@ -18,7 +20,16 @@ export var TimeOrRule;
18
20
  if (isRule(input)) {
19
21
  return;
20
22
  }
21
- return DateTime.isDateTime(input) ? input : DateTime.fromJSDate(input);
23
+ else if (DateTime.isDateTime(input)) {
24
+ return input;
25
+ }
26
+ else {
27
+ const dateTime = DateTime.fromJSDate(input);
28
+ if (!dateTime.isValid) {
29
+ throw new Error("Unable to convert from Date to DateTime");
30
+ }
31
+ return dateTime;
32
+ }
22
33
  }
23
34
  TimeOrRule.asDateTime = asDateTime;
24
35
  function toJSON(input) {
@@ -1 +1 @@
1
- {"version":3,"file":"time-or-rule.js","sourceRoot":"","sources":["../../src/time-or-rule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAIjC,MAAM,KAAW,UAAU,CAwB1B;AAxBD,WAAiB,UAAU;IACvB,SAAgB,KAAK,CAAC,KAAa;QAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACvC,CAAC;IAHe,gBAAK,QAGpB,CAAA;IAED,SAAgB,MAAM,CAAC,KAAiB;QACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;IACrC,CAAC;IAFe,iBAAM,SAErB,CAAA;IAED,SAAgB,MAAM,CAAC,KAAiB;QACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;IACrC,CAAC;IAFe,iBAAM,SAErB,CAAA;IAED,SAAgB,UAAU,CAAC,KAAiB;QACxC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAChB,OAAO;QACX,CAAC;QACD,OAAO,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC3E,CAAC;IALe,qBAAU,aAKzB,CAAA;IAED,SAAgB,MAAM,CAAC,KAAiB;QACpC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAClD,CAAC;IAFe,iBAAM,SAErB,CAAA;AACL,CAAC,EAxBgB,UAAU,KAAV,UAAU,QAwB1B"}
1
+ {"version":3,"file":"time-or-rule.js","sourceRoot":"","sources":["../../src/time-or-rule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAIjC,MAAM,UAAU,UAAU,CACtB,UAA0C;IAE1C,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,WAAiB,UAAU;IACvB,SAAgB,KAAK,CAAC,KAAa;QAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACvC,CAAC;IAHe,gBAAK,QAGpB,CAAA;IAED,SAAgB,MAAM,CAAC,KAAiB;QACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;IACrC,CAAC;IAFe,iBAAM,SAErB,CAAA;IAED,SAAgB,MAAM,CAAC,KAAiB;QACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;IACrC,CAAC;IAFe,iBAAM,SAErB,CAAA;IAED,SAAgB,UAAU,CAAC,KAAiB;QACxC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAChB,OAAO;QACX,CAAC;aACI,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC;QACjB,CAAC;aACI,CAAC;YACF,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,QAAQ,CAAC;QACpB,CAAC;IACL,CAAC;IAde,qBAAU,aAczB,CAAA;IAED,SAAgB,MAAM,CAAC,KAAiB;QACpC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAClD,CAAC;IAFe,iBAAM,SAErB,CAAA;AACL,CAAC,EAjCgB,UAAU,KAAV,UAAU,QAiC1B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@utiliread/primitives",
3
- "version": "1.0.0-98",
3
+ "version": "1.0.0-99",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "types": "dist/esm/index.d.ts",
@@ -1,6 +1,12 @@
1
1
  import { DateTime } from "luxon";
2
2
 
3
- export type TimeOrRule = Date | DateTime | string;
3
+ export type TimeOrRule = Date | DateTime<true> | string;
4
+
5
+ export function TimeOrRule(
6
+ timeOrRule: Date | DateTime<true> | string,
7
+ ): TimeOrRule {
8
+ return timeOrRule;
9
+ }
4
10
 
5
11
  export namespace TimeOrRule {
6
12
  export function parse(input: string): TimeOrRule {
@@ -8,7 +14,7 @@ export namespace TimeOrRule {
8
14
  return time.isValid ? time : input;
9
15
  }
10
16
 
11
- export function isTime(input: TimeOrRule): input is Date | DateTime {
17
+ export function isTime(input: TimeOrRule): input is Date | DateTime<true> {
12
18
  return typeof input !== "string";
13
19
  }
14
20
 
@@ -16,11 +22,20 @@ export namespace TimeOrRule {
16
22
  return typeof input === "string";
17
23
  }
18
24
 
19
- export function asDateTime(input: TimeOrRule) {
25
+ export function asDateTime(input: TimeOrRule): DateTime<true> | undefined {
20
26
  if (isRule(input)) {
21
27
  return;
22
28
  }
23
- return DateTime.isDateTime(input) ? input : DateTime.fromJSDate(input);
29
+ else if (DateTime.isDateTime(input)) {
30
+ return input;
31
+ }
32
+ else {
33
+ const dateTime = DateTime.fromJSDate(input);
34
+ if (!dateTime.isValid) {
35
+ throw new Error("Unable to convert from Date to DateTime");
36
+ }
37
+ return dateTime;
38
+ }
24
39
  }
25
40
 
26
41
  export function toJSON(input: TimeOrRule) {