@utiliread/primitives 1.0.0-97 → 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 });
@@ -17,9 +20,25 @@ var TimeOrRule;
17
20
  return typeof input === "string";
18
21
  }
19
22
  TimeOrRule.isRule = isRule;
20
- function asJSON(input) {
23
+ function asDateTime(input) {
24
+ if (isRule(input)) {
25
+ return;
26
+ }
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
+ }
37
+ }
38
+ TimeOrRule.asDateTime = asDateTime;
39
+ function toJSON(input) {
21
40
  return isRule(input) ? input : input.toJSON();
22
41
  }
23
- TimeOrRule.asJSON = asJSON;
42
+ TimeOrRule.toJSON = toJSON;
24
43
  })(TimeOrRule || (exports.TimeOrRule = TimeOrRule = {}));
25
44
  //# sourceMappingURL=time-or-rule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"time-or-rule.js","sourceRoot":"","sources":["../../src/time-or-rule.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AAIjC,IAAiB,UAAU,CAiB1B;AAjBD,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,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,EAjBgB,UAAU,0BAAV,UAAU,QAiB1B"}
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,8 +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 asJSON(input: TimeOrRule): string | null;
8
+ function asDateTime(input: TimeOrRule): DateTime<true> | undefined;
9
+ function toJSON(input: TimeOrRule): string;
8
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 });
@@ -14,9 +16,25 @@ export var TimeOrRule;
14
16
  return typeof input === "string";
15
17
  }
16
18
  TimeOrRule.isRule = isRule;
17
- function asJSON(input) {
19
+ function asDateTime(input) {
20
+ if (isRule(input)) {
21
+ return;
22
+ }
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
+ }
33
+ }
34
+ TimeOrRule.asDateTime = asDateTime;
35
+ function toJSON(input) {
18
36
  return isRule(input) ? input : input.toJSON();
19
37
  }
20
- TimeOrRule.asJSON = asJSON;
38
+ TimeOrRule.toJSON = toJSON;
21
39
  })(TimeOrRule || (TimeOrRule = {}));
22
40
  //# sourceMappingURL=time-or-rule.js.map
@@ -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,CAiB1B;AAjBD,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,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,EAjBgB,UAAU,KAAV,UAAU,QAiB1B"}
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-97",
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,7 +22,23 @@ export namespace TimeOrRule {
16
22
  return typeof input === "string";
17
23
  }
18
24
 
19
- export function asJSON(input: TimeOrRule) {
25
+ export function asDateTime(input: TimeOrRule): DateTime<true> | undefined {
26
+ if (isRule(input)) {
27
+ return;
28
+ }
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
+ }
39
+ }
40
+
41
+ export function toJSON(input: TimeOrRule) {
20
42
  return isRule(input) ? input : input.toJSON();
21
43
  }
22
44
  }