@utiliread/primitives 1.0.0-7 → 1.0.0-70

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.
Files changed (148) hide show
  1. package/dist/cjs/index.js +17 -5
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/measure-id.js +3 -0
  4. package/dist/cjs/measure-id.js.map +1 -0
  5. package/dist/cjs/number-formatter.js +70 -39
  6. package/dist/cjs/number-formatter.js.map +1 -1
  7. package/dist/cjs/number-formatter.spec.js +98 -0
  8. package/dist/cjs/number-formatter.spec.js.map +1 -0
  9. package/dist/cjs/optional.js +3 -0
  10. package/dist/cjs/optional.js.map +1 -0
  11. package/dist/cjs/precision-number.js +36 -0
  12. package/dist/cjs/precision-number.js.map +1 -0
  13. package/dist/cjs/precision-number.spec.js +27 -0
  14. package/dist/cjs/precision-number.spec.js.map +1 -0
  15. package/dist/cjs/register-convention.js +56 -0
  16. package/dist/cjs/register-convention.js.map +1 -0
  17. package/dist/cjs/register-convention.spec.js +39 -0
  18. package/dist/cjs/register-convention.spec.js.map +1 -0
  19. package/dist/cjs/register-library.js +31 -22
  20. package/dist/cjs/register-library.js.map +1 -1
  21. package/dist/cjs/register-library.spec.js +20 -13
  22. package/dist/cjs/register-library.spec.js.map +1 -1
  23. package/dist/cjs/register-utils.js +8 -0
  24. package/dist/cjs/register-utils.js.map +1 -0
  25. package/dist/cjs/repository.js +26 -0
  26. package/dist/cjs/repository.js.map +1 -0
  27. package/dist/cjs/repository.spec.js +21 -0
  28. package/dist/cjs/repository.spec.js.map +1 -0
  29. package/dist/cjs/step.js +41 -0
  30. package/dist/cjs/step.js.map +1 -0
  31. package/dist/cjs/step.spec.js +29 -0
  32. package/dist/cjs/step.spec.js.map +1 -0
  33. package/dist/cjs/time-or-rule.js +19 -0
  34. package/dist/cjs/time-or-rule.js.map +1 -0
  35. package/dist/cjs/unit-id.js.map +1 -1
  36. package/dist/esm/aggregate-id.d.ts +1 -1
  37. package/dist/esm/consumption-type-id.d.ts +1 -1
  38. package/dist/esm/index.d.ts +15 -7
  39. package/dist/esm/index.js +8 -3
  40. package/dist/esm/index.js.map +1 -1
  41. package/dist/esm/measure-id.d.ts +1 -0
  42. package/dist/esm/measure-id.js +2 -0
  43. package/dist/esm/measure-id.js.map +1 -0
  44. package/dist/esm/number-formatter.d.ts +11 -2
  45. package/dist/esm/number-formatter.js +73 -42
  46. package/dist/esm/number-formatter.js.map +1 -1
  47. package/dist/esm/{register-converter.spec.d.ts → number-formatter.spec.d.ts} +0 -0
  48. package/dist/esm/number-formatter.spec.js +96 -0
  49. package/dist/esm/number-formatter.spec.js.map +1 -0
  50. package/dist/esm/optional.d.ts +1 -0
  51. package/dist/esm/optional.js +2 -0
  52. package/dist/esm/optional.js.map +1 -0
  53. package/dist/esm/precision-number.d.ts +11 -0
  54. package/dist/esm/precision-number.js +32 -0
  55. package/dist/esm/precision-number.js.map +1 -0
  56. package/dist/esm/precision-number.spec.d.ts +1 -0
  57. package/dist/esm/precision-number.spec.js +25 -0
  58. package/dist/esm/precision-number.spec.js.map +1 -0
  59. package/dist/esm/register-convention.d.ts +14 -0
  60. package/dist/esm/register-convention.js +52 -0
  61. package/dist/esm/register-convention.js.map +1 -0
  62. package/dist/esm/register-convention.spec.d.ts +1 -0
  63. package/dist/esm/register-convention.spec.js +37 -0
  64. package/dist/esm/register-convention.spec.js.map +1 -0
  65. package/dist/esm/register-definition.d.ts +4 -0
  66. package/dist/esm/register-id.d.ts +1 -1
  67. package/dist/esm/register-library.d.ts +4 -0
  68. package/dist/esm/register-library.js +32 -23
  69. package/dist/esm/register-library.js.map +1 -1
  70. package/dist/esm/register-library.spec.js +16 -9
  71. package/dist/esm/register-library.spec.js.map +1 -1
  72. package/dist/esm/register-utils.d.ts +3 -0
  73. package/dist/esm/register-utils.js +4 -0
  74. package/dist/esm/register-utils.js.map +1 -0
  75. package/dist/esm/repository.d.ts +9 -0
  76. package/dist/esm/repository.js +22 -0
  77. package/dist/esm/repository.js.map +1 -0
  78. package/dist/esm/repository.spec.d.ts +1 -0
  79. package/dist/esm/repository.spec.js +19 -0
  80. package/dist/esm/repository.spec.js.map +1 -0
  81. package/dist/esm/step.d.ts +15 -0
  82. package/dist/esm/step.js +38 -0
  83. package/dist/esm/step.js.map +1 -0
  84. package/dist/esm/step.spec.d.ts +1 -0
  85. package/dist/esm/step.spec.js +27 -0
  86. package/dist/esm/step.spec.js.map +1 -0
  87. package/dist/esm/time-or-rule.d.ts +7 -0
  88. package/dist/esm/time-or-rule.js +16 -0
  89. package/dist/esm/time-or-rule.js.map +1 -0
  90. package/dist/esm/unit-id.d.ts +1 -1
  91. package/dist/esm/unit-id.js +1 -1
  92. package/dist/esm/unit-id.js.map +1 -1
  93. package/karma.config.js +14 -14
  94. package/locales/da/aggregates.json +8 -0
  95. package/locales/da/consumption-types.json +7 -0
  96. package/locales/da/measures.json +16 -0
  97. package/locales/da/registers.json +221 -0
  98. package/locales/da/units.json +93 -0
  99. package/locales/en/aggregates.json +8 -0
  100. package/locales/en/consumption-types.json +7 -0
  101. package/locales/en/measures.json +16 -0
  102. package/locales/en/registers.json +221 -0
  103. package/locales/en/units.json +93 -0
  104. package/package.json +12 -5
  105. package/src/aggregate-id.ts +9 -9
  106. package/src/consumption-type-id.ts +8 -8
  107. package/src/index.ts +29 -11
  108. package/src/measure-id.ts +15 -0
  109. package/src/number-formatter.spec.ts +105 -77
  110. package/src/number-formatter.ts +95 -50
  111. package/src/optional.ts +1 -0
  112. package/src/precision-number.spec.ts +28 -0
  113. package/src/precision-number.ts +36 -0
  114. package/src/register-convention.spec.ts +43 -0
  115. package/src/register-convention.ts +61 -0
  116. package/src/register-definition.ts +14 -1
  117. package/src/register-id.ts +303 -191
  118. package/src/register-library.spec.ts +41 -33
  119. package/src/register-library.ts +57 -37
  120. package/src/register-pack.ts +5 -5
  121. package/src/register-utils.ts +6 -0
  122. package/src/repository.spec.ts +20 -0
  123. package/src/repository.ts +24 -0
  124. package/src/step.spec.ts +30 -0
  125. package/src/step.ts +37 -0
  126. package/src/time-or-rule.ts +17 -0
  127. package/src/unit-id.ts +131 -100
  128. package/tsconfig.cjs.json +7 -8
  129. package/tsconfig.json +15 -14
  130. package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/base.css +0 -224
  131. package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/block-navigation.js +0 -79
  132. package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/favicon.png +0 -0
  133. package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/index.html +0 -96
  134. package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/prettify.css +0 -1
  135. package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/prettify.js +0 -2
  136. package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/sort-arrow-sprite.png +0 -0
  137. package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/sorter.js +0 -170
  138. package/dist/cjs/register-converter.js +0 -47
  139. package/dist/cjs/register-converter.js.map +0 -1
  140. package/dist/cjs/register-converter.spec.js +0 -29
  141. package/dist/cjs/register-converter.spec.js.map +0 -1
  142. package/dist/esm/register-converter.d.ts +0 -9
  143. package/dist/esm/register-converter.js +0 -44
  144. package/dist/esm/register-converter.js.map +0 -1
  145. package/dist/esm/register-converter.spec.js +0 -27
  146. package/dist/esm/register-converter.spec.js.map +0 -1
  147. package/src/register-converter.spec.ts +0 -31
  148. package/src/register-converter.ts +0 -48
@@ -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();