@utiliread/primitives 1.0.0-5 → 1.0.0-50
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/.parcel-cache/05bceb1debb074ab +0 -0
- package/.parcel-cache/98c3d22f150231c4 +0 -0
- package/.parcel-cache/a94329c46f41e756 +0 -0
- package/.parcel-cache/b72f446afb579f45 +0 -0
- package/.parcel-cache/d9963624c0099aed.txt +12308 -0
- package/.parcel-cache/data.mdb +0 -0
- package/.parcel-cache/lock.mdb +0 -0
- package/dist/index.d.ts +92 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +288 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +275 -0
- package/dist/index.mjs.map +1 -0
- package/karma.config.js +11 -14
- package/locales/da/aggregates.json +8 -0
- package/locales/da/consumption-types.json +7 -0
- package/locales/da/measures.json +15 -0
- package/locales/da/registers.json +198 -0
- package/locales/da/units.json +90 -0
- package/locales/en/aggregates.json +8 -0
- package/locales/en/consumption-types.json +7 -0
- package/locales/en/measures.json +15 -0
- package/locales/en/registers.json +198 -0
- package/locales/en/units.json +90 -0
- package/package.json +19 -8
- package/src/aggregate-id.ts +9 -9
- package/src/consumption-type-id.ts +8 -8
- package/src/index.ts +35 -15
- package/src/measure-id.ts +14 -0
- package/src/number-formatter.spec.ts +99 -0
- package/src/number-formatter.ts +88 -0
- package/src/optional.ts +1 -0
- package/src/precision-number.spec.ts +28 -0
- package/src/precision-number.ts +36 -0
- package/src/register-convention.spec.ts +43 -0
- package/src/register-convention.ts +61 -0
- package/src/register-definition.ts +23 -10
- package/src/register-id.ts +197 -191
- package/src/register-library.spec.ts +41 -33
- package/src/register-library.ts +57 -37
- package/src/register-pack.ts +5 -5
- package/src/register-utils.ts +6 -0
- package/src/repository.spec.ts +20 -0
- package/src/repository.ts +24 -0
- package/src/step.spec.ts +30 -0
- package/src/step.ts +37 -0
- package/src/time-or-rule.ts +17 -0
- package/src/unit-id.ts +100 -100
- package/tsconfig.json +12 -14
- package/tsconfig.test.json +7 -0
- package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/base.css +0 -224
- package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/block-navigation.js +0 -79
- package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/favicon.png +0 -0
- package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/index.html +0 -96
- package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/prettify.css +0 -1
- package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/prettify.js +0 -2
- package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/sort-arrow-sprite.png +0 -0
- package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/sorter.js +0 -170
- package/dist/cjs/aggregate-id.js +0 -3
- package/dist/cjs/aggregate-id.js.map +0 -1
- package/dist/cjs/consumption-type-id.js +0 -3
- package/dist/cjs/consumption-type-id.js.map +0 -1
- package/dist/cjs/index.js +0 -8
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/register-converter.js +0 -47
- package/dist/cjs/register-converter.js.map +0 -1
- package/dist/cjs/register-converter.spec.js +0 -29
- package/dist/cjs/register-converter.spec.js.map +0 -1
- package/dist/cjs/register-definition.js +0 -3
- package/dist/cjs/register-definition.js.map +0 -1
- package/dist/cjs/register-id.js +0 -3
- package/dist/cjs/register-id.js.map +0 -1
- package/dist/cjs/register-library.js +0 -42
- package/dist/cjs/register-library.js.map +0 -1
- package/dist/cjs/register-library.spec.js +0 -30
- package/dist/cjs/register-library.spec.js.map +0 -1
- package/dist/cjs/register-pack.js +0 -3
- package/dist/cjs/register-pack.js.map +0 -1
- package/dist/cjs/unit-id.js +0 -14
- package/dist/cjs/unit-id.js.map +0 -1
- package/dist/esm/aggregate-id.d.ts +0 -1
- package/dist/esm/aggregate-id.js +0 -2
- package/dist/esm/aggregate-id.js.map +0 -1
- package/dist/esm/consumption-type-id.d.ts +0 -1
- package/dist/esm/consumption-type-id.js +0 -2
- package/dist/esm/consumption-type-id.js.map +0 -1
- package/dist/esm/index.d.ts +0 -7
- package/dist/esm/index.js +0 -4
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/register-converter.d.ts +0 -9
- package/dist/esm/register-converter.js +0 -44
- package/dist/esm/register-converter.js.map +0 -1
- package/dist/esm/register-converter.spec.d.ts +0 -1
- package/dist/esm/register-converter.spec.js +0 -27
- package/dist/esm/register-converter.spec.js.map +0 -1
- package/dist/esm/register-definition.d.ts +0 -9
- package/dist/esm/register-definition.js +0 -2
- package/dist/esm/register-definition.js.map +0 -1
- package/dist/esm/register-id.d.ts +0 -1
- package/dist/esm/register-id.js +0 -2
- package/dist/esm/register-id.js.map +0 -1
- package/dist/esm/register-library.d.ts +0 -11
- package/dist/esm/register-library.js +0 -39
- package/dist/esm/register-library.js.map +0 -1
- package/dist/esm/register-library.spec.d.ts +0 -1
- package/dist/esm/register-library.spec.js +0 -28
- package/dist/esm/register-library.spec.js.map +0 -1
- package/dist/esm/register-pack.d.ts +0 -4
- package/dist/esm/register-pack.js +0 -2
- package/dist/esm/register-pack.js.map +0 -1
- package/dist/esm/unit-id.d.ts +0 -2
- package/dist/esm/unit-id.js +0 -11
- package/dist/esm/unit-id.js.map +0 -1
- package/src/register-converter.spec.ts +0 -31
- package/src/register-converter.ts +0 -48
- package/tsconfig.cjs.json +0 -9
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare type RegisterId = "none" | "heatEnergy" | "diffHeatEnergy" | "heatEnergyVolumeInInlet" | "diffHeatEnergyVolumeInInlet" | "heatEnergyVolumeInOutlet" | "diffHeatEnergyVolumeInOutlet" | "coolingEnergy" | "diffCoolingEnergy" | "coolingEnergyVolumeInInlet" | "diffCoolingEnergyVolumeInInlet" | "coolingEnergyVolumeInOutlet" | "diffCoolingEnergyVolumeInOutlet" | "electricalEnergy" | "diffElectricalEnergy" | "reactiveEnergy" | "diffReactiveEnergy" | "volume" | "diffVolume" | "inletVolume" | "diffInletVolume" | "outletVolume" | "diffOutletVolume" | "pulseInputAVolume" | "diffPulseInputAVolume" | "pulseInputBVolume" | "diffPulseInputBVolume" | "mass" | "diffMass" | "inletMass" | "diffInletMass" | "outletMass" | "diffOutletMass" | "power" | "maxPower" | "minPower" | "avgPower" | "inletPower" | "maxInletPower" | "minInletPower" | "avgInletPower" | "outletPower" | "maxOutletPower" | "minOutletPower" | "avgOutletPower" | "volumeFlow" | "maxVolumeFlow" | "minVolumeFlow" | "avgVolumeFlow" | "inletVolumeFlow" | "maxInletVolumeFlow" | "minInletVolumeFlow" | "avgInletVolumeFlow" | "outletVolumeFlow" | "maxOutletVolumeFlow" | "minOutletVolumeFlow" | "avgOutletVolumeFlow" | "massFlow" | "maxMassFlow" | "minMassFlow" | "avgMassFlow" | "inletMassFlow" | "maxInletMassFlow" | "minInletMassFlow" | "avgInletMassFlow" | "outletMassFlow" | "maxOutletMassFlow" | "minOutletMassFlow" | "avgOutletMassFlow" | "flowTemperature" | "maxFlowTemperature" | "minFlowTemperature" | "avgFlowTemperature" | "inletFlowTemperature" | "maxInletFlowTemperature" | "minInletFlowTemperature" | "avgInletFlowTemperature" | "outletFlowTemperature" | "maxOutletFlowTemperature" | "minOutletFlowTemperature" | "avgOutletFlowTemperature" | "inletMinusOutletFlowTemperatureDifference" | "maxInletMinusOutletFlowTemperatureDifference" | "minInletMinusOutletFlowTemperatureDifference" | "avgInletMinusOutletFlowTemperatureDifference" | "outletMinusInletFlowTemperatureDifference" | "maxOutletMinusInletFlowTemperatureDifference" | "minOutletMinusInletFlowTemperatureDifference" | "avgOutletMinusInletFlowTemperatureDifference" | "ambientTemperature" | "maxAmbientTemperature" | "minAmbientTemperature" | "avgAmbientTemperature" | "radiatorTemperature" | "maxRadiatorTemperature" | "minRadiatorTemperature" | "avgRadiatorTemperature" | "relativeHumidity" | "kamstrupE8Inlet" | "diffKamstrupE8Inlet" | "kamstrupE9Outlet" | "diffKamstrupE9Outlet" | "operatingTime" | "diffOperatingTime" | "remainingBatteryTime" | "diffRemainingBatteryTime" | "deviceDate" | "deviceTime" | "deviceDateTime" | "timeSinceLastExactOverhearingArrived" | "timeAtLastExactOverhearingArrived" | "timeSinceLastPossibleCandidateOverhearingArrived" | "timeAtLastPossibleCandidateOverhearingArrived" | "timeSinceLastSampled" | "timeAtLastSampled" | "timeSinceLastInstallationMounted" | "timeAtLastInstallationMounted" | "basetime" | "device" | "wMBusDeviceAddresses" | "kamdraftDeviceAddresses" | "tchlrDeviceAddresses" | "kamdaDeviceAddresses" | "msisdnDeviceAddresses" | "deviceRegisters" | "consumptionZone" | "mBusFormatStringSignature" | "kamstrupMulticalInfocodeType1" | "kamstrupMulticalInfocodeType2" | "kamstrupMulticalInfocodeType3" | "kamstrupMulticalInfocodeType4" | "kamstrupMulticalInfocode" | "kamstrupModuleType" | "diehlInfocodeType1" | "diehlInfocode" | "landisGyrMBusStatusType1" | "landisGyrMBusStatusType2" | "landisGyrMBusStatus" | "landisGyrInfocodeType1" | "landisGyrInfocodeType2" | "landisGyrInfocode" | "infocode";
|
package/dist/esm/register-id.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"register-id.js","sourceRoot":"","sources":["../../src/register-id.ts"],"names":[],"mappings":""}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { RegisterDefinition } from "./register-definition";
|
|
2
|
-
import { RegisterId } from "./register-id";
|
|
3
|
-
import { RegisterPack } from "./register-pack";
|
|
4
|
-
declare class Library {
|
|
5
|
-
private definitions;
|
|
6
|
-
add(...definitions: (RegisterDefinition | RegisterPack)[]): void;
|
|
7
|
-
get(id: RegisterId): RegisterDefinition;
|
|
8
|
-
reset(): void;
|
|
9
|
-
}
|
|
10
|
-
export declare const RegisterLibrary: Library;
|
|
11
|
-
export {};
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
var Library = /** @class */ (function () {
|
|
2
|
-
function Library() {
|
|
3
|
-
this.definitions = {};
|
|
4
|
-
}
|
|
5
|
-
Library.prototype.add = function () {
|
|
6
|
-
var definitions = [];
|
|
7
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
8
|
-
definitions[_i] = arguments[_i];
|
|
9
|
-
}
|
|
10
|
-
for (var _a = 0, definitions_1 = definitions; _a < definitions_1.length; _a++) {
|
|
11
|
-
var definition = definitions_1[_a];
|
|
12
|
-
if (isDefinition(definition)) {
|
|
13
|
-
this.definitions[definition.id] = definition;
|
|
14
|
-
}
|
|
15
|
-
else {
|
|
16
|
-
for (var _b = 0, _c = Object.values(definition); _b < _c.length; _b++) {
|
|
17
|
-
var definitionInPack = _c[_b];
|
|
18
|
-
this.definitions[definitionInPack.id] = definitionInPack;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
Library.prototype.get = function (id) {
|
|
24
|
-
var definition = this.definitions[id];
|
|
25
|
-
if (!definition) {
|
|
26
|
-
throw new Error("Defintion was not loaded for register " + id);
|
|
27
|
-
}
|
|
28
|
-
return definition;
|
|
29
|
-
};
|
|
30
|
-
Library.prototype.reset = function () {
|
|
31
|
-
this.definitions = {};
|
|
32
|
-
};
|
|
33
|
-
return Library;
|
|
34
|
-
}());
|
|
35
|
-
function isDefinition(definitionOrPack) {
|
|
36
|
-
return !!(definitionOrPack.id && definitionOrPack.aggregate && definitionOrPack.units);
|
|
37
|
-
}
|
|
38
|
-
export var RegisterLibrary = new Library();
|
|
39
|
-
//# sourceMappingURL=register-library.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"register-library.js","sourceRoot":"","sources":["../../src/register-library.ts"],"names":[],"mappings":"AAIA;IAAA;QACY,gBAAW,GAAwD,EAAE,CAAC;IAyBlF,CAAC;IAxBU,qBAAG,GAAV;QAAW,qBAAqD;aAArD,UAAqD,EAArD,qBAAqD,EAArD,IAAqD;YAArD,gCAAqD;;QAC5D,KAAyB,UAAW,EAAX,2BAAW,EAAX,yBAAW,EAAX,IAAW,EAAE;YAAjC,IAAM,UAAU,oBAAA;YACjB,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE;gBAC1B,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC;aAChD;iBACI;gBACD,KAA+B,UAAyB,EAAzB,KAAA,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAzB,cAAyB,EAAzB,IAAyB,EAAE;oBAArD,IAAM,gBAAgB,SAAA;oBACvB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC;iBAC5D;aACJ;SACJ;IACL,CAAC;IAEM,qBAAG,GAAV,UAAW,EAAc;QACrB,IAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,2CAAyC,EAAI,CAAC,CAAC;SAClE;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;IAEM,uBAAK,GAAZ;QACI,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IAC1B,CAAC;IACL,cAAC;AAAD,CAAC,AA1BD,IA0BC;AAED,SAAS,YAAY,CAAC,gBAAmD;IACrE,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,IAAI,gBAAgB,CAAC,SAAS,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,CAAC,IAAM,eAAe,GAAG,IAAI,OAAO,EAAE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { expect } from "chai";
|
|
2
|
-
import { RegisterLibrary } from "./register-library";
|
|
3
|
-
var volume = {
|
|
4
|
-
id: "volume",
|
|
5
|
-
aggregate: "instant",
|
|
6
|
-
units: ["cubicMeter"]
|
|
7
|
-
};
|
|
8
|
-
describe("library", function () {
|
|
9
|
-
beforeEach(function () {
|
|
10
|
-
RegisterLibrary.reset();
|
|
11
|
-
});
|
|
12
|
-
it("should get added definition", function () {
|
|
13
|
-
RegisterLibrary.add(volume);
|
|
14
|
-
var definition = RegisterLibrary.get("volume");
|
|
15
|
-
expect(definition.id).to.equal("volume");
|
|
16
|
-
});
|
|
17
|
-
it("should add all definitions in pack", function () {
|
|
18
|
-
RegisterLibrary.add({
|
|
19
|
-
someRandomKey: volume
|
|
20
|
-
});
|
|
21
|
-
var definition = RegisterLibrary.get("volume");
|
|
22
|
-
expect(definition.id).to.equal("volume");
|
|
23
|
-
});
|
|
24
|
-
it("should throw when getting not added register", function () {
|
|
25
|
-
expect(function () { return RegisterLibrary.get("volume"); }).to.throw();
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
//# sourceMappingURL=register-library.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"register-library.spec.js","sourceRoot":"","sources":["../../src/register-library.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,IAAM,MAAM,GAAuB;IAC/B,EAAE,EAAE,QAAQ;IACZ,SAAS,EAAE,SAAS;IACpB,KAAK,EAAE,CAAC,YAAY,CAAC;CACxB,CAAC;AAEF,QAAQ,CAAC,SAAS,EAAE;IAChB,UAAU,CAAC;QACP,eAAe,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE;QAC9B,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,IAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE;QACrC,eAAe,CAAC,GAAG,CAAC;YAChB,aAAa,EAAE,MAAM;SACxB,CAAC,CAAC;QACH,IAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE;QAC/C,MAAM,CAAC,cAAM,OAAA,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAA7B,CAA6B,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAC3D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"register-pack.js","sourceRoot":"","sources":["../../src/register-pack.ts"],"names":[],"mappings":""}
|
package/dist/esm/unit-id.d.ts
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export declare type UnitId = "unitless" | "milliWattHour" | "wattHour" | "kiloWattHour" | "megaWattHour" | "gigaWattHour" | "calorie" | "kiloCalorie" | "megaCalorie" | "joule" | "kiloJoule" | "megaJoule" | "gigaJoule" | "liter" | "cubicMeter" | "fluidOunce" | "gallon" | "gram" | "kiloGram" | "tonne" | "ounce" | "pound" | "ton" | "second" | "minute" | "hour" | "day" | "week" | "month" | "year" | "milliWatt" | "watt" | "kiloWatt" | "megaWatt" | "gigaWatt" | "joulesPerSecond" | "joulesPerMinute" | "joulesPerHour" | "litersPerSecond" | "litersPerMinute" | "litersPerHour" | "cubicMetersPerSecond" | "cubicMetersPerMinute" | "cubicMetersPerHour" | "fluidOuncesPerSecond" | "fluidOuncesPerMinute" | "fluidOuncesPerHour" | "gallonsPerSecond" | "gallonsPerMinute" | "gallonsPerHour" | "gramsPerSecond" | "gramsPerMinute" | "gramsPerHour" | "kiloGramsPerSecond" | "kiloGramsPerMinute" | "kiloGramsPerHour" | "celcius" | "kelvin" | "fahrenheit" | "var" | "kiloVar" | "megaVar" | "varHour" | "kiloVarHour" | "megaVarHour" | "percentage" | "literCelcius" | "cubicMeterCelcius";
|
|
2
|
-
export declare const energyUnits: UnitId[];
|
package/dist/esm/unit-id.js
DELETED
package/dist/esm/unit-id.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"unit-id.js","sourceRoot":"","sources":["../../src/unit-id.ts"],"names":[],"mappings":"AA0FA,MAAM,CAAC,IAAM,WAAW,GAAa;IACjC,eAAe;IACf,UAAU;IACV,cAAc;IACd,cAAc;IACd,cAAc;IACd,SAAS;IACT,aAAa;IACb,aAAa;CAChB,CAAC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { expect } from "chai";
|
|
2
|
-
import { RegisterConverter } from "./register-converter";
|
|
3
|
-
|
|
4
|
-
describe("toInstant", () => {
|
|
5
|
-
it("should convert instant", () => {
|
|
6
|
-
const registerId = RegisterConverter.toInstant("flowTemperature");
|
|
7
|
-
expect(registerId).to.equal("flowTemperature");
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
it("should convert aggregate", () => {
|
|
11
|
-
const registerId = RegisterConverter.toInstant("avgFlowTemperature");
|
|
12
|
-
expect(registerId).to.equal("flowTemperature");
|
|
13
|
-
});
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
describe("toAggregate", () => {
|
|
17
|
-
it("should convert instant to aggregate", () => {
|
|
18
|
-
const registerId = RegisterConverter.toAggregate("flowTemperature", "avg");
|
|
19
|
-
expect(registerId).to.equal("avgFlowTemperature");
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
it("should convert aggregate to same aggregate", () => {
|
|
23
|
-
const registerId = RegisterConverter.toAggregate("avgFlowTemperature", "avg");
|
|
24
|
-
expect(registerId).to.equal("avgFlowTemperature");
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
it("should convert aggregate to other aggregate", () => {
|
|
28
|
-
const registerId = RegisterConverter.toAggregate("avgFlowTemperature", "min");
|
|
29
|
-
expect(registerId).to.equal("minFlowTemperature");
|
|
30
|
-
});
|
|
31
|
-
});
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { AggregateId } from "./aggregate-id";
|
|
2
|
-
import { RegisterDefinition } from "./register-definition";
|
|
3
|
-
import { RegisterId } from "./register-id";
|
|
4
|
-
|
|
5
|
-
const aggregatePrefixes: {[aggregateId in AggregateId]: string} = {
|
|
6
|
-
instant: "",
|
|
7
|
-
diff: "diff",
|
|
8
|
-
min: "min",
|
|
9
|
-
max: "max",
|
|
10
|
-
avg: "avg",
|
|
11
|
-
sum: "sum",
|
|
12
|
-
cnt: "cnt",
|
|
13
|
-
ssq: "ssq",
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
class Converter {
|
|
17
|
-
toInstant(register: RegisterId | RegisterDefinition) {
|
|
18
|
-
const registerId = getRegisterId(register);
|
|
19
|
-
for (const prefix of Object.values(aggregatePrefixes)) {
|
|
20
|
-
if (prefix.length && registerId.startsWith(prefix) && isUppercase(registerId[prefix.length])) {
|
|
21
|
-
const tail = registerId.substr(prefix.length);
|
|
22
|
-
return tail[0].toLowerCase() + tail.substr(1);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return registerId;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
toAggregate(register: RegisterId | RegisterDefinition, aggregate: AggregateId) {
|
|
29
|
-
const instantRegisterId = this.toInstant(register);
|
|
30
|
-
if (aggregate === "instant") {
|
|
31
|
-
return instantRegisterId;
|
|
32
|
-
}
|
|
33
|
-
const prefix = aggregatePrefixes[aggregate];
|
|
34
|
-
return prefix + instantRegisterId[0].toUpperCase() + instantRegisterId.substr(1);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
function getRegisterId(register: RegisterId | RegisterDefinition) {
|
|
39
|
-
return typeof register === "string"
|
|
40
|
-
? register
|
|
41
|
-
: register.id;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
function isUppercase(input: string) {
|
|
45
|
-
return input.toUpperCase() === input;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export const RegisterConverter = new Converter();
|