@wisemen/quantity 0.3.5 → 0.4.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.
package/dist/index.d.ts CHANGED
@@ -6,3 +6,4 @@ export * from './quantities/temperature/index.js';
6
6
  export * from './quantities/energy/index.js';
7
7
  export * from './quantities/power/index.js';
8
8
  export * from './quantities/speed/index.js';
9
+ export * from './quantities/voltage/index.js';
package/dist/index.js CHANGED
@@ -6,4 +6,5 @@ export * from './quantities/temperature/index.js';
6
6
  export * from './quantities/energy/index.js';
7
7
  export * from './quantities/power/index.js';
8
8
  export * from './quantities/speed/index.js';
9
+ export * from './quantities/voltage/index.js';
9
10
  //# 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,+BAA+B,CAAA;AAC7C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mCAAmC,CAAA;AACjD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,6BAA6B,CAAA;AAC3C,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,4BAA4B,CAAA;AAC1C,cAAc,mCAAmC,CAAA;AACjD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,+BAA+B,CAAA"}
@@ -1,9 +1,15 @@
1
1
  import { Quantity } from '../../quantity.js';
2
+ import { Duration } from '../duration/duration.js';
3
+ import { Speed } from '../speed/speed.js';
2
4
  import { DistanceUnit } from './distance-unit.enum.js';
3
5
  export declare class Distance extends Quantity<DistanceUnit, Distance> {
4
6
  protected baseUnit: DistanceUnit;
5
7
  protected convertValueToBaseUnit(value: number, fromUnit: DistanceUnit): number;
6
8
  protected convertBaseUnitValueTo(value: number, toUnit: DistanceUnit): number;
9
+ divide(divisor: number): Distance;
10
+ divide(value: number, unit: DistanceUnit): number;
11
+ divide(distance: Distance): number;
12
+ divide(duration: Duration): Speed;
7
13
  get meters(): number;
8
14
  get kilometers(): number;
9
15
  }
@@ -1,4 +1,7 @@
1
1
  import { Quantity } from '../../quantity.js';
2
+ import { Duration } from '../duration/duration.js';
3
+ import { Speed } from '../speed/speed.js';
4
+ import { SpeedUnit } from '../speed/speed-unit.enum.js';
2
5
  import { DistanceUnit } from './distance-unit.enum.js';
3
6
  const DISTANCE_MULTIPLIERS = {
4
7
  [DistanceUnit.METER]: 1,
@@ -23,6 +26,18 @@ export class Distance extends Quantity {
23
26
  convertBaseUnitValueTo(value, toUnit) {
24
27
  return value / DISTANCE_MULTIPLIERS[toUnit];
25
28
  }
29
+ divide(divisor, unit) {
30
+ if (divisor instanceof Duration) {
31
+ return new Speed(this.valueOf() / divisor.valueOf(), SpeedUnit.METER_PER_SECOND);
32
+ }
33
+ if (divisor instanceof Distance) {
34
+ return super.divide(divisor);
35
+ }
36
+ if (unit !== undefined) {
37
+ return super.divide(divisor, unit);
38
+ }
39
+ return super.divide(divisor);
40
+ }
26
41
  get meters() {
27
42
  return this.asNumber(DistanceUnit.METER);
28
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"distance.js","sourceRoot":"","sources":["../../../lib/quantities/distance/distance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEtD,MAAM,oBAAoB,GAAiC;IACzD,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;IAEvB,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI;IAC9B,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,IAAI;IAC/B,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,IAAI;IAC/B,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,IAAI;IAC/B,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI;IAE9B,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,GAAG;IAC7B,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,GAAG;IAC9B,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,GAAG;IAE7B,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM;IAC3B,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM;IAC3B,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM;IAC3B,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,OAAO;CAC9B,CAAA;AAED,MAAM,OAAO,QAAS,SAAQ,QAAgC;IAClD,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAA;IAE7B,sBAAsB,CAAE,KAAa,EAAE,QAAsB;QACrE,OAAO,KAAK,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAA;IAC/C,CAAC;IAES,sBAAsB,CAAE,KAAa,EAAE,MAAoB;QACnE,OAAO,KAAK,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAA;IAC7C,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;IAC9C,CAAC;CACF"}
1
+ {"version":3,"file":"distance.js","sourceRoot":"","sources":["../../../lib/quantities/distance/distance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEtD,MAAM,oBAAoB,GAAiC;IACzD,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;IAEvB,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI;IAC9B,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,IAAI;IAC/B,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,IAAI;IAC/B,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,IAAI;IAC/B,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI;IAE9B,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,GAAG;IAC7B,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,GAAG;IAC9B,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,GAAG;IAE7B,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM;IAC3B,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM;IAC3B,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM;IAC3B,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,OAAO;CAC9B,CAAA;AAED,MAAM,OAAO,QAAS,SAAQ,QAAgC;IAClD,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAA;IAE7B,sBAAsB,CAAE,KAAa,EAAE,QAAsB;QACrE,OAAO,KAAK,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAA;IAC/C,CAAC;IAES,sBAAsB,CAAE,KAAa,EAAE,MAAoB;QACnE,OAAO,KAAK,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAA;IAC7C,CAAC;IAMD,MAAM,CAAE,OAAqC,EAAE,IAAmB;QAChE,IAAI,OAAO,YAAY,QAAQ,EAAE,CAAC;YAChC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAA;QAClF,CAAC;QACD,IAAI,OAAO,YAAY,QAAQ,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC9B,CAAC;QAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QACpC,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC9B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;IAC9C,CAAC;CACF"}
@@ -2,6 +2,9 @@ import { describe, it } from 'node:test';
2
2
  import { expect } from 'expect';
3
3
  import { Distance } from '../distance.js';
4
4
  import { DistanceUnit } from '../distance-unit.enum.js';
5
+ import { Duration } from '../../duration/duration.js';
6
+ import { DurationUnit } from '../../duration/duration-unit.enum.js';
7
+ import { SpeedUnit } from '../../speed/speed-unit.enum.js';
5
8
  void describe('Distance class', () => {
6
9
  void describe('Distance calculations', () => {
7
10
  void it('adds distances', () => {
@@ -26,6 +29,12 @@ void describe('Distance class', () => {
26
29
  expect(r2).toBe(4);
27
30
  expect(r3).toBe(2);
28
31
  });
32
+ void it('returns speed when divided by Duration', () => {
33
+ const d = new Distance(220, DistanceUnit.KILOMETER);
34
+ const t = new Duration(2, DurationUnit.HOURS);
35
+ const v = d.divide(t);
36
+ expect(v.isEqualTo(110, SpeedUnit.KILOMETER_PER_HOUR)).toBe(true);
37
+ });
29
38
  });
30
39
  });
31
40
  //# sourceMappingURL=distance.unit.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"distance.unit.test.js","sourceRoot":"","sources":["../../../../lib/quantities/distance/tests/distance.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,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,KAAK,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IACnC,KAAK,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC1C,KAAK,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC7B,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC,CAAA;YAC/C,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,UAAU,CAAC,CAAA;YACpD,MAAM,CAAC,GAAa,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAE9B,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1D,CAAC,CAAC,CAAA;QAEF,KAAK,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;YAClC,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC,CAAA;YAC/C,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,UAAU,CAAC,CAAA;YACpD,MAAM,CAAC,GAAa,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YAEnC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC9D,CAAC,CAAC,CAAA;QAEF,KAAK,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAChC,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAA;YAC9C,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,UAAU,CAAC,CAAA;YAEpD,MAAM,EAAE,GAAa,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YACjC,MAAM,EAAE,GAAW,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAChC,MAAM,EAAE,GAAW,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,CAAA;YAErD,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC5D,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"}
1
+ {"version":3,"file":"distance.unit.test.js","sourceRoot":"","sources":["../../../../lib/quantities/distance/tests/distance.unit.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './voltage.js';
2
+ export * from './voltage.dto.js';
3
+ export * from './voltage.column.js';
4
+ export * from './voltage-unit.enum.js';
@@ -0,0 +1,5 @@
1
+ export * from './voltage.js';
2
+ export * from './voltage.dto.js';
3
+ export * from './voltage.column.js';
4
+ export * from './voltage-unit.enum.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/quantities/voltage/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA"}
@@ -0,0 +1,100 @@
1
+ import { describe, it } from 'node:test';
2
+ import { expect } from 'expect';
3
+ import { Voltage } from '../voltage.js';
4
+ import { VoltageUnit } from '../voltage-unit.enum.js';
5
+ void describe('Voltage class', () => {
6
+ void describe('Voltage calculations', () => {
7
+ void it('adds voltages', () => {
8
+ const v1 = new Voltage(1, VoltageUnit.VOLT);
9
+ const v2 = new Voltage(500, VoltageUnit.MILLIVOLT);
10
+ const r = v1.add(v2);
11
+ expect(r.isEqualTo(1.5, VoltageUnit.VOLT)).toBe(true);
12
+ });
13
+ void it('subtracts voltages', () => {
14
+ const v1 = new Voltage(2, VoltageUnit.VOLT);
15
+ const v2 = new Voltage(1, VoltageUnit.KILOVOLT);
16
+ const r = v1.subtract(v2);
17
+ expect(r.isEqualTo(-998, VoltageUnit.VOLT)).toBe(true);
18
+ });
19
+ void it('divides voltages', () => {
20
+ const v1 = new Voltage(10, VoltageUnit.VOLT);
21
+ const v2 = new Voltage(2, VoltageUnit.VOLT);
22
+ const r1 = v1.divide(2);
23
+ const r2 = v1.divide(v2);
24
+ const r3 = v1.divide(5, VoltageUnit.VOLT);
25
+ expect(r1.isEqualTo(5, VoltageUnit.VOLT)).toBe(true);
26
+ expect(r2).toBe(5);
27
+ expect(r3).toBe(2);
28
+ });
29
+ void it('multiplies voltages', () => {
30
+ const v1 = new Voltage(5, VoltageUnit.VOLT);
31
+ const r = v1.multiply(3);
32
+ expect(r.isEqualTo(15, VoltageUnit.VOLT)).toBe(true);
33
+ });
34
+ });
35
+ void describe('Voltage conversions', () => {
36
+ void it('converts V to mV', () => {
37
+ const v = new Voltage(1.5, VoltageUnit.VOLT);
38
+ expect(v.isEqualTo(1500, VoltageUnit.MILLIVOLT)).toBe(true);
39
+ });
40
+ void it('converts mV to V', () => {
41
+ const v = new Voltage(1500, VoltageUnit.MILLIVOLT);
42
+ expect(v.isEqualTo(1.5, VoltageUnit.VOLT)).toBe(true);
43
+ });
44
+ void it('converts V to kV', () => {
45
+ const v = new Voltage(2000, VoltageUnit.VOLT);
46
+ expect(v.isEqualTo(2, VoltageUnit.KILOVOLT)).toBe(true);
47
+ });
48
+ void it('converts kV to V', () => {
49
+ const v = new Voltage(2, VoltageUnit.KILOVOLT);
50
+ expect(v.isEqualTo(2000, VoltageUnit.VOLT)).toBe(true);
51
+ });
52
+ void it('converts mV to kV', () => {
53
+ const v = new Voltage(500000, VoltageUnit.MILLIVOLT);
54
+ expect(v.isEqualTo(0.5, VoltageUnit.KILOVOLT)).toBe(true);
55
+ });
56
+ });
57
+ void describe('Voltage comparisons', () => {
58
+ void it('compares voltages correctly', () => {
59
+ const v1 = new Voltage(1000, VoltageUnit.MILLIVOLT);
60
+ const v2 = new Voltage(1, VoltageUnit.VOLT);
61
+ const v3 = new Voltage(2, VoltageUnit.VOLT);
62
+ expect(v1.isEqualTo(v2)).toBe(true);
63
+ expect(v3.isMoreThan(v2)).toBe(true);
64
+ expect(v2.isLessThan(v3)).toBe(true);
65
+ expect(v2.isMoreThanOrEqualTo(v1)).toBe(true);
66
+ expect(v2.isLessThanOrEqualTo(v1)).toBe(true);
67
+ });
68
+ });
69
+ void describe('Voltage utilities', () => {
70
+ void it('returns min voltage using static method', () => {
71
+ const v1 = new Voltage(1, VoltageUnit.VOLT);
72
+ const v2 = new Voltage(1500, VoltageUnit.MILLIVOLT);
73
+ const r = Voltage.min(v1, v2);
74
+ expect(r.isEqualTo(1, VoltageUnit.VOLT)).toBe(true);
75
+ });
76
+ void it('returns max voltage using static method', () => {
77
+ const v1 = new Voltage(1, VoltageUnit.VOLT);
78
+ const v2 = new Voltage(1500, VoltageUnit.MILLIVOLT);
79
+ const r = Voltage.max(v1, v2);
80
+ expect(r.isEqualTo(1.5, VoltageUnit.VOLT)).toBe(true);
81
+ });
82
+ void it('rounds voltage value', () => {
83
+ const v1 = new Voltage(1.52, VoltageUnit.VOLT);
84
+ const r = v1.round();
85
+ expect(r.isEqualTo(2, VoltageUnit.VOLT)).toBe(true);
86
+ });
87
+ });
88
+ void describe('Voltage formatting', () => {
89
+ void it('converts to string', () => {
90
+ const v = new Voltage(1.5, VoltageUnit.VOLT);
91
+ expect(v.toString()).toBe('1.5V');
92
+ });
93
+ void it('converts to JSON', () => {
94
+ const v = new Voltage(1.5, VoltageUnit.VOLT);
95
+ const json = v.toJSON();
96
+ expect(json).toEqual({ value: 1.5, unit: VoltageUnit.VOLT });
97
+ });
98
+ });
99
+ });
100
+ //# sourceMappingURL=voltage.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voltage.unit.test.js","sourceRoot":"","sources":["../../../../lib/quantities/voltage/tests/voltage.unit.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { ApiPropertyOptions } from '@nestjs/swagger';
2
+ export declare enum VoltageUnit {
3
+ VOLT = "V",
4
+ MILLIVOLT = "mV",
5
+ KILOVOLT = "kV"
6
+ }
7
+ export declare function VoltageUnitApiProperty(options?: ApiPropertyOptions): PropertyDecorator;
@@ -0,0 +1,16 @@
1
+ import { ApiProperty } from '@nestjs/swagger';
2
+ export var VoltageUnit;
3
+ (function (VoltageUnit) {
4
+ VoltageUnit["VOLT"] = "V";
5
+ VoltageUnit["MILLIVOLT"] = "mV";
6
+ VoltageUnit["KILOVOLT"] = "kV";
7
+ })(VoltageUnit || (VoltageUnit = {}));
8
+ export function VoltageUnitApiProperty(options) {
9
+ return ApiProperty({
10
+ ...options,
11
+ enum: VoltageUnit,
12
+ enumName: 'VoltageUnit',
13
+ example: VoltageUnit.VOLT
14
+ });
15
+ }
16
+ //# sourceMappingURL=voltage-unit.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voltage-unit.enum.js","sourceRoot":"","sources":["../../../lib/quantities/voltage/voltage-unit.enum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAsB,MAAM,iBAAiB,CAAA;AAEjE,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,yBAAU,CAAA;IACV,+BAAgB,CAAA;IAChB,8BAAe,CAAA;AACjB,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAED,MAAM,UAAU,sBAAsB,CAAE,OAA4B;IAClE,OAAO,WAAW,CAAC;QACjB,GAAG,OAAO;QACV,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,aAAa;QACvB,OAAO,EAAE,WAAW,CAAC,IAAI;KAC1B,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ColumnOptions } from 'typeorm';
2
+ import { VoltageUnit } from './voltage-unit.enum.js';
3
+ export declare function VoltageColumn(storeAsUnit: VoltageUnit, options?: Omit<ColumnOptions, 'type' | 'transformer'>): PropertyDecorator;
@@ -0,0 +1,6 @@
1
+ import { QuantityColumn } from '../../quantity.column.js';
2
+ import { Voltage } from './voltage.js';
3
+ export function VoltageColumn(storeAsUnit, options) {
4
+ return QuantityColumn(Voltage, storeAsUnit, options);
5
+ }
6
+ //# sourceMappingURL=voltage.column.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voltage.column.js","sourceRoot":"","sources":["../../../lib/quantities/voltage/voltage.column.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAEzD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,UAAU,aAAa,CAC3B,WAAwB,EACxB,OAAqD;IAErD,OAAO,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;AACtD,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Quantity } from '../../quantity.js';
2
+ import { VoltageUnit } from './voltage-unit.enum.js';
3
+ export declare class Voltage extends Quantity<VoltageUnit, Voltage> {
4
+ protected baseUnit: VoltageUnit;
5
+ protected convertValueToBaseUnit(value: number, fromUnit: VoltageUnit): number;
6
+ protected convertBaseUnitValueTo(value: number, toUnit: VoltageUnit): number;
7
+ get volts(): number;
8
+ }
@@ -0,0 +1,21 @@
1
+ import { VoltageUnit } from './voltage-unit.enum.js';
2
+ import { Voltage } from './voltage.js';
3
+ export declare class VoltageDto {
4
+ value: number;
5
+ unit: VoltageUnit;
6
+ static from(voltage: undefined): undefined;
7
+ static from(voltage: null): null;
8
+ static from(voltage: Voltage): VoltageDto;
9
+ static from(voltage: undefined | null): undefined | null;
10
+ static from(voltage: Voltage | null): VoltageDto | null;
11
+ static from(voltage: Voltage | undefined): VoltageDto | undefined;
12
+ static from(voltage: Voltage | null | undefined): VoltageDto | null | undefined;
13
+ parse(): Voltage;
14
+ }
15
+ export declare class VoltageDtoBuilder {
16
+ private readonly dto;
17
+ constructor();
18
+ withValue(value: number): this;
19
+ withUnit(unit: VoltageUnit): this;
20
+ build(): VoltageDto;
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 { VoltageUnit, VoltageUnitApiProperty } from './voltage-unit.enum.js';
13
+ import { Voltage } from './voltage.js';
14
+ export class VoltageDto {
15
+ value;
16
+ unit;
17
+ static from(voltage) {
18
+ if (voltage === null)
19
+ return null;
20
+ if (voltage === undefined)
21
+ return undefined;
22
+ return new VoltageDtoBuilder()
23
+ .withValue(voltage.value)
24
+ .withUnit(voltage.unit)
25
+ .build();
26
+ }
27
+ parse() {
28
+ return new Voltage(this.value, this.unit);
29
+ }
30
+ }
31
+ __decorate([
32
+ ApiProperty({ type: Number }),
33
+ IsNumber(),
34
+ __metadata("design:type", Number)
35
+ ], VoltageDto.prototype, "value", void 0);
36
+ __decorate([
37
+ VoltageUnitApiProperty(),
38
+ IsEnum(VoltageUnit),
39
+ __metadata("design:type", String)
40
+ ], VoltageDto.prototype, "unit", void 0);
41
+ export class VoltageDtoBuilder {
42
+ dto;
43
+ constructor() {
44
+ this.dto = new VoltageDto();
45
+ this.dto.value = 0;
46
+ this.dto.unit = VoltageUnit.VOLT;
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=voltage.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voltage.dto.js","sourceRoot":"","sources":["../../../lib/quantities/voltage/voltage.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,WAAW,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,OAAO,UAAU;IAGrB,KAAK,CAAQ;IAIb,IAAI,CAAa;IASjB,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,WAAW,CAAC;;wCACH;AAwBnB,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,WAAW,CAAC,IAAI,CAAA;IAClC,CAAC;IAED,SAAS,CAAE,KAAa;QACtB,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;QAEtB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,QAAQ,CAAE,IAAiB;QACzB,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,20 @@
1
+ import { Quantity } from '../../quantity.js';
2
+ import { VoltageUnit } from './voltage-unit.enum.js';
3
+ const DISTANCE_MULTIPLIERS = {
4
+ [VoltageUnit.VOLT]: 1,
5
+ [VoltageUnit.MILLIVOLT]: 1e-3,
6
+ [VoltageUnit.KILOVOLT]: 1e3
7
+ };
8
+ export class Voltage extends Quantity {
9
+ baseUnit = VoltageUnit.VOLT;
10
+ convertValueToBaseUnit(value, fromUnit) {
11
+ return value * DISTANCE_MULTIPLIERS[fromUnit];
12
+ }
13
+ convertBaseUnitValueTo(value, toUnit) {
14
+ return value / DISTANCE_MULTIPLIERS[toUnit];
15
+ }
16
+ get volts() {
17
+ return this.asNumber(VoltageUnit.VOLT);
18
+ }
19
+ }
20
+ //# sourceMappingURL=voltage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voltage.js","sourceRoot":"","sources":["../../../lib/quantities/voltage/voltage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD,MAAM,oBAAoB,GAAgC;IACxD,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;IAErB,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI;IAC7B,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,GAAG;CAC5B,CAAA;AAED,MAAM,OAAO,OAAQ,SAAQ,QAA8B;IAC/C,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAA;IAE3B,sBAAsB,CAAE,KAAa,EAAE,QAAqB;QACpE,OAAO,KAAK,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAA;IAC/C,CAAC;IAES,sBAAsB,CAAE,KAAa,EAAE,MAAmB;QAClE,OAAO,KAAK,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAA;IAC7C,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wisemen/quantity",
3
- "version": "0.3.5",
3
+ "version": "0.4.0",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "type": "module",