@utiliread/primitives 1.0.0-95 → 1.0.0-97
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/cjs/breakdown-rule.js +1 -1
- package/dist/cjs/breakdown-rule.js.map +1 -1
- package/dist/cjs/breakdown-rule.spec.js +9 -0
- package/dist/cjs/breakdown-rule.spec.js.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/time-or-rule.js +6 -0
- package/dist/cjs/time-or-rule.js.map +1 -1
- package/dist/esm/breakdown-rule.d.ts +2 -3
- package/dist/esm/breakdown-rule.js +1 -1
- package/dist/esm/breakdown-rule.js.map +1 -1
- package/dist/esm/breakdown-rule.spec.js +9 -0
- package/dist/esm/breakdown-rule.spec.js.map +1 -1
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/time-or-rule.d.ts +1 -0
- package/dist/esm/time-or-rule.js +6 -0
- package/dist/esm/time-or-rule.js.map +1 -1
- package/package.json +1 -1
- package/src/breakdown-rule.spec.ts +31 -7
- package/src/breakdown-rule.ts +2 -3
- package/src/index.ts +2 -1
- package/src/time-or-rule.ts +5 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breakdown-rule.js","sourceRoot":"","sources":["../../src/breakdown-rule.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"breakdown-rule.js","sourceRoot":"","sources":["../../src/breakdown-rule.ts"],"names":[],"mappings":";;;AAAA,iDAA4C;AAqB5C,SAAgB,aAAa,CAAC,GAAG,MAAa;;IAC1C,IAAI,IAAuB,CAAC;IAC5B,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC;YACF,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACjB,MAAM;QACV,KAAK,CAAC;YACF,IAAI,GAAG;gBACH,MAAM,EAAE,EAAE;gBACV,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;gBAChB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;aACpB,CAAC;YACF,MAAM;QACV,KAAK,CAAC;YACF,IAAI,GAAG;gBACH,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;gBACjB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;gBAChB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;aACpB,CAAC;YACF,MAAM;QACV;YACI,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,MAAM,mCAAI,EAAE,CAAC;IACjC,MAAM,UAAU,GACZ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;IAClE,OAAO,yBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,EAAE;QAC7C,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,UAAU,EAAE;QAC9B,CAAC,CAAC,GAAG,MAAM,IAAI,IAAI,CAAC,KAAK,GAAG,UAAU,EAAE,CAAC;AACjD,CAAC;AA7BD,sCA6BC;AAED,WAAiB,aAAa;IAC1B,MAAM,KAAK,GAAG,IAAI,MAAM,CACpB,mDAAmD,CACtD,CAAC;IACF,SAAgB,KAAK,CAAC,IAAmB;;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,MAAM,GAAG,MAAA,KAAK,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,OAAO;YACH,MAAM,EAAE,yBAAU,CAAC,KAAK,CAAC,MAAM,CAAC;YAChC,KAAK;YACL,MAAM,EAAE,MAAyB;SACpC,CAAC;IACN,CAAC;IAhBe,mBAAK,QAgBpB,CAAA;AACL,CAAC,EArBgB,aAAa,6BAAb,aAAa,QAqB7B"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const breakdown_rule_1 = require("./breakdown-rule");
|
|
4
|
+
const luxon_1 = require("luxon");
|
|
5
|
+
const _1 = require(".");
|
|
4
6
|
const chai_1 = require("chai");
|
|
5
7
|
describe("ctor", () => {
|
|
6
8
|
it("creates", () => {
|
|
@@ -37,5 +39,12 @@ describe("split", () => {
|
|
|
37
39
|
(0, chai_1.expect)(count).to.equal(10);
|
|
38
40
|
(0, chai_1.expect)(period).to.equal("hour");
|
|
39
41
|
});
|
|
42
|
+
it("splits with time origin", () => {
|
|
43
|
+
const { origin, count, period } = breakdown_rule_1.BreakdownRule.split("2024-01-25T00:00:00.000+01:00/1hour");
|
|
44
|
+
(0, chai_1.expect)(_1.TimeOrRule.isTime(origin)).to.equal(true);
|
|
45
|
+
(0, chai_1.expect)(+origin).to.equal(+luxon_1.DateTime.local(2024, 1, 25));
|
|
46
|
+
(0, chai_1.expect)(count).to.equal(1);
|
|
47
|
+
(0, chai_1.expect)(period).to.equal("hour");
|
|
48
|
+
});
|
|
40
49
|
});
|
|
41
50
|
//# sourceMappingURL=breakdown-rule.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breakdown-rule.spec.js","sourceRoot":"","sources":["../../src/breakdown-rule.spec.ts"],"names":[],"mappings":";;AAAA,qDAAiD;AACjD,+BAA8B;AAE9B,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IAClB,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACf,IAAA,aAAM,EAAC,IAAA,8BAAa,EAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"breakdown-rule.spec.js","sourceRoot":"","sources":["../../src/breakdown-rule.spec.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.TimeOrRule = exports.Step = exports.Repository = exports.registers = exports.RegisterLibrary = exports.RegisterConvention = exports.PrecisionNumber = exports.NumberFormatter = exports.localeDecimalSeparator = exports.invariantDecimalSeparator = exports.DayOfWeek = void 0;
|
|
26
|
+
exports.TimeOrRule = exports.Step = exports.Repository = exports.registers = exports.RegisterLibrary = exports.RegisterConvention = exports.PrecisionNumber = exports.NumberFormatter = exports.localeDecimalSeparator = exports.invariantDecimalSeparator = exports.DayOfWeek = exports.BreakdownRule = void 0;
|
|
27
27
|
require("./repository"); // We need this to get the Repository namespace exported
|
|
28
28
|
const registers = __importStar(require("./registers"));
|
|
29
29
|
exports.registers = registers;
|
|
@@ -34,6 +34,8 @@ const number_formatter_1 = require("./number-formatter");
|
|
|
34
34
|
Object.defineProperty(exports, "NumberFormatter", { enumerable: true, get: function () { return number_formatter_1.NumberFormatter; } });
|
|
35
35
|
Object.defineProperty(exports, "invariantDecimalSeparator", { enumerable: true, get: function () { return number_formatter_1.invariantDecimalSeparator; } });
|
|
36
36
|
Object.defineProperty(exports, "localeDecimalSeparator", { enumerable: true, get: function () { return number_formatter_1.localeDecimalSeparator; } });
|
|
37
|
+
const breakdown_rule_1 = require("./breakdown-rule");
|
|
38
|
+
Object.defineProperty(exports, "BreakdownRule", { enumerable: true, get: function () { return breakdown_rule_1.BreakdownRule; } });
|
|
37
39
|
const precision_number_1 = require("./precision-number");
|
|
38
40
|
Object.defineProperty(exports, "PrecisionNumber", { enumerable: true, get: function () { return precision_number_1.PrecisionNumber; } });
|
|
39
41
|
const register_convention_1 = require("./register-convention");
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBAAsB,CAAC,wDAAwD;AAE/E,uDAAyC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBAAsB,CAAC,wDAAwD;AAE/E,uDAAyC;AAwCrC,8BAAS;AAtCb,iCAAyC;AA0BrC,0FA1BK,gBAAS,OA0BL;AAcT,qFAxCgB,WAAI,OAwChB;AAvCR,yDAI4B;AA0BxB,gGA7BA,kCAAe,OA6BA;AAJf,0GAxBA,4CAAyB,OAwBA;AACzB,uGAxBA,yCAAsB,OAwBA;AAnB1B,qDAAiD;AAgB7C,8FAhBK,8BAAa,OAgBL;AAZjB,yDAAqD;AAoBjD,gGApBK,kCAAe,OAoBL;AAnBnB,+DAA2D;AAoBvD,mGApBK,wCAAkB,OAoBL;AAjBtB,yDAAqD;AAoBjD,gGApBK,kCAAe,OAoBL;AAnBnB,6CAA0C;AAqBtC,2FArBK,uBAAU,OAqBL;AApBd,iDAA4C;AAsBxC,2FAtBK,yBAAU,OAsBL"}
|
package/dist/cjs/time-or-rule.js
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TimeOrRule = void 0;
|
|
4
|
+
const luxon_1 = require("luxon");
|
|
4
5
|
var TimeOrRule;
|
|
5
6
|
(function (TimeOrRule) {
|
|
7
|
+
function parse(input) {
|
|
8
|
+
const time = luxon_1.DateTime.fromISO(input, { setZone: true });
|
|
9
|
+
return time.isValid ? time : input;
|
|
10
|
+
}
|
|
11
|
+
TimeOrRule.parse = parse;
|
|
6
12
|
function isTime(input) {
|
|
7
13
|
return typeof input !== "string";
|
|
8
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-or-rule.js","sourceRoot":"","sources":["../../src/time-or-rule.ts"],"names":[],"mappings":";;;
|
|
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,7 +1,6 @@
|
|
|
1
|
-
import { Step } from "./step";
|
|
2
1
|
import { TimeOrRule } from "./time-or-rule";
|
|
3
2
|
export type BreakdownRule = string;
|
|
4
|
-
export type BreakdownPeriod =
|
|
3
|
+
export type BreakdownPeriod = "hour" | "day" | "week" | "month" | "year";
|
|
5
4
|
interface BreakdownRuleInit {
|
|
6
5
|
origin?: TimeOrRule;
|
|
7
6
|
count: number;
|
|
@@ -14,7 +13,7 @@ export declare namespace BreakdownRule {
|
|
|
14
13
|
function split(rule: BreakdownRule): {
|
|
15
14
|
origin: TimeOrRule;
|
|
16
15
|
count: number;
|
|
17
|
-
period:
|
|
16
|
+
period: BreakdownPeriod;
|
|
18
17
|
};
|
|
19
18
|
}
|
|
20
19
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breakdown-rule.js","sourceRoot":"","sources":["../../src/breakdown-rule.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"breakdown-rule.js","sourceRoot":"","sources":["../../src/breakdown-rule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAqB5C,MAAM,UAAU,aAAa,CAAC,GAAG,MAAa;;IAC1C,IAAI,IAAuB,CAAC;IAC5B,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC;YACF,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACjB,MAAM;QACV,KAAK,CAAC;YACF,IAAI,GAAG;gBACH,MAAM,EAAE,EAAE;gBACV,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;gBAChB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;aACpB,CAAC;YACF,MAAM;QACV,KAAK,CAAC;YACF,IAAI,GAAG;gBACH,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;gBACjB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;gBAChB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;aACpB,CAAC;YACF,MAAM;QACV;YACI,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,MAAM,mCAAI,EAAE,CAAC;IACjC,MAAM,UAAU,GACZ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;IAClE,OAAO,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,EAAE;QAC7C,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,UAAU,EAAE;QAC9B,CAAC,CAAC,GAAG,MAAM,IAAI,IAAI,CAAC,KAAK,GAAG,UAAU,EAAE,CAAC;AACjD,CAAC;AAED,WAAiB,aAAa;IAC1B,MAAM,KAAK,GAAG,IAAI,MAAM,CACpB,mDAAmD,CACtD,CAAC;IACF,SAAgB,KAAK,CAAC,IAAmB;;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,MAAM,GAAG,MAAA,KAAK,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,OAAO;YACH,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;YAChC,KAAK;YACL,MAAM,EAAE,MAAyB;SACpC,CAAC;IACN,CAAC;IAhBe,mBAAK,QAgBpB,CAAA;AACL,CAAC,EArBgB,aAAa,KAAb,aAAa,QAqB7B"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { BreakdownRule } from "./breakdown-rule";
|
|
2
|
+
import { DateTime } from "luxon";
|
|
3
|
+
import { TimeOrRule } from ".";
|
|
2
4
|
import { expect } from "chai";
|
|
3
5
|
describe("ctor", () => {
|
|
4
6
|
it("creates", () => {
|
|
@@ -35,5 +37,12 @@ describe("split", () => {
|
|
|
35
37
|
expect(count).to.equal(10);
|
|
36
38
|
expect(period).to.equal("hour");
|
|
37
39
|
});
|
|
40
|
+
it("splits with time origin", () => {
|
|
41
|
+
const { origin, count, period } = BreakdownRule.split("2024-01-25T00:00:00.000+01:00/1hour");
|
|
42
|
+
expect(TimeOrRule.isTime(origin)).to.equal(true);
|
|
43
|
+
expect(+origin).to.equal(+DateTime.local(2024, 1, 25));
|
|
44
|
+
expect(count).to.equal(1);
|
|
45
|
+
expect(period).to.equal("hour");
|
|
46
|
+
});
|
|
38
47
|
});
|
|
39
48
|
//# sourceMappingURL=breakdown-rule.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breakdown-rule.spec.js","sourceRoot":"","sources":["../../src/breakdown-rule.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IAClB,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACf,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"breakdown-rule.spec.js","sourceRoot":"","sources":["../../src/breakdown-rule.spec.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import "./repository";
|
|
2
2
|
import * as registers from "./registers";
|
|
3
|
-
import type { BreakdownPeriod, BreakdownRule } from "./breakdown-rule";
|
|
4
3
|
import { DayOfWeek, Step } from "./step";
|
|
5
4
|
import { NumberFormatter, invariantDecimalSeparator, localeDecimalSeparator } from "./number-formatter";
|
|
6
5
|
import type { AggregateId } from "./aggregate-id";
|
|
6
|
+
import type { BreakdownPeriod } from "./breakdown-rule";
|
|
7
|
+
import { BreakdownRule } from "./breakdown-rule";
|
|
7
8
|
import type { MeasureId } from "./measure-id";
|
|
8
9
|
import type { Medium } from "./medium";
|
|
9
10
|
import type { Optional } from "./optional";
|
package/dist/esm/index.js
CHANGED
|
@@ -2,10 +2,11 @@ import "./repository"; // We need this to get the Repository namespace exported
|
|
|
2
2
|
import * as registers from "./registers";
|
|
3
3
|
import { DayOfWeek, Step } from "./step";
|
|
4
4
|
import { NumberFormatter, invariantDecimalSeparator, localeDecimalSeparator, } from "./number-formatter";
|
|
5
|
+
import { BreakdownRule } from "./breakdown-rule";
|
|
5
6
|
import { PrecisionNumber } from "./precision-number";
|
|
6
7
|
import { RegisterConvention } from "./register-convention";
|
|
7
8
|
import { RegisterLibrary } from "./register-library";
|
|
8
9
|
import { Repository } from "./repository";
|
|
9
10
|
import { TimeOrRule } from "./time-or-rule";
|
|
10
|
-
export { DayOfWeek, invariantDecimalSeparator, localeDecimalSeparator, NumberFormatter, PrecisionNumber, RegisterConvention, RegisterLibrary, registers, Repository, Step, TimeOrRule, };
|
|
11
|
+
export { BreakdownRule, DayOfWeek, invariantDecimalSeparator, localeDecimalSeparator, NumberFormatter, PrecisionNumber, RegisterConvention, RegisterLibrary, registers, Repository, Step, TimeOrRule, };
|
|
11
12
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC,CAAC,wDAAwD;AAE/E,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC,CAAC,wDAAwD;AAE/E,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EACH,eAAe,EACf,yBAAyB,EACzB,sBAAsB,GACzB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG3D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,OAAO,EAGH,aAAa,EACb,SAAS,EACT,yBAAyB,EACzB,sBAAsB,EAGtB,eAAe,EAEf,eAAe,EACf,kBAAkB,EAGlB,eAAe,EACf,SAAS,EACT,UAAU,EACV,IAAI,EACJ,UAAU,GAEb,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { DateTime } from "luxon";
|
|
2
2
|
export type TimeOrRule = Date | DateTime | string;
|
|
3
3
|
export declare namespace TimeOrRule {
|
|
4
|
+
function parse(input: string): TimeOrRule;
|
|
4
5
|
function isTime(input: TimeOrRule): input is Date | DateTime;
|
|
5
6
|
function isRule(input: TimeOrRule): input is string;
|
|
6
7
|
function asJSON(input: TimeOrRule): string | null;
|
package/dist/esm/time-or-rule.js
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
|
+
import { DateTime } from "luxon";
|
|
1
2
|
export var TimeOrRule;
|
|
2
3
|
(function (TimeOrRule) {
|
|
4
|
+
function parse(input) {
|
|
5
|
+
const time = DateTime.fromISO(input, { setZone: true });
|
|
6
|
+
return time.isValid ? time : input;
|
|
7
|
+
}
|
|
8
|
+
TimeOrRule.parse = parse;
|
|
3
9
|
function isTime(input) {
|
|
4
10
|
return typeof input !== "string";
|
|
5
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-or-rule.js","sourceRoot":"","sources":["../../src/time-or-rule.ts"],"names":[],"mappings":"
|
|
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"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,24 @@
|
|
|
1
1
|
import { BreakdownRule } from "./breakdown-rule";
|
|
2
|
+
import { DateTime } from "luxon";
|
|
3
|
+
import { TimeOrRule } from ".";
|
|
2
4
|
import { expect } from "chai";
|
|
3
5
|
|
|
4
6
|
describe("ctor", () => {
|
|
5
7
|
it("creates", () => {
|
|
6
|
-
expect(BreakdownRule({ count: 1, period: "hour"})).to.equal("1hour");
|
|
7
|
-
expect(BreakdownRule({ count: 2, period: "hour"})).to.equal("2hours");
|
|
8
|
-
expect(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
expect(
|
|
8
|
+
expect(BreakdownRule({ count: 1, period: "hour" })).to.equal("1hour");
|
|
9
|
+
expect(BreakdownRule({ count: 2, period: "hour" })).to.equal("2hours");
|
|
10
|
+
expect(
|
|
11
|
+
BreakdownRule({ origin: "", count: 1, period: "hour" }),
|
|
12
|
+
).to.equal("1hour");
|
|
13
|
+
expect(
|
|
14
|
+
BreakdownRule({ origin: "", count: 2, period: "hour" }),
|
|
15
|
+
).to.equal("2hours");
|
|
16
|
+
expect(
|
|
17
|
+
BreakdownRule({ origin: "day", count: 1, period: "hour" }),
|
|
18
|
+
).to.equal("day/1hour");
|
|
19
|
+
expect(
|
|
20
|
+
BreakdownRule({ origin: "day", count: 2, period: "hour" }),
|
|
21
|
+
).to.equal("day/2hours");
|
|
12
22
|
|
|
13
23
|
expect(BreakdownRule(1, "hour")).to.equal("1hour");
|
|
14
24
|
expect(BreakdownRule(2, "hour")).to.equal("2hours");
|
|
@@ -36,9 +46,23 @@ describe("split", () => {
|
|
|
36
46
|
});
|
|
37
47
|
|
|
38
48
|
it("splits with complex origin and plural count", () => {
|
|
39
|
-
const { origin, count, period } = BreakdownRule.split(
|
|
49
|
+
const { origin, count, period } = BreakdownRule.split(
|
|
50
|
+
"day+PT1H_year^month/10hours",
|
|
51
|
+
);
|
|
40
52
|
expect(origin).to.equal("day+PT1H_year^month");
|
|
41
53
|
expect(count).to.equal(10);
|
|
42
54
|
expect(period).to.equal("hour");
|
|
43
55
|
});
|
|
56
|
+
|
|
57
|
+
it("splits with time origin", () => {
|
|
58
|
+
const { origin, count, period } = BreakdownRule.split(
|
|
59
|
+
"2024-01-25T00:00:00.000+01:00/1hour",
|
|
60
|
+
);
|
|
61
|
+
expect(TimeOrRule.isTime(origin)).to.equal(true);
|
|
62
|
+
expect(+origin).to.equal(
|
|
63
|
+
+DateTime.local(2024, 1, 25),
|
|
64
|
+
);
|
|
65
|
+
expect(count).to.equal(1);
|
|
66
|
+
expect(period).to.equal("hour");
|
|
67
|
+
});
|
|
44
68
|
});
|
package/src/breakdown-rule.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { Step } from "./step";
|
|
2
1
|
import { TimeOrRule } from "./time-or-rule";
|
|
3
2
|
|
|
4
3
|
export type BreakdownRule = string;
|
|
5
|
-
export type BreakdownPeriod =
|
|
4
|
+
export type BreakdownPeriod = "hour" | "day" | "week" | "month" | "year";
|
|
6
5
|
|
|
7
6
|
interface BreakdownRuleInit {
|
|
8
7
|
origin?: TimeOrRule;
|
|
@@ -67,7 +66,7 @@ export namespace BreakdownRule {
|
|
|
67
66
|
period = period.substring(0, period.length - 1);
|
|
68
67
|
}
|
|
69
68
|
return {
|
|
70
|
-
origin: origin
|
|
69
|
+
origin: TimeOrRule.parse(origin),
|
|
71
70
|
count,
|
|
72
71
|
period: period as BreakdownPeriod,
|
|
73
72
|
};
|
package/src/index.ts
CHANGED
|
@@ -2,7 +2,6 @@ import "./repository"; // We need this to get the Repository namespace exported
|
|
|
2
2
|
|
|
3
3
|
import * as registers from "./registers";
|
|
4
4
|
|
|
5
|
-
import type { BreakdownPeriod, BreakdownRule } from "./breakdown-rule";
|
|
6
5
|
import { DayOfWeek, Step } from "./step";
|
|
7
6
|
import {
|
|
8
7
|
NumberFormatter,
|
|
@@ -11,6 +10,8 @@ import {
|
|
|
11
10
|
} from "./number-formatter";
|
|
12
11
|
|
|
13
12
|
import type { AggregateId } from "./aggregate-id";
|
|
13
|
+
import type { BreakdownPeriod } from "./breakdown-rule";
|
|
14
|
+
import { BreakdownRule } from "./breakdown-rule";
|
|
14
15
|
import type { MeasureId } from "./measure-id";
|
|
15
16
|
import type { Medium } from "./medium";
|
|
16
17
|
import type { Optional } from "./optional";
|
package/src/time-or-rule.ts
CHANGED
|
@@ -3,6 +3,11 @@ import { DateTime } from "luxon";
|
|
|
3
3
|
export type TimeOrRule = Date | DateTime | string;
|
|
4
4
|
|
|
5
5
|
export namespace TimeOrRule {
|
|
6
|
+
export function parse(input: string): TimeOrRule {
|
|
7
|
+
const time = DateTime.fromISO(input, { setZone: true });
|
|
8
|
+
return time.isValid ? time : input;
|
|
9
|
+
}
|
|
10
|
+
|
|
6
11
|
export function isTime(input: TimeOrRule): input is Date | DateTime {
|
|
7
12
|
return typeof input !== "string";
|
|
8
13
|
}
|