@wisemen/quantity 0.0.8 → 0.1.0

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 (45) hide show
  1. package/dist/index.d.ts +2 -0
  2. package/dist/index.js +2 -0
  3. package/dist/index.js.map +1 -1
  4. package/dist/quantities/current/current-unit.enum.d.ts +29 -0
  5. package/dist/quantities/current/current-unit.enum.js +38 -0
  6. package/dist/quantities/current/current-unit.enum.js.map +1 -0
  7. package/dist/quantities/current/current.column.d.ts +3 -0
  8. package/dist/quantities/current/current.column.js +6 -0
  9. package/dist/quantities/current/current.column.js.map +1 -0
  10. package/dist/quantities/current/current.d.ts +8 -0
  11. package/dist/quantities/current/current.dto.d.ts +20 -0
  12. package/dist/quantities/current/current.dto.js +60 -0
  13. package/dist/quantities/current/current.dto.js.map +1 -0
  14. package/dist/quantities/current/current.js +39 -0
  15. package/dist/quantities/current/current.js.map +1 -0
  16. package/dist/quantities/current/index.d.ts +4 -0
  17. package/dist/quantities/current/index.js +5 -0
  18. package/dist/quantities/current/index.js.map +1 -0
  19. package/dist/quantities/current/tests/current.unit.test.d.ts +1 -0
  20. package/dist/quantities/current/tests/current.unit.test.js +31 -0
  21. package/dist/quantities/current/tests/current.unit.test.js.map +1 -0
  22. package/dist/quantities/speed/index.d.ts +4 -0
  23. package/dist/quantities/speed/index.js +5 -0
  24. package/dist/quantities/speed/index.js.map +1 -0
  25. package/dist/quantities/speed/speed-unit.enum.d.ts +14 -0
  26. package/dist/quantities/speed/speed-unit.enum.js +23 -0
  27. package/dist/quantities/speed/speed-unit.enum.js.map +1 -0
  28. package/dist/quantities/speed/speed.column.d.ts +3 -0
  29. package/dist/quantities/speed/speed.column.js +6 -0
  30. package/dist/quantities/speed/speed.column.js.map +1 -0
  31. package/dist/quantities/speed/speed.d.ts +7 -0
  32. package/dist/quantities/speed/speed.dto.d.ts +21 -0
  33. package/dist/quantities/speed/speed.dto.js +60 -0
  34. package/dist/quantities/speed/speed.dto.js.map +1 -0
  35. package/dist/quantities/speed/speed.js +24 -0
  36. package/dist/quantities/speed/speed.js.map +1 -0
  37. package/dist/quantities/speed/tests/speed.unit.test.d.ts +1 -0
  38. package/dist/quantities/speed/tests/speed.unit.test.js +126 -0
  39. package/dist/quantities/speed/tests/speed.unit.test.js.map +1 -0
  40. package/dist/quantities/temperature/temperature-unit.enum.d.ts +2 -1
  41. package/dist/quantities/temperature/temperature-unit.enum.js +1 -0
  42. package/dist/quantities/temperature/temperature-unit.enum.js.map +1 -1
  43. package/dist/quantities/temperature/temperature.js +4 -0
  44. package/dist/quantities/temperature/temperature.js.map +1 -1
  45. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
+ export * from './quantities/current/index.js';
1
2
  export * from './quantities/distance/index.js';
2
3
  export * from './quantities/duration/index.js';
3
4
  export * from './quantities/temperature/index.js';
4
5
  export * from './quantities/energy/index.js';
5
6
  export * from './quantities/power/index.js';
7
+ export * from './quantities/speed/index.js';
package/dist/index.js CHANGED
@@ -1,6 +1,8 @@
1
+ export * from './quantities/current/index.js';
1
2
  export * from './quantities/distance/index.js';
2
3
  export * from './quantities/duration/index.js';
3
4
  export * from './quantities/temperature/index.js';
4
5
  export * from './quantities/energy/index.js';
5
6
  export * from './quantities/power/index.js';
7
+ export * from './quantities/speed/index.js';
6
8
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAA;AAC9C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,mCAAmC,CAAA;AACjD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,6BAA6B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAA;AAC7C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,mCAAmC,CAAA;AACjD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA"}
@@ -0,0 +1,29 @@
1
+ import { ApiPropertyOptions } from '@nestjs/swagger';
2
+ export declare enum CurrentUnitEnum {
3
+ AMPERE = "A",
4
+ DECIAMPERE = "dA",
5
+ CENTIAMPERE = "cA",
6
+ MILLIAMPERE = "mA",
7
+ MICROAMPERE = "\u03BCA",
8
+ NANOAMPERE = "nA",
9
+ PICOAMPERE = "pA",
10
+ FEMTOAMPERE = "fA",
11
+ ATTOAMPERE = "aA",
12
+ ZEPTOAMPERE = "zA",
13
+ YOCTOAMPERE = "yA",
14
+ RONTOAMPERE = "rA",
15
+ QUECTOAMPERE = "qA",
16
+ DECAAMPERE = "daA",
17
+ HECTOAMPERE = "hA",
18
+ KILOAMPERE = "kA",
19
+ MEGAAMPERE = "MA",
20
+ GIGAAMPERE = "GA",
21
+ TERAAMPERE = "TA",
22
+ PETAAMPERE = "PA",
23
+ EXAAMPERE = "EA",
24
+ ZETTAAMPERE = "ZA",
25
+ YOTTAAMPERE = "YA",
26
+ RONNAAMPERE = "RA",
27
+ QUETTAAMPERE = "QA"
28
+ }
29
+ export declare function CurrentUnitApiProperty(options?: ApiPropertyOptions): PropertyDecorator;
@@ -0,0 +1,38 @@
1
+ import { ApiProperty } from '@nestjs/swagger';
2
+ export var CurrentUnitEnum;
3
+ (function (CurrentUnitEnum) {
4
+ CurrentUnitEnum["AMPERE"] = "A";
5
+ CurrentUnitEnum["DECIAMPERE"] = "dA";
6
+ CurrentUnitEnum["CENTIAMPERE"] = "cA";
7
+ CurrentUnitEnum["MILLIAMPERE"] = "mA";
8
+ CurrentUnitEnum["MICROAMPERE"] = "\u03BCA";
9
+ CurrentUnitEnum["NANOAMPERE"] = "nA";
10
+ CurrentUnitEnum["PICOAMPERE"] = "pA";
11
+ CurrentUnitEnum["FEMTOAMPERE"] = "fA";
12
+ CurrentUnitEnum["ATTOAMPERE"] = "aA";
13
+ CurrentUnitEnum["ZEPTOAMPERE"] = "zA";
14
+ CurrentUnitEnum["YOCTOAMPERE"] = "yA";
15
+ CurrentUnitEnum["RONTOAMPERE"] = "rA";
16
+ CurrentUnitEnum["QUECTOAMPERE"] = "qA";
17
+ CurrentUnitEnum["DECAAMPERE"] = "daA";
18
+ CurrentUnitEnum["HECTOAMPERE"] = "hA";
19
+ CurrentUnitEnum["KILOAMPERE"] = "kA";
20
+ CurrentUnitEnum["MEGAAMPERE"] = "MA";
21
+ CurrentUnitEnum["GIGAAMPERE"] = "GA";
22
+ CurrentUnitEnum["TERAAMPERE"] = "TA";
23
+ CurrentUnitEnum["PETAAMPERE"] = "PA";
24
+ CurrentUnitEnum["EXAAMPERE"] = "EA";
25
+ CurrentUnitEnum["ZETTAAMPERE"] = "ZA";
26
+ CurrentUnitEnum["YOTTAAMPERE"] = "YA";
27
+ CurrentUnitEnum["RONNAAMPERE"] = "RA";
28
+ CurrentUnitEnum["QUETTAAMPERE"] = "QA";
29
+ })(CurrentUnitEnum || (CurrentUnitEnum = {}));
30
+ export function CurrentUnitApiProperty(options) {
31
+ return ApiProperty({
32
+ ...options,
33
+ enum: CurrentUnitEnum,
34
+ enumName: 'CurrentUnitEnum',
35
+ example: CurrentUnitEnum.AMPERE
36
+ });
37
+ }
38
+ //# sourceMappingURL=current-unit.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"current-unit.enum.js","sourceRoot":"","sources":["../../../lib/quantities/current/current-unit.enum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAEjE,MAAM,CAAN,IAAY,eA4BX;AA5BD,WAAY,eAAe;IACzB,+BAAY,CAAA;IAEZ,oCAAiB,CAAA;IACjB,qCAAkB,CAAA;IAClB,qCAAkB,CAAA;IAClB,0CAAkB,CAAA;IAClB,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;IACjB,qCAAkB,CAAA;IAClB,oCAAiB,CAAA;IACjB,qCAAkB,CAAA;IAClB,qCAAkB,CAAA;IAClB,qCAAkB,CAAA;IAClB,sCAAmB,CAAA;IAEnB,qCAAkB,CAAA;IAClB,qCAAkB,CAAA;IAClB,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;IACjB,mCAAgB,CAAA;IAChB,qCAAkB,CAAA;IAClB,qCAAkB,CAAA;IAClB,qCAAkB,CAAA;IAClB,sCAAmB,CAAA;AACrB,CAAC,EA5BW,eAAe,KAAf,eAAe,QA4B1B;AAED,MAAM,UAAU,sBAAsB,CAAE,OAA4B;IAClE,OAAO,WAAW,CAAC;QACjB,GAAG,OAAO;QACV,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,iBAAiB;QAC3B,OAAO,EAAE,eAAe,CAAC,MAAM;KAChC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ColumnOptions } from 'typeorm';
2
+ import { CurrentUnitEnum } from './current-unit.enum.js';
3
+ export declare function CurrentColumn(storeAsUnit: CurrentUnitEnum, options: Omit<ColumnOptions, 'type' | 'transformer'>): PropertyDecorator;
@@ -0,0 +1,6 @@
1
+ import { QuantityColumn } from '../../quantity.column.js';
2
+ import { Current } from './current.js';
3
+ export function CurrentColumn(storeAsUnit, options) {
4
+ return QuantityColumn(Current, storeAsUnit, options);
5
+ }
6
+ //# sourceMappingURL=current.column.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"current.column.js","sourceRoot":"","sources":["../../../lib/quantities/current/current.column.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAEzD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,UAAU,aAAa,CAAE,WAA4B,EAAE,OAAoD;IAC/G,OAAO,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;AACtD,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Quantity } from '../../quantity.js';
2
+ import { CurrentUnitEnum } from './current-unit.enum.js';
3
+ export declare const CURRENT_MULTIPLIERS: Record<CurrentUnitEnum, number>;
4
+ export declare class Current extends Quantity<CurrentUnitEnum, Current> {
5
+ protected baseUnit: CurrentUnitEnum;
6
+ protected convertValueToBaseUnit(value: number, unit: CurrentUnitEnum): number;
7
+ protected convertBaseUnitValueTo(value: number, unit: CurrentUnitEnum): number;
8
+ }
@@ -0,0 +1,20 @@
1
+ import { CurrentUnitEnum } from './current-unit.enum.js';
2
+ import { Current } from './current.js';
3
+ export declare class CurrentDto {
4
+ value: number;
5
+ unit: CurrentUnitEnum;
6
+ static from(current: undefined): undefined;
7
+ static from(current: null): null;
8
+ static from(current: Current): CurrentDto;
9
+ static from(current: Current | null): CurrentDto | null;
10
+ static from(current: Current | undefined): CurrentDto | undefined;
11
+ static from(current: Current | null | undefined): CurrentDto | null | undefined;
12
+ parse(): Current;
13
+ }
14
+ export declare class CurrentDtoBuilder {
15
+ private readonly dto;
16
+ constructor();
17
+ withValue(value: number): this;
18
+ withUnit(unit: CurrentUnitEnum): this;
19
+ build(): CurrentDto;
20
+ }
@@ -0,0 +1,60 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { ApiProperty } from '@nestjs/swagger';
11
+ import { IsNumber, IsEnum } from 'class-validator';
12
+ import { CurrentUnitApiProperty, CurrentUnitEnum } from './current-unit.enum.js';
13
+ import { Current } from './current.js';
14
+ export class CurrentDto {
15
+ value;
16
+ unit;
17
+ static from(current) {
18
+ if (current === null)
19
+ return null;
20
+ if (current === undefined)
21
+ return undefined;
22
+ return new CurrentDtoBuilder()
23
+ .withValue(current.value)
24
+ .withUnit(current.unit)
25
+ .build();
26
+ }
27
+ parse() {
28
+ return new Current(this.value, this.unit);
29
+ }
30
+ }
31
+ __decorate([
32
+ ApiProperty({ type: Number }),
33
+ IsNumber(),
34
+ __metadata("design:type", Number)
35
+ ], CurrentDto.prototype, "value", void 0);
36
+ __decorate([
37
+ CurrentUnitApiProperty(),
38
+ IsEnum(CurrentUnitEnum),
39
+ __metadata("design:type", String)
40
+ ], CurrentDto.prototype, "unit", void 0);
41
+ export class CurrentDtoBuilder {
42
+ dto;
43
+ constructor() {
44
+ this.dto = new CurrentDto();
45
+ this.dto.value = 0;
46
+ this.dto.unit = CurrentUnitEnum.AMPERE;
47
+ }
48
+ withValue(value) {
49
+ this.dto.value = value;
50
+ return this;
51
+ }
52
+ withUnit(unit) {
53
+ this.dto.unit = unit;
54
+ return this;
55
+ }
56
+ build() {
57
+ return this.dto;
58
+ }
59
+ }
60
+ //# sourceMappingURL=current.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"current.dto.js","sourceRoot":"","sources":["../../../lib/quantities/current/current.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAChF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,OAAO,UAAU;IAGrB,KAAK,CAAQ;IAIb,IAAI,CAAiB;IASrB,MAAM,CAAC,IAAI,CAAE,OAAmC;QAC9C,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;QACjC,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,SAAS,CAAA;QAE3C,OAAO,IAAI,iBAAiB,EAAE;aAC3B,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;aACxB,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;aACtB,KAAK,EAAE,CAAA;IACZ,CAAC;IAED,KAAK;QACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3C,CAAC;CACF;AA1BC;IAFC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,EAAE;;yCACE;AAIb;IAFC,sBAAsB,EAAE;IACxB,MAAM,CAAC,eAAe,CAAC;;wCACH;AAwBvB,MAAM,OAAO,iBAAiB;IACX,GAAG,CAAY;IAEhC;QACE,IAAI,CAAC,GAAG,GAAG,IAAI,UAAU,EAAE,CAAA;QAC3B,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAA;QAClB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,eAAe,CAAC,MAAM,CAAA;IACxC,CAAC;IAED,SAAS,CAAE,KAAa;QACtB,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;QAEtB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,QAAQ,CAAE,IAAqB;QAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;QAEpB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,GAAG,CAAA;IACjB,CAAC;CACF"}
@@ -0,0 +1,39 @@
1
+ import { Quantity } from '../../quantity.js';
2
+ import { CurrentUnitEnum } from './current-unit.enum.js';
3
+ export const CURRENT_MULTIPLIERS = {
4
+ [CurrentUnitEnum.AMPERE]: 1,
5
+ [CurrentUnitEnum.DECIAMPERE]: 1e-1,
6
+ [CurrentUnitEnum.CENTIAMPERE]: 1e-2,
7
+ [CurrentUnitEnum.MILLIAMPERE]: 1e-3,
8
+ [CurrentUnitEnum.MICROAMPERE]: 1e-6,
9
+ [CurrentUnitEnum.NANOAMPERE]: 1e-9,
10
+ [CurrentUnitEnum.PICOAMPERE]: 1e-12,
11
+ [CurrentUnitEnum.FEMTOAMPERE]: 1e-15,
12
+ [CurrentUnitEnum.ATTOAMPERE]: 1e-18,
13
+ [CurrentUnitEnum.ZEPTOAMPERE]: 1e-21,
14
+ [CurrentUnitEnum.YOCTOAMPERE]: 1e-24,
15
+ [CurrentUnitEnum.RONTOAMPERE]: 1e-27,
16
+ [CurrentUnitEnum.QUECTOAMPERE]: 1e-30,
17
+ [CurrentUnitEnum.DECAAMPERE]: 1e1,
18
+ [CurrentUnitEnum.HECTOAMPERE]: 1e2,
19
+ [CurrentUnitEnum.KILOAMPERE]: 1e3,
20
+ [CurrentUnitEnum.MEGAAMPERE]: 1e6,
21
+ [CurrentUnitEnum.GIGAAMPERE]: 1e9,
22
+ [CurrentUnitEnum.TERAAMPERE]: 1e12,
23
+ [CurrentUnitEnum.PETAAMPERE]: 1e15,
24
+ [CurrentUnitEnum.EXAAMPERE]: 1e18,
25
+ [CurrentUnitEnum.ZETTAAMPERE]: 1e21,
26
+ [CurrentUnitEnum.YOTTAAMPERE]: 1e24,
27
+ [CurrentUnitEnum.RONNAAMPERE]: 1e27,
28
+ [CurrentUnitEnum.QUETTAAMPERE]: 1e30
29
+ };
30
+ export class Current extends Quantity {
31
+ baseUnit = CurrentUnitEnum.AMPERE;
32
+ convertValueToBaseUnit(value, unit) {
33
+ return value * CURRENT_MULTIPLIERS[unit];
34
+ }
35
+ convertBaseUnitValueTo(value, unit) {
36
+ return value / CURRENT_MULTIPLIERS[unit];
37
+ }
38
+ }
39
+ //# sourceMappingURL=current.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"current.js","sourceRoot":"","sources":["../../../lib/quantities/current/current.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD,MAAM,CAAC,MAAM,mBAAmB,GAAoC;IAClE,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;IAE3B,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,IAAI;IAClC,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,IAAI;IACnC,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,IAAI;IACnC,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,IAAI;IACnC,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,IAAI;IAClC,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,KAAK;IACnC,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,KAAK;IACpC,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,KAAK;IACnC,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,KAAK;IACpC,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,KAAK;IACpC,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,KAAK;IACpC,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,KAAK;IAErC,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,GAAG;IACjC,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,GAAG;IAClC,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,GAAG;IACjC,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,GAAG;IACjC,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,GAAG;IACjC,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,IAAI;IAClC,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,IAAI;IAClC,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,IAAI;IACjC,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,IAAI;IACnC,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,IAAI;IACnC,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,IAAI;IACnC,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,IAAI;CACrC,CAAA;AAED,MAAM,OAAO,OAAQ,SAAQ,QAAkC;IACnD,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAA;IAEjC,sBAAsB,CAAE,KAAa,EAAE,IAAqB;QACpE,OAAO,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAA;IAC1C,CAAC;IAES,sBAAsB,CAAE,KAAa,EAAE,IAAqB;QACpE,OAAO,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAA;IAC1C,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ export * from './current.js';
2
+ export * from './current.dto.js';
3
+ export * from './current.column.js';
4
+ export * from './current-unit.enum.js';
@@ -0,0 +1,5 @@
1
+ export * from './current.js';
2
+ export * from './current.dto.js';
3
+ export * from './current.column.js';
4
+ export * from './current-unit.enum.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/quantities/current/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA"}
@@ -0,0 +1,31 @@
1
+ import { describe, it } from 'node:test';
2
+ import { expect } from 'expect';
3
+ import { Current } from '../current.js';
4
+ import { CurrentUnitEnum } from '../current-unit.enum.js';
5
+ void describe('Current class', () => {
6
+ void describe('Current calculations', () => {
7
+ void it('adds currents', () => {
8
+ const c1 = new Current(10, CurrentUnitEnum.AMPERE);
9
+ const c2 = new Current(500, CurrentUnitEnum.MILLIAMPERE);
10
+ const r = c1.add(c2);
11
+ expect(r.isEqualTo(10.5, CurrentUnitEnum.AMPERE)).toBe(true);
12
+ });
13
+ void it('subtracts currents', () => {
14
+ const c1 = new Current(10, CurrentUnitEnum.AMPERE);
15
+ const c2 = new Current(500, CurrentUnitEnum.MILLIAMPERE);
16
+ const r = c1.subtract(c2);
17
+ expect(r.isEqualTo(9500, CurrentUnitEnum.MILLIAMPERE)).toBe(true);
18
+ });
19
+ void it('divides currents', () => {
20
+ const c1 = new Current(1, CurrentUnitEnum.AMPERE);
21
+ const c2 = new Current(250, CurrentUnitEnum.MILLIAMPERE);
22
+ const r1 = c1.divide(2);
23
+ const r2 = c1.divide(c2);
24
+ const r3 = c1.divide(0.5, CurrentUnitEnum.AMPERE);
25
+ expect(r1.isEqualTo(500, CurrentUnitEnum.MILLIAMPERE)).toBe(true);
26
+ expect(r2).toBe(4);
27
+ expect(r3).toBe(2);
28
+ });
29
+ });
30
+ });
31
+ //# sourceMappingURL=current.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"current.unit.test.js","sourceRoot":"","sources":["../../../../lib/quantities/current/tests/current.unit.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAEzD,KAAK,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAClC,KAAK,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACzC,KAAK,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;YAC5B,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;YAClD,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,WAAW,CAAC,CAAA;YACxD,MAAM,CAAC,GAAY,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAE7B,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC9D,CAAC,CAAC,CAAA;QAEF,KAAK,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;YACjC,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;YAClD,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,WAAW,CAAC,CAAA;YACxD,MAAM,CAAC,GAAY,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YAElC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACnE,CAAC,CAAC,CAAA;QAEF,KAAK,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAC/B,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;YACjD,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,WAAW,CAAC,CAAA;YAExD,MAAM,EAAE,GAAY,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YAChC,MAAM,EAAE,GAAW,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAChC,MAAM,EAAE,GAAW,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;YAEzD,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACjE,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAClB,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACpB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ export * from './speed.js';
2
+ export * from './speed.dto.js';
3
+ export * from './speed.column.js';
4
+ export * from './speed-unit.enum.js';
@@ -0,0 +1,5 @@
1
+ export * from './speed.js';
2
+ export * from './speed.dto.js';
3
+ export * from './speed.column.js';
4
+ export * from './speed-unit.enum.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/quantities/speed/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { ApiPropertyOptions } from '@nestjs/swagger';
2
+ export declare enum SpeedUnit {
3
+ METER_PER_SECOND = "m/s",
4
+ KILOMETER_PER_HOUR = "km/h",
5
+ MILES_PER_HOUR = "mph",
6
+ KNOT = "kn",
7
+ FOOT_PER_SECOND = "ft/s",
8
+ INCH_PER_SECOND = "in/s",
9
+ YARD_PER_SECOND = "yd/s",
10
+ CENTIMETER_PER_SECOND = "cm/s",
11
+ MILLIMETER_PER_SECOND = "mm/s",
12
+ MICROMETER_PER_SECOND = "\u03BCm/s"
13
+ }
14
+ export declare function SpeedUnitApiProperty(options?: ApiPropertyOptions): PropertyDecorator;
@@ -0,0 +1,23 @@
1
+ import { ApiProperty } from '@nestjs/swagger';
2
+ export var SpeedUnit;
3
+ (function (SpeedUnit) {
4
+ SpeedUnit["METER_PER_SECOND"] = "m/s";
5
+ SpeedUnit["KILOMETER_PER_HOUR"] = "km/h";
6
+ SpeedUnit["MILES_PER_HOUR"] = "mph";
7
+ SpeedUnit["KNOT"] = "kn";
8
+ SpeedUnit["FOOT_PER_SECOND"] = "ft/s";
9
+ SpeedUnit["INCH_PER_SECOND"] = "in/s";
10
+ SpeedUnit["YARD_PER_SECOND"] = "yd/s";
11
+ SpeedUnit["CENTIMETER_PER_SECOND"] = "cm/s";
12
+ SpeedUnit["MILLIMETER_PER_SECOND"] = "mm/s";
13
+ SpeedUnit["MICROMETER_PER_SECOND"] = "\u03BCm/s";
14
+ })(SpeedUnit || (SpeedUnit = {}));
15
+ export function SpeedUnitApiProperty(options) {
16
+ return ApiProperty({
17
+ ...options,
18
+ enum: SpeedUnit,
19
+ enumName: 'SpeedUnit',
20
+ example: SpeedUnit.METER_PER_SECOND
21
+ });
22
+ }
23
+ //# sourceMappingURL=speed-unit.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speed-unit.enum.js","sourceRoot":"","sources":["../../../lib/quantities/speed/speed-unit.enum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAsB,MAAM,iBAAiB,CAAA;AAEjE,MAAM,CAAN,IAAY,SAYX;AAZD,WAAY,SAAS;IACnB,qCAAwB,CAAA;IAExB,wCAA2B,CAAA;IAC3B,mCAAsB,CAAA;IACtB,wBAAW,CAAA;IACX,qCAAwB,CAAA;IACxB,qCAAwB,CAAA;IACxB,qCAAwB,CAAA;IACxB,2CAA8B,CAAA;IAC9B,2CAA8B,CAAA;IAC9B,gDAA8B,CAAA;AAChC,CAAC,EAZW,SAAS,KAAT,SAAS,QAYpB;AAED,MAAM,UAAU,oBAAoB,CAAE,OAA4B;IAChE,OAAO,WAAW,CAAC;QACjB,GAAG,OAAO;QACV,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,WAAW;QACrB,OAAO,EAAE,SAAS,CAAC,gBAAgB;KACpC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ColumnOptions } from 'typeorm';
2
+ import { SpeedUnit } from './speed-unit.enum.js';
3
+ export declare function SpeedColumn(storeAsUnit: SpeedUnit, options: Omit<ColumnOptions, 'type' | 'transformer'>): PropertyDecorator;
@@ -0,0 +1,6 @@
1
+ import { QuantityColumn } from '../../quantity.column.js';
2
+ import { Speed } from './speed.js';
3
+ export function SpeedColumn(storeAsUnit, options) {
4
+ return QuantityColumn(Speed, storeAsUnit, options);
5
+ }
6
+ //# sourceMappingURL=speed.column.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speed.column.js","sourceRoot":"","sources":["../../../lib/quantities/speed/speed.column.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAEzD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,MAAM,UAAU,WAAW,CAAE,WAAsB,EAAE,OAAoD;IACvG,OAAO,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;AACpD,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { Quantity } from '../../quantity.js';
2
+ import { SpeedUnit } from './speed-unit.enum.js';
3
+ export declare class Speed extends Quantity<SpeedUnit, Speed> {
4
+ protected baseUnit: SpeedUnit;
5
+ protected convertValueToBaseUnit(value: number, fromUnit: SpeedUnit): number;
6
+ protected convertBaseUnitValueTo(value: number, toUnit: SpeedUnit): number;
7
+ }
@@ -0,0 +1,21 @@
1
+ import { Speed } from './speed.js';
2
+ import { SpeedUnit } from './speed-unit.enum.js';
3
+ export declare class SpeedDto {
4
+ value: number;
5
+ unit: SpeedUnit;
6
+ static from(speed: undefined): undefined;
7
+ static from(speed: null): null;
8
+ static from(speed: Speed): SpeedDto;
9
+ static from(speed: undefined | null): undefined | null;
10
+ static from(speed: Speed | null): SpeedDto | null;
11
+ static from(speed: Speed | undefined): SpeedDto | undefined;
12
+ static from(speed: Speed | null | undefined): SpeedDto | null | undefined;
13
+ parse(): Speed;
14
+ }
15
+ export declare class SpeedDtoBuilder {
16
+ private readonly dto;
17
+ constructor();
18
+ withValue(value: number): this;
19
+ withUnit(unit: SpeedUnit): this;
20
+ build(): SpeedDto;
21
+ }
@@ -0,0 +1,60 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { ApiProperty } from '@nestjs/swagger';
11
+ import { IsEnum, IsNumber } from 'class-validator';
12
+ import { Speed } from './speed.js';
13
+ import { SpeedUnit, SpeedUnitApiProperty } from './speed-unit.enum.js';
14
+ export class SpeedDto {
15
+ value;
16
+ unit;
17
+ static from(speed) {
18
+ if (speed === null)
19
+ return null;
20
+ if (speed === undefined)
21
+ return undefined;
22
+ return new SpeedDtoBuilder()
23
+ .withValue(speed.value)
24
+ .withUnit(speed.unit)
25
+ .build();
26
+ }
27
+ parse() {
28
+ return new Speed(this.value, this.unit);
29
+ }
30
+ }
31
+ __decorate([
32
+ ApiProperty({ type: Number }),
33
+ IsNumber(),
34
+ __metadata("design:type", Number)
35
+ ], SpeedDto.prototype, "value", void 0);
36
+ __decorate([
37
+ SpeedUnitApiProperty(),
38
+ IsEnum(SpeedUnit),
39
+ __metadata("design:type", String)
40
+ ], SpeedDto.prototype, "unit", void 0);
41
+ export class SpeedDtoBuilder {
42
+ dto;
43
+ constructor() {
44
+ this.dto = new SpeedDto();
45
+ this.dto.value = 0;
46
+ this.dto.unit = SpeedUnit.METER_PER_SECOND;
47
+ }
48
+ withValue(value) {
49
+ this.dto.value = value;
50
+ return this;
51
+ }
52
+ withUnit(unit) {
53
+ this.dto.unit = unit;
54
+ return this;
55
+ }
56
+ build() {
57
+ return this.dto;
58
+ }
59
+ }
60
+ //# sourceMappingURL=speed.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speed.dto.js","sourceRoot":"","sources":["../../../lib/quantities/speed/speed.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAEtE,MAAM,OAAO,QAAQ;IAGnB,KAAK,CAAQ;IAIb,IAAI,CAAW;IASf,MAAM,CAAC,IAAI,CAAE,KAA+B;QAC1C,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;QAC/B,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,SAAS,CAAA;QAEzC,OAAO,IAAI,eAAe,EAAE;aACzB,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;aACtB,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;aACpB,KAAK,EAAE,CAAA;IACZ,CAAC;IAED,KAAK;QACH,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;IACzC,CAAC;CACF;AA1BC;IAFC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,EAAE;;uCACE;AAIb;IAFC,oBAAoB,EAAE;IACtB,MAAM,CAAC,SAAS,CAAC;;sCACH;AAwBjB,MAAM,OAAO,eAAe;IACT,GAAG,CAAU;IAE9B;QACE,IAAI,CAAC,GAAG,GAAG,IAAI,QAAQ,EAAE,CAAA;QACzB,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAA;QAClB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,gBAAgB,CAAA;IAC5C,CAAC;IAED,SAAS,CAAE,KAAa;QACtB,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;QAEtB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,QAAQ,CAAE,IAAe;QACvB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;QAEpB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,GAAG,CAAA;IACjB,CAAC;CACF"}
@@ -0,0 +1,24 @@
1
+ import { Quantity } from '../../quantity.js';
2
+ import { SpeedUnit } from './speed-unit.enum.js';
3
+ const SPEED_MULTIPLIERS = {
4
+ [SpeedUnit.METER_PER_SECOND]: 1,
5
+ [SpeedUnit.KILOMETER_PER_HOUR]: 1 / 3.6,
6
+ [SpeedUnit.MILES_PER_HOUR]: 0.44704,
7
+ [SpeedUnit.KNOT]: 0.514444,
8
+ [SpeedUnit.FOOT_PER_SECOND]: 0.3048,
9
+ [SpeedUnit.INCH_PER_SECOND]: 0.0254,
10
+ [SpeedUnit.YARD_PER_SECOND]: 0.9144,
11
+ [SpeedUnit.CENTIMETER_PER_SECOND]: 0.01,
12
+ [SpeedUnit.MILLIMETER_PER_SECOND]: 0.001,
13
+ [SpeedUnit.MICROMETER_PER_SECOND]: 1e-6
14
+ };
15
+ export class Speed extends Quantity {
16
+ baseUnit = SpeedUnit.METER_PER_SECOND;
17
+ convertValueToBaseUnit(value, fromUnit) {
18
+ return value * SPEED_MULTIPLIERS[fromUnit];
19
+ }
20
+ convertBaseUnitValueTo(value, toUnit) {
21
+ return value / SPEED_MULTIPLIERS[toUnit];
22
+ }
23
+ }
24
+ //# sourceMappingURL=speed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speed.js","sourceRoot":"","sources":["../../../lib/quantities/speed/speed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAEhD,MAAM,iBAAiB,GAA8B;IACnD,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,CAAC;IAE/B,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,CAAC,GAAG,GAAG;IACvC,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,OAAO;IACnC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ;IAC1B,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,MAAM;IACnC,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,MAAM;IACnC,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,MAAM;IACnC,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE,IAAI;IACvC,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE,KAAK;IACxC,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE,IAAI;CACxC,CAAA;AAED,MAAM,OAAO,KAAM,SAAQ,QAA0B;IACzC,QAAQ,GAAG,SAAS,CAAC,gBAAgB,CAAA;IAErC,sBAAsB,CAAE,KAAa,EAAE,QAAmB;QAClE,OAAO,KAAK,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IAC5C,CAAC;IAES,sBAAsB,CAAE,KAAa,EAAE,MAAiB;QAChE,OAAO,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAC1C,CAAC;CACF"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,126 @@
1
+ import { describe, it } from 'node:test';
2
+ import { expect } from 'expect';
3
+ import { Speed } from '../speed.js';
4
+ import { SpeedUnit } from '../speed-unit.enum.js';
5
+ void describe('Speed class', () => {
6
+ void describe('Speed calculations', () => {
7
+ void it('adds speeds', () => {
8
+ const s1 = new Speed(10, SpeedUnit.METER_PER_SECOND);
9
+ const s2 = new Speed(3.6, SpeedUnit.KILOMETER_PER_HOUR);
10
+ const r = s1.add(s2);
11
+ expect(r.isEqualTo(11, SpeedUnit.METER_PER_SECOND)).toBe(true);
12
+ });
13
+ void it('subtracts speeds', () => {
14
+ const s1 = new Speed(10, SpeedUnit.METER_PER_SECOND);
15
+ const s2 = new Speed(3.6, SpeedUnit.KILOMETER_PER_HOUR);
16
+ const r = s1.subtract(s2);
17
+ expect(r.isEqualTo(9, SpeedUnit.METER_PER_SECOND)).toBe(true);
18
+ });
19
+ void it('divides speeds', () => {
20
+ const s1 = new Speed(10, SpeedUnit.METER_PER_SECOND);
21
+ const s2 = new Speed(5, SpeedUnit.METER_PER_SECOND);
22
+ const r1 = s1.divide(2);
23
+ const r2 = s1.divide(s2);
24
+ const r3 = s1.divide(5, SpeedUnit.METER_PER_SECOND);
25
+ expect(r1.isEqualTo(5, SpeedUnit.METER_PER_SECOND)).toBe(true);
26
+ expect(r2).toBe(2);
27
+ expect(r3).toBe(2);
28
+ });
29
+ void it('multiplies speeds', () => {
30
+ const s1 = new Speed(5, SpeedUnit.METER_PER_SECOND);
31
+ const r = s1.multiply(2);
32
+ expect(r.isEqualTo(10, SpeedUnit.METER_PER_SECOND)).toBe(true);
33
+ });
34
+ });
35
+ void describe('Speed conversions', () => {
36
+ void it('converts m/s to km/h', () => {
37
+ const speed = new Speed(10, SpeedUnit.METER_PER_SECOND);
38
+ expect(speed.isEqualTo(36, SpeedUnit.KILOMETER_PER_HOUR)).toBe(true);
39
+ });
40
+ void it('converts km/h to m/s', () => {
41
+ const speed = new Speed(36, SpeedUnit.KILOMETER_PER_HOUR);
42
+ expect(speed.isEqualTo(10, SpeedUnit.METER_PER_SECOND)).toBe(true);
43
+ });
44
+ void it('converts m/s to mph', () => {
45
+ const speed = new Speed(10, SpeedUnit.METER_PER_SECOND);
46
+ expect(speed.to(SpeedUnit.MILES_PER_HOUR).value).toBeCloseTo(22.369, 2);
47
+ });
48
+ void it('converts m/s to knots', () => {
49
+ const speed = new Speed(10, SpeedUnit.METER_PER_SECOND);
50
+ expect(speed.to(SpeedUnit.KNOT).value).toBeCloseTo(19.438, 2);
51
+ });
52
+ void it('converts m/s to ft/s', () => {
53
+ const speed = new Speed(10, SpeedUnit.METER_PER_SECOND);
54
+ expect(speed.to(SpeedUnit.FOOT_PER_SECOND).value).toBeCloseTo(32.808, 2);
55
+ });
56
+ void it('converts m/s to cm/s', () => {
57
+ const speed = new Speed(10, SpeedUnit.METER_PER_SECOND);
58
+ expect(speed.isEqualTo(1000, SpeedUnit.CENTIMETER_PER_SECOND)).toBe(true);
59
+ });
60
+ void it('converts m/s to mm/s', () => {
61
+ const speed = new Speed(10, SpeedUnit.METER_PER_SECOND);
62
+ expect(speed.isEqualTo(10000, SpeedUnit.MILLIMETER_PER_SECOND)).toBe(true);
63
+ });
64
+ void it('converts m/s to μm/s', () => {
65
+ const speed = new Speed(1, SpeedUnit.METER_PER_SECOND);
66
+ expect(speed.isEqualTo(1000000, SpeedUnit.MICROMETER_PER_SECOND)).toBe(true);
67
+ });
68
+ });
69
+ void describe('Speed comparisons', () => {
70
+ void it('compares speeds correctly', () => {
71
+ const s1 = new Speed(10, SpeedUnit.METER_PER_SECOND);
72
+ const s2 = new Speed(36, SpeedUnit.KILOMETER_PER_HOUR);
73
+ const s3 = new Speed(5, SpeedUnit.METER_PER_SECOND);
74
+ expect(s1.isEqualTo(s2)).toBe(true);
75
+ expect(s1.isMoreThan(s3)).toBe(true);
76
+ expect(s3.isLessThan(s1)).toBe(true);
77
+ expect(s1.isMoreThanOrEqualTo(s2)).toBe(true);
78
+ expect(s1.isLessThanOrEqualTo(s2)).toBe(true);
79
+ });
80
+ });
81
+ void describe('Speed utilities', () => {
82
+ void it('returns minimum speed using static method', () => {
83
+ const s1 = new Speed(10, SpeedUnit.METER_PER_SECOND);
84
+ const s2 = new Speed(5, SpeedUnit.METER_PER_SECOND);
85
+ const r = Speed.min(s1, s2);
86
+ expect(r.isEqualTo(5, SpeedUnit.METER_PER_SECOND)).toBe(true);
87
+ });
88
+ void it('returns maximum speed using static method', () => {
89
+ const s1 = new Speed(10, SpeedUnit.METER_PER_SECOND);
90
+ const s2 = new Speed(5, SpeedUnit.METER_PER_SECOND);
91
+ const r = Speed.max(s1, s2);
92
+ expect(r.isEqualTo(10, SpeedUnit.METER_PER_SECOND)).toBe(true);
93
+ });
94
+ void it('rounds speed value', () => {
95
+ const s1 = new Speed(10.7, SpeedUnit.METER_PER_SECOND);
96
+ const r = s1.round();
97
+ expect(r.isEqualTo(11, SpeedUnit.METER_PER_SECOND)).toBe(true);
98
+ });
99
+ void it('ceils speed value', () => {
100
+ const s1 = new Speed(10.2, SpeedUnit.METER_PER_SECOND);
101
+ const r = s1.ceil();
102
+ expect(r.isEqualTo(11, SpeedUnit.METER_PER_SECOND)).toBe(true);
103
+ });
104
+ void it('checks if value is rounded', () => {
105
+ const s1 = new Speed(10, SpeedUnit.METER_PER_SECOND);
106
+ const s2 = new Speed(10.5, SpeedUnit.METER_PER_SECOND);
107
+ expect(s1.isRounded()).toBe(true);
108
+ expect(s2.isRounded()).toBe(false);
109
+ });
110
+ });
111
+ void describe('Speed formatting', () => {
112
+ void it('converts to string', () => {
113
+ const speed = new Speed(10, SpeedUnit.METER_PER_SECOND);
114
+ expect(speed.toString()).toBe('10m/s');
115
+ });
116
+ void it('converts to JSON', () => {
117
+ const speed = new Speed(10, SpeedUnit.METER_PER_SECOND);
118
+ const json = speed.toJSON();
119
+ expect(json).toEqual({
120
+ value: 10,
121
+ unit: SpeedUnit.METER_PER_SECOND
122
+ });
123
+ });
124
+ });
125
+ });
126
+ //# sourceMappingURL=speed.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speed.unit.test.js","sourceRoot":"","sources":["../../../../lib/quantities/speed/tests/speed.unit.test.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { ApiPropertyOptions } from '@nestjs/swagger';
2
2
  export declare enum TemperatureUnit {
3
3
  KELVIN = "K",
4
4
  CELSIUS = "C",
5
- FAHRENHEIT = "F"
5
+ FAHRENHEIT = "F",
6
+ MILLI_DEGREE_CELSIUS = "mC"
6
7
  }
7
8
  export declare function TemperatureUnitApiProperty(options?: ApiPropertyOptions): PropertyDecorator;
@@ -4,6 +4,7 @@ export var TemperatureUnit;
4
4
  TemperatureUnit["KELVIN"] = "K";
5
5
  TemperatureUnit["CELSIUS"] = "C";
6
6
  TemperatureUnit["FAHRENHEIT"] = "F";
7
+ TemperatureUnit["MILLI_DEGREE_CELSIUS"] = "mC";
7
8
  })(TemperatureUnit || (TemperatureUnit = {}));
8
9
  export function TemperatureUnitApiProperty(options) {
9
10
  return ApiProperty({
@@ -1 +1 @@
1
- {"version":3,"file":"temperature-unit.enum.js","sourceRoot":"","sources":["../../../lib/quantities/temperature/temperature-unit.enum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAsB,MAAM,iBAAiB,CAAA;AAEjE,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,+BAAY,CAAA;IACZ,gCAAa,CAAA;IACb,mCAAgB,CAAA;AAClB,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B;AAED,MAAM,UAAU,0BAA0B,CAAE,OAA4B;IACtE,OAAO,WAAW,CAAC;QACjB,GAAG,OAAO;QACV,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,iBAAiB;QAC3B,OAAO,EAAE,eAAe,CAAC,OAAO;KACjC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"temperature-unit.enum.js","sourceRoot":"","sources":["../../../lib/quantities/temperature/temperature-unit.enum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAsB,MAAM,iBAAiB,CAAA;AAEjE,MAAM,CAAN,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,+BAAY,CAAA;IACZ,gCAAa,CAAA;IACb,mCAAgB,CAAA;IAChB,8CAA2B,CAAA;AAC7B,CAAC,EALW,eAAe,KAAf,eAAe,QAK1B;AAED,MAAM,UAAU,0BAA0B,CAAE,OAA4B;IACtE,OAAO,WAAW,CAAC;QACjB,GAAG,OAAO;QACV,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,iBAAiB;QAC3B,OAAO,EAAE,eAAe,CAAC,OAAO;KACjC,CAAC,CAAA;AACJ,CAAC"}
@@ -10,6 +10,8 @@ export class Temperature extends Quantity {
10
10
  return value + 273.15;
11
11
  case TemperatureUnit.FAHRENHEIT:
12
12
  return ((value - 32) * 5) / 9 + 273.15;
13
+ case TemperatureUnit.MILLI_DEGREE_CELSIUS:
14
+ return (value / 1000) + 273.15;
13
15
  }
14
16
  }
15
17
  convertBaseUnitValueTo(value, unit) {
@@ -20,6 +22,8 @@ export class Temperature extends Quantity {
20
22
  return value - 273.15;
21
23
  case TemperatureUnit.FAHRENHEIT:
22
24
  return ((value - 273.15) * 9) / 5 + 32;
25
+ case TemperatureUnit.MILLI_DEGREE_CELSIUS:
26
+ return (value - 273.15) * 1000;
23
27
  }
24
28
  }
25
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"temperature.js","sourceRoot":"","sources":["../../../lib/quantities/temperature/temperature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAE5D,MAAM,OAAO,WAAY,SAAQ,QAAsC;IAC3D,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAA;IAEjC,sBAAsB,CAAE,KAAa,EAAE,IAAqB;QACpE,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,eAAe,CAAC,MAAM;gBACzB,OAAO,KAAK,CAAA;YACd,KAAK,eAAe,CAAC,OAAO;gBAC1B,OAAO,KAAK,GAAG,MAAM,CAAA;YACvB,KAAK,eAAe,CAAC,UAAU;gBAC7B,OAAO,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAA;QAC1C,CAAC;IACH,CAAC;IAES,sBAAsB,CAAE,KAAa,EAAE,IAAqB;QACpE,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,eAAe,CAAC,MAAM;gBACzB,OAAO,KAAK,CAAA;YACd,KAAK,eAAe,CAAC,OAAO;gBAC1B,OAAO,KAAK,GAAG,MAAM,CAAA;YACvB,KAAK,eAAe,CAAC,UAAU;gBAC7B,OAAO,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;QAC1C,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"temperature.js","sourceRoot":"","sources":["../../../lib/quantities/temperature/temperature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAE5D,MAAM,OAAO,WAAY,SAAQ,QAAsC;IAC3D,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAA;IAEjC,sBAAsB,CAAE,KAAa,EAAE,IAAqB;QACpE,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,eAAe,CAAC,MAAM;gBACzB,OAAO,KAAK,CAAA;YACd,KAAK,eAAe,CAAC,OAAO;gBAC1B,OAAO,KAAK,GAAG,MAAM,CAAA;YACvB,KAAK,eAAe,CAAC,UAAU;gBAC7B,OAAO,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAA;YACxC,KAAK,eAAe,CAAC,oBAAoB;gBACvC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,MAAM,CAAA;QAClC,CAAC;IACH,CAAC;IAES,sBAAsB,CAAE,KAAa,EAAE,IAAqB;QACpE,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,eAAe,CAAC,MAAM;gBACzB,OAAO,KAAK,CAAA;YACd,KAAK,eAAe,CAAC,OAAO;gBAC1B,OAAO,KAAK,GAAG,MAAM,CAAA;YACvB,KAAK,eAAe,CAAC,UAAU;gBAC7B,OAAO,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;YACxC,KAAK,eAAe,CAAC,oBAAoB;gBACvC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,IAAI,CAAA;QAClC,CAAC;IACH,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wisemen/quantity",
3
- "version": "0.0.8",
3
+ "version": "0.1.0",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "type": "module",