@fintekkers/ledger-models 0.1.73 → 0.1.75
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/node/wrappers/models/position/position.js +6 -14
- package/node/wrappers/models/position/position.js.map +1 -1
- package/node/wrappers/models/position/position.test.js +32 -4
- package/node/wrappers/models/position/position.test.js.map +1 -1
- package/node/wrappers/models/position/position.test.ts +33 -5
- package/node/wrappers/models/position/position.ts +10 -27
- package/node/wrappers/models/utils/datetime.js +0 -19
- package/node/wrappers/models/utils/datetime.js.map +1 -1
- package/node/wrappers/models/utils/datetime.test.js +48 -0
- package/node/wrappers/models/utils/datetime.test.js.map +1 -0
- package/node/wrappers/models/utils/datetime.test.ts +8 -0
- package/node/wrappers/models/utils/datetime.ts +0 -24
- package/node/wrappers/models/utils/protoEnum.js +5 -1
- package/node/wrappers/models/utils/protoEnum.js.map +1 -1
- package/node/wrappers/models/utils/protoEnum.test.js +4 -0
- package/node/wrappers/models/utils/protoEnum.test.js.map +1 -1
- package/node/wrappers/models/utils/protoEnum.test.ts +5 -0
- package/node/wrappers/models/utils/protoEnum.ts +7 -2
- package/node/wrappers/models/utils/serialization.js.map +1 -1
- package/node/wrappers/models/utils/serialization.ts +2 -7
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Note: Some classes and functions have been omitted or simplified due to lack of context.
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
3
|
exports.Position = void 0;
|
|
4
|
+
//Models
|
|
5
5
|
var field_pb_1 = require("../../../fintekkers/models/position/field_pb");
|
|
6
6
|
var position_util_pb_1 = require("../../../fintekkers/models/position/position_util_pb");
|
|
7
7
|
var portfolio_1 = require("../portfolio/portfolio");
|
|
@@ -13,6 +13,8 @@ var identifier_pb_1 = require("../../../fintekkers/models/security/identifier/id
|
|
|
13
13
|
var measure_pb_1 = require("../../../fintekkers/models/position/measure_pb");
|
|
14
14
|
var serialization_1 = require("../utils/serialization");
|
|
15
15
|
var wrappers_pb_1 = require("google-protobuf/google/protobuf/wrappers_pb");
|
|
16
|
+
var protoEnum_1 = require("../utils/protoEnum");
|
|
17
|
+
var field_1 = require("./field");
|
|
16
18
|
var Position = /** @class */ (function () {
|
|
17
19
|
function Position(positionProto) {
|
|
18
20
|
this.proto = positionProto;
|
|
@@ -28,9 +30,9 @@ var Position = /** @class */ (function () {
|
|
|
28
30
|
return tmpField.getStringValue();
|
|
29
31
|
}
|
|
30
32
|
if (tmpField.getEnumValue() > 0) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
return
|
|
33
|
+
var fieldName = new field_1.Field(fieldToGet.getField()).getName();
|
|
34
|
+
var proto = protoEnum_1.ProtoEnum.fromEnumName(fieldName, tmpField.getEnumValue());
|
|
35
|
+
return proto;
|
|
34
36
|
}
|
|
35
37
|
var unpackedValue = Position.unpackField(tmpField);
|
|
36
38
|
if (field_pb_1.FieldProto.SECURITY == fieldToGet.getField()) {
|
|
@@ -81,16 +83,6 @@ var Position = /** @class */ (function () {
|
|
|
81
83
|
}
|
|
82
84
|
return output;
|
|
83
85
|
};
|
|
84
|
-
// private static wrapStringToAny(myString: string): Any {
|
|
85
|
-
// const myAny = new Any();
|
|
86
|
-
// myAny.pack(wrappers.StringValue.create({ value: myString }));
|
|
87
|
-
// return myAny;
|
|
88
|
-
// }
|
|
89
|
-
// private static packField(fieldToPack: any): Any {
|
|
90
|
-
// const myAny = new Any();
|
|
91
|
-
// myAny.pack(fieldToPack);
|
|
92
|
-
// return myAny;
|
|
93
|
-
// }
|
|
94
86
|
Position.unpackField = function (fieldToUnpack) {
|
|
95
87
|
switch (fieldToUnpack.getField()) {
|
|
96
88
|
case field_pb_1.FieldProto.PORTFOLIO_ID:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"position.js","sourceRoot":"","sources":["position.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"position.js","sourceRoot":"","sources":["position.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,19 +52,47 @@ test('test the position wrapper', function () { return __awaiter(void 0, void 0,
|
|
|
52
52
|
var isTrue;
|
|
53
53
|
return __generator(this, function (_a) {
|
|
54
54
|
switch (_a.label) {
|
|
55
|
-
case 0: return [4 /*yield*/,
|
|
55
|
+
case 0: return [4 /*yield*/, testEnumSerialization()];
|
|
56
56
|
case 1:
|
|
57
|
+
isTrue = _a.sent();
|
|
58
|
+
expect(isTrue).toBe(true);
|
|
59
|
+
return [4 /*yield*/, testSerialization()];
|
|
60
|
+
case 2:
|
|
57
61
|
isTrue = _a.sent();
|
|
58
62
|
expect(isTrue).toBe(true);
|
|
59
63
|
return [2 /*return*/];
|
|
60
64
|
}
|
|
61
65
|
});
|
|
62
66
|
}); });
|
|
67
|
+
function testEnumSerialization() {
|
|
68
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
69
|
+
var positionProto, measureValue, position, status;
|
|
70
|
+
return __generator(this, function (_a) {
|
|
71
|
+
positionProto = new position_pb_1.PositionProto();
|
|
72
|
+
positionProto.setFieldsList([
|
|
73
|
+
new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.POSITION_STATUS).setEnumValue(position_status_pb_1.PositionStatusProto.EXECUTED)
|
|
74
|
+
]);
|
|
75
|
+
measureValue = new decimal_value_pb_1.DecimalValueProto().setArbitraryPrecisionValue("1.55");
|
|
76
|
+
positionProto.setMeasuresList([
|
|
77
|
+
new position_util_pb_1.MeasureMapEntry().setMeasure(measure_pb_1.MeasureProto.DIRECTED_QUANTITY).setMeasureDecimalValue(measureValue)
|
|
78
|
+
]);
|
|
79
|
+
position = new position_1.Position(positionProto);
|
|
80
|
+
status = position.getFieldValue(field_pb_1.FieldProto.POSITION_STATUS);
|
|
81
|
+
expect(status.getEnumValueName()).toBe("EXECUTED");
|
|
82
|
+
expect(status.getEnumValue()).toBe(position_status_pb_1.PositionStatusProto.EXECUTED);
|
|
83
|
+
expect(status.getEnumDescriptor()).toBe(position_status_pb_1.PositionStatusProto);
|
|
84
|
+
position.getMeasures().forEach(function (measureMapEntry) {
|
|
85
|
+
measureMapEntry.getMeasure().toString();
|
|
86
|
+
});
|
|
87
|
+
expect(position.getMeasureValue(measure_pb_1.MeasureProto.DIRECTED_QUANTITY)).toBe(1.55);
|
|
88
|
+
return [2 /*return*/, true];
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
}
|
|
63
92
|
function testSerialization() {
|
|
64
93
|
return __awaiter(this, void 0, void 0, function () {
|
|
65
|
-
var
|
|
94
|
+
var security, portfolio, tradeDate, productType, id, measure, measureValue, tradeDatePacked, idPacked, positionProto, position, tradeDatePosition, securityPosition, portfolioPosition, positionID;
|
|
66
95
|
return __generator(this, function (_a) {
|
|
67
|
-
fields = [field_pb_1.FieldProto.ID, field_pb_1.FieldProto.TRADE_DATE, field_pb_1.FieldProto.PRODUCT_TYPE, field_pb_1.FieldProto.PORTFOLIO, field_pb_1.FieldProto.SECURITY];
|
|
68
96
|
security = new security_pb_1.SecurityProto().setAssetClass("Test");
|
|
69
97
|
portfolio = new portfolio_pb_1.PortfolioProto().setPortfolioName("Test portfolio");
|
|
70
98
|
tradeDate = date_1.LocalDate.today().toDate();
|
|
@@ -99,7 +127,7 @@ function testSerialization() {
|
|
|
99
127
|
expect(position.getFieldValue(field_pb_1.FieldProto.PRODUCT_TYPE)).toBe(productType);
|
|
100
128
|
positionID = position.getFieldValue(field_pb_1.FieldProto.ID);
|
|
101
129
|
expect(positionID.toString()).toBe(id.toString());
|
|
102
|
-
expect(position.getFieldValue(field_pb_1.FieldProto.POSITION_STATUS)).toBe(
|
|
130
|
+
expect(position.getFieldValue(field_pb_1.FieldProto.POSITION_STATUS).toString()).toBe("EXECUTED");
|
|
103
131
|
return [2 /*return*/, true];
|
|
104
132
|
});
|
|
105
133
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"position.test.js","sourceRoot":"","sources":["position.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAqC;AACrC,iEAA6D;AAI7D,qFAAqF;AACrF,+EAAgF;AAChF,
|
|
1
|
+
{"version":3,"file":"position.test.js","sourceRoot":"","sources":["position.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAqC;AACrC,iEAA6D;AAI7D,qFAAqF;AACrF,+EAAgF;AAChF,yFAAsG;AACtG,yEAA0E;AAC1E,6EAA8E;AAC9E,+EAAgF;AAChF,kFAAmF;AACnF,uCAAsC;AACtC,sCAA0C;AAC1C,6FAA6F;AAG7F,IAAI,CAAC,2BAA2B,EAAE;;;;oBACjB,qBAAM,qBAAqB,EAAE,EAAA;;gBAAtC,MAAM,GAAG,SAA6B;gBAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEjB,qBAAM,iBAAiB,EAAE,EAAA;;gBAAlC,MAAM,GAAG,SAAyB,CAAC;gBACnC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;;;KAC7B,CAAC,CAAC;AAEH,SAAe,qBAAqB;;;;YAC5B,aAAa,GAAG,IAAI,2BAAa,EAAE,CAAC;YACxC,aAAa,CAAC,aAAa,CAAC;gBACxB,IAAI,gCAAa,EAAE,CAAC,QAAQ,CAAC,qBAAU,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,wCAAmB,CAAC,QAAQ,CAAC;aACtG,CAAC,CAAC;YAEC,YAAY,GAAG,IAAI,oCAAiB,EAAE,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;YAC9E,aAAa,CAAC,eAAe,CAAC;gBAC1B,IAAI,kCAAe,EAAE,CAAC,UAAU,CAAC,yBAAY,CAAC,iBAAiB,CAAC,CAAC,sBAAsB,CAAC,YAAY,CAAC;aACxG,CAAC,CAAC;YAEC,QAAQ,GAAG,IAAI,mBAAQ,CAAC,aAAa,CAAC,CAAC;YAEvC,MAAM,GAAc,QAAQ,CAAC,aAAa,CAAC,qBAAU,CAAC,eAAe,CAAC,CAAC;YAC3E,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,wCAAmB,CAAC,QAAQ,CAAC,CAAC;YACjE,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC,wCAAmB,CAAC,CAAC;YAE7D,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAA,eAAe;gBAC1C,eAAe,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC;YAC5C,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,yBAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE5E,sBAAO,IAAI,EAAC;;;CACf;AAED,SAAe,iBAAiB;;;;YACxB,QAAQ,GAAG,IAAI,2BAAa,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACrD,SAAS,GAAG,IAAI,6BAAc,EAAE,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;YACpE,SAAS,GAAG,gBAAS,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC;YACvC,WAAW,GAAG,mBAAmB,CAAC;YAClC,EAAE,GAAG,IAAI,WAAI,CAAC,WAAI,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAEvC,OAAO,GAAG,yBAAY,CAAC,iBAAiB,CAAC;YACzC,YAAY,GAAG,IAAI,oCAAiB,EAAE,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;YAEvE,eAAe,GAAG,IAAI,YAAG,EAAE,CAAC;YAClC,eAAe,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;YAC7C,eAAe,CAAC,QAAQ,CAAC,gBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC;YAE1E,QAAQ,GAAG,IAAI,YAAG,EAAE,CAAC;YAC3B,QAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;YACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC;YAElD,aAAa,GAAG,IAAI,2BAAa,EAAE,CAAC;YACxC,aAAa,CAAC,aAAa,CAAC;gBACxB,IAAI,gCAAa,EAAE,CAAC,QAAQ,CAAC,qBAAU,CAAC,UAAU,CAAC,CAAC,mBAAmB,CAAC,eAAe,CAAC;gBACxF,IAAI,gCAAa,EAAE,CAAC,QAAQ,CAAC,qBAAU,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC;gBAC/E,IAAI,gCAAa,EAAE,CAAC,QAAQ,CAAC,qBAAU,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,SAAS,CAAC;gBACjF,IAAI,gCAAa,EAAE,CAAC,QAAQ,CAAC,qBAAU,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,wCAAmB,CAAC,QAAQ,CAAC;gBACnG,IAAI,gCAAa,EAAE,CAAC,QAAQ,CAAC,qBAAU,CAAC,YAAY,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC;gBACjF,IAAI,gCAAa,EAAE,CAAC,QAAQ,CAAC,qBAAU,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC;aAC5E,CAAC,CAAC;YACC,QAAQ,GAAG,IAAI,mBAAQ,CAAC,aAAa,CAAC,CAAC;YAEvC,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,qBAAU,CAAC,UAAU,CAAC,CAAC;YACtE,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,CAAC;YACtE,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,CAAC;YAChE,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC;YAExD,gBAAgB,GAAkB,QAAQ,CAAC,aAAa,CAAC,qBAAU,CAAC,QAAQ,CAAC,CAAC;YAClF,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;YAEpE,iBAAiB,GAAmB,QAAQ,CAAC,aAAa,CAAC,qBAAU,CAAC,SAAS,CAAC,CAAC;YACrF,MAAM,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAEhF,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,qBAAU,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAEtE,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,qBAAU,CAAC,EAAE,CAAC,CAAC;YACvD,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YAElD,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,qBAAU,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEvF,sBAAO,IAAI,EAAC;;;CACf"}
|
|
@@ -5,7 +5,7 @@ import assert = require('assert');
|
|
|
5
5
|
|
|
6
6
|
import { DecimalValueProto } from '../../../fintekkers/models/util/decimal_value_pb';
|
|
7
7
|
import { PositionProto } from '../../../fintekkers/models/position/position_pb';
|
|
8
|
-
import { FieldMapEntry } from '../../../fintekkers/models/position/position_util_pb';
|
|
8
|
+
import { FieldMapEntry, MeasureMapEntry } from '../../../fintekkers/models/position/position_util_pb';
|
|
9
9
|
import { FieldProto } from '../../../fintekkers/models/position/field_pb';
|
|
10
10
|
import { MeasureProto } from '../../../fintekkers/models/position/measure_pb';
|
|
11
11
|
import { SecurityProto } from '../../../fintekkers/models/security/security_pb';
|
|
@@ -13,15 +13,43 @@ import { PortfolioProto } from '../../../fintekkers/models/portfolio/portfolio_p
|
|
|
13
13
|
import { Position } from './position';
|
|
14
14
|
import { LocalDate } from '../utils/date';
|
|
15
15
|
import { PositionStatusProto } from '../../../fintekkers/models/position/position_status_pb';
|
|
16
|
+
import { ProtoEnum } from '../utils/protoEnum';
|
|
16
17
|
|
|
17
18
|
test('test the position wrapper', async () => {
|
|
18
|
-
|
|
19
|
+
let isTrue = await testEnumSerialization();
|
|
20
|
+
expect(isTrue).toBe(true);
|
|
21
|
+
|
|
22
|
+
isTrue = await testSerialization();
|
|
19
23
|
expect(isTrue).toBe(true);
|
|
20
24
|
});
|
|
21
25
|
|
|
22
|
-
async function
|
|
23
|
-
let
|
|
26
|
+
async function testEnumSerialization(): Promise<boolean> {
|
|
27
|
+
let positionProto = new PositionProto();
|
|
28
|
+
positionProto.setFieldsList([
|
|
29
|
+
new FieldMapEntry().setField(FieldProto.POSITION_STATUS).setEnumValue(PositionStatusProto.EXECUTED)
|
|
30
|
+
]);
|
|
31
|
+
|
|
32
|
+
let measureValue = new DecimalValueProto().setArbitraryPrecisionValue("1.55");
|
|
33
|
+
positionProto.setMeasuresList([
|
|
34
|
+
new MeasureMapEntry().setMeasure(MeasureProto.DIRECTED_QUANTITY).setMeasureDecimalValue(measureValue)
|
|
35
|
+
]);
|
|
24
36
|
|
|
37
|
+
let position = new Position(positionProto);
|
|
38
|
+
|
|
39
|
+
let status: ProtoEnum = position.getFieldValue(FieldProto.POSITION_STATUS);
|
|
40
|
+
expect(status.getEnumValueName()).toBe("EXECUTED");
|
|
41
|
+
expect(status.getEnumValue()).toBe(PositionStatusProto.EXECUTED);
|
|
42
|
+
expect(status.getEnumDescriptor()).toBe(PositionStatusProto);
|
|
43
|
+
|
|
44
|
+
position.getMeasures().forEach(measureMapEntry => {
|
|
45
|
+
measureMapEntry.getMeasure().toString();
|
|
46
|
+
});
|
|
47
|
+
expect(position.getMeasureValue(MeasureProto.DIRECTED_QUANTITY)).toBe(1.55);
|
|
48
|
+
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
async function testSerialization(): Promise<boolean> {
|
|
25
53
|
let security = new SecurityProto().setAssetClass("Test");
|
|
26
54
|
let portfolio = new PortfolioProto().setPortfolioName("Test portfolio");
|
|
27
55
|
let tradeDate = LocalDate.today().toDate();
|
|
@@ -66,7 +94,7 @@ async function testSerialization(): Promise<boolean> {
|
|
|
66
94
|
let positionID = position.getFieldValue(FieldProto.ID);
|
|
67
95
|
expect(positionID.toString()).toBe(id.toString());
|
|
68
96
|
|
|
69
|
-
expect(position.getFieldValue(FieldProto.POSITION_STATUS)).toBe(
|
|
97
|
+
expect(position.getFieldValue(FieldProto.POSITION_STATUS).toString()).toBe("EXECUTED");
|
|
70
98
|
|
|
71
99
|
return true;
|
|
72
100
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
//
|
|
2
|
-
|
|
1
|
+
//Models
|
|
3
2
|
import { FieldProto } from "../../../fintekkers/models/position/field_pb";
|
|
4
3
|
import { PositionProto } from "../../../fintekkers/models/position/position_pb";
|
|
5
4
|
import { FieldMapEntry, MeasureMapEntry } from "../../../fintekkers/models/position/position_util_pb";
|
|
@@ -13,6 +12,10 @@ import { MeasureProto } from "../../../fintekkers/models/position/measure_pb";
|
|
|
13
12
|
import Decimal from "decimal.js";
|
|
14
13
|
import { ProtoSerializationUtil } from "../utils/serialization";
|
|
15
14
|
import { StringValue } from 'google-protobuf/google/protobuf/wrappers_pb';
|
|
15
|
+
import { ProtoEnum } from "../utils/protoEnum";
|
|
16
|
+
import { Field } from "./field";
|
|
17
|
+
import { UUID } from "../utils/uuid";
|
|
18
|
+
import { ZonedDateTime } from "../utils/datetime";
|
|
16
19
|
|
|
17
20
|
export class Position {
|
|
18
21
|
proto: PositionProto;
|
|
@@ -25,7 +28,7 @@ export class Position {
|
|
|
25
28
|
return this.getField(new FieldMapEntry().setField(field));
|
|
26
29
|
}
|
|
27
30
|
|
|
28
|
-
public getField(fieldToGet: FieldMapEntry):
|
|
31
|
+
public getField(fieldToGet: FieldMapEntry): string | ProtoEnum | Security | Portfolio | UUID | Date | ZonedDateTime | number {
|
|
29
32
|
for (const tmpField of this.proto.getFieldsList()) {
|
|
30
33
|
if (tmpField.getField() === fieldToGet.getField()) {
|
|
31
34
|
|
|
@@ -34,9 +37,9 @@ export class Position {
|
|
|
34
37
|
}
|
|
35
38
|
|
|
36
39
|
if (tmpField.getEnumValue() > 0) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
return
|
|
40
|
+
let fieldName: string = new Field(fieldToGet.getField()).getName();
|
|
41
|
+
let proto: ProtoEnum = ProtoEnum.fromEnumName(fieldName, tmpField.getEnumValue());
|
|
42
|
+
return proto;
|
|
40
43
|
}
|
|
41
44
|
|
|
42
45
|
const unpackedValue = Position.unpackField(tmpField);
|
|
@@ -63,7 +66,7 @@ export class Position {
|
|
|
63
66
|
private getMeasure(measureToGet: MeasureMapEntry): Decimal {
|
|
64
67
|
for (const tmpMeasure of this.proto.getMeasuresList()) {
|
|
65
68
|
if (tmpMeasure.getMeasure() === measureToGet.getMeasure()) {
|
|
66
|
-
return ProtoSerializationUtil.deserialize(tmpMeasure.getMeasureDecimalValue());
|
|
69
|
+
return ProtoSerializationUtil.deserialize(tmpMeasure.getMeasureDecimalValue()) as unknown as Decimal;
|
|
67
70
|
}
|
|
68
71
|
}
|
|
69
72
|
|
|
@@ -100,18 +103,6 @@ export class Position {
|
|
|
100
103
|
return output;
|
|
101
104
|
}
|
|
102
105
|
|
|
103
|
-
// private static wrapStringToAny(myString: string): Any {
|
|
104
|
-
// const myAny = new Any();
|
|
105
|
-
// myAny.pack(wrappers.StringValue.create({ value: myString }));
|
|
106
|
-
// return myAny;
|
|
107
|
-
// }
|
|
108
|
-
|
|
109
|
-
// private static packField(fieldToPack: any): Any {
|
|
110
|
-
// const myAny = new Any();
|
|
111
|
-
// myAny.pack(fieldToPack);
|
|
112
|
-
// return myAny;
|
|
113
|
-
// }
|
|
114
|
-
|
|
115
106
|
public static unpackField(fieldToUnpack: FieldMapEntry): any {
|
|
116
107
|
switch (fieldToUnpack.getField()) {
|
|
117
108
|
case FieldProto.PORTFOLIO_ID:
|
|
@@ -147,12 +138,4 @@ export class Position {
|
|
|
147
138
|
throw new Error(`Field not found. Could not unpack ${FieldProto[fieldToUnpack.getField()]}`);
|
|
148
139
|
}
|
|
149
140
|
}
|
|
150
|
-
|
|
151
|
-
// public static unpackMeasure(measureToUnpack: MeasureProto): DecimalValueProto {
|
|
152
|
-
// if (measureToUnpack === MeasureProto.DIRECTED_QUANTITY) {
|
|
153
|
-
// return measureToUnpack.g;
|
|
154
|
-
// } else {
|
|
155
|
-
// throw new Error(`Field not found. Could not unpack ${MeasureProto.Name[measureToUnpack.measure]}`);
|
|
156
|
-
// }
|
|
157
|
-
// }
|
|
158
141
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ZonedDateTime = void 0;
|
|
4
|
-
var console_1 = require("console");
|
|
5
4
|
var local_timestamp_pb_1 = require("../../../fintekkers/models/util/local_timestamp_pb");
|
|
6
5
|
var timestamp_pb_1 = require("google-protobuf/google/protobuf/timestamp_pb");
|
|
7
6
|
var luxon_1 = require("luxon");
|
|
@@ -51,22 +50,4 @@ var ZonedDateTime = /** @class */ (function () {
|
|
|
51
50
|
return ZonedDateTime;
|
|
52
51
|
}());
|
|
53
52
|
exports.ZonedDateTime = ZonedDateTime;
|
|
54
|
-
// function createTimestampWithCurrentTime(): ZonedDateTime {
|
|
55
|
-
// // Get the current time in milliseconds since January 1, 1970 (Unix timestamp)
|
|
56
|
-
// const currentTimeMillis = Date.now();
|
|
57
|
-
// // Convert milliseconds to seconds and nanoseconds
|
|
58
|
-
// const seconds = Math.floor(currentTimeMillis / 1000);
|
|
59
|
-
// const nanos = (currentTimeMillis % 1000) * 1e6; // 1 millisecond = 1e6 nanoseconds
|
|
60
|
-
// // Create a new Timestamp object with the current time
|
|
61
|
-
// const timestamp = new Timestamp();
|
|
62
|
-
// timestamp.setSeconds(seconds);
|
|
63
|
-
// timestamp.setNanos(nanos);
|
|
64
|
-
// const localTimestamp = new LocalTimestampProto();
|
|
65
|
-
// localTimestamp.setTimeZone('America/New_York');
|
|
66
|
-
// localTimestamp.setTimestamp(timestamp);
|
|
67
|
-
// return new ZonedDateTime(localTimestamp);
|
|
68
|
-
// }
|
|
69
|
-
// ZonedDateTime.now = createTimestampWithCurrentTime;
|
|
70
|
-
var now = ZonedDateTime.now();
|
|
71
|
-
(0, console_1.assert)(now.toDateTime().toString() === now.toString());
|
|
72
53
|
//# sourceMappingURL=datetime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datetime.js","sourceRoot":"","sources":["datetime.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"datetime.js","sourceRoot":"","sources":["datetime.ts"],"names":[],"mappings":";;;AACA,yFAAyF;AACzF,6EAAyE;AACzE,+BAAiC;AAEjC;IAGE,uBAAY,KAA0B;QACpC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,mCAAW,GAAX;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;IAClC,CAAC;IAED,kCAAU,GAAV;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;IAChD,CAAC;IAED,sCAAc,GAAd;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC9C,CAAC;IAED,kCAAU,GAAV;QACE,+GAA+G;QAC/G,IAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpE,IAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,CAAC;QAEzD,IAAI,QAAQ,GAAG,gBAAQ,CAAC,WAAW,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAE9F,gDAAgD;QAChD,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5E,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,gCAAQ,GAAR;QACE,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC;IACtC,CAAC;IAED,+BAAO,GAAP;QACE,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEM,iBAAG,GAAV;QACE,8EAA8E;QAC9E,IAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAErC,kDAAkD;QAClD,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;QACrD,IAAM,KAAK,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,kCAAkC;QAElF,sDAAsD;QACtD,IAAM,SAAS,GAAG,IAAI,wBAAS,EAAE,CAAC;QAClC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC9B,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE1B,IAAM,cAAc,GAAG,IAAI,wCAAmB,EAAE,CAAC;QACjD,cAAc,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;QAC/C,cAAc,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAEvC,OAAO,IAAI,aAAa,CAAC,cAAc,CAAC,CAAC;IAC3C,CAAC;IACH,oBAAC;AAAD,CAAC,AA1DD,IA0DC;AAEQ,sCAAa"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
var datetime_1 = require("./datetime");
|
|
40
|
+
test('test the position wrapper', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
41
|
+
var now;
|
|
42
|
+
return __generator(this, function (_a) {
|
|
43
|
+
now = datetime_1.ZonedDateTime.now();
|
|
44
|
+
expect(now.toDateTime().toString()).toBe(now.toString());
|
|
45
|
+
return [2 /*return*/];
|
|
46
|
+
});
|
|
47
|
+
}); });
|
|
48
|
+
//# sourceMappingURL=datetime.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datetime.test.js","sourceRoot":"","sources":["datetime.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uCAA2C;AAE3C,IAAI,CAAC,2BAA2B,EAAE;;;QAExB,GAAG,GAAG,wBAAa,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;;;KAC5D,CAAC,CAAC"}
|
|
@@ -63,28 +63,4 @@ class ZonedDateTime {
|
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
// function createTimestampWithCurrentTime(): ZonedDateTime {
|
|
67
|
-
// // Get the current time in milliseconds since January 1, 1970 (Unix timestamp)
|
|
68
|
-
// const currentTimeMillis = Date.now();
|
|
69
|
-
|
|
70
|
-
// // Convert milliseconds to seconds and nanoseconds
|
|
71
|
-
// const seconds = Math.floor(currentTimeMillis / 1000);
|
|
72
|
-
// const nanos = (currentTimeMillis % 1000) * 1e6; // 1 millisecond = 1e6 nanoseconds
|
|
73
|
-
|
|
74
|
-
// // Create a new Timestamp object with the current time
|
|
75
|
-
// const timestamp = new Timestamp();
|
|
76
|
-
// timestamp.setSeconds(seconds);
|
|
77
|
-
// timestamp.setNanos(nanos);
|
|
78
|
-
|
|
79
|
-
// const localTimestamp = new LocalTimestampProto();
|
|
80
|
-
// localTimestamp.setTimeZone('America/New_York');
|
|
81
|
-
// localTimestamp.setTimestamp(timestamp);
|
|
82
|
-
|
|
83
|
-
// return new ZonedDateTime(localTimestamp);
|
|
84
|
-
// }
|
|
85
|
-
|
|
86
|
-
// ZonedDateTime.now = createTimestampWithCurrentTime;
|
|
87
|
-
const now = ZonedDateTime.now();
|
|
88
|
-
assert(now.toDateTime().toString() === now.toString());
|
|
89
|
-
|
|
90
66
|
export { ZonedDateTime };
|
|
@@ -24,9 +24,13 @@ var ProtoEnum = /** @class */ (function () {
|
|
|
24
24
|
}
|
|
25
25
|
throw new Error("Enum has not been mapped: ".concat(enumName));
|
|
26
26
|
};
|
|
27
|
+
ProtoEnum.prototype.getEnumDescriptor = function () {
|
|
28
|
+
return this.enumDescriptor;
|
|
29
|
+
};
|
|
27
30
|
ProtoEnum.prototype.getEnumName = function () {
|
|
28
31
|
// Assuming your enumDescriptor has a name property or similar
|
|
29
|
-
|
|
32
|
+
throw new Error("Not supported currently");
|
|
33
|
+
// return this.enumDescriptor.name;
|
|
30
34
|
};
|
|
31
35
|
ProtoEnum.prototype.getEnumValue = function () {
|
|
32
36
|
return this.enumValue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protoEnum.js","sourceRoot":"","sources":["protoEnum.ts"],"names":[],"mappings":";;;AACA,kGAAkG;AAClG,6FAA6F;AAC7F,yEAA0E;AAE1E;IAII,mBAAY,cAAmB,EAAE,SAAiB;QAC9C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACzC,CAAC;IAEM,sBAAY,GAAnB,UAAoB,QAAgB,EAAE,SAAiB;QACnD,OAAO,IAAI,SAAS,CAAC,SAAS,CAAC,0BAA0B,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;IACpF,CAAC;IAEc,oCAA0B,GAAzC,UAA0C,QAAgB;QACtD,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;YAClC,OAAO,0CAAoB,CAAC;QAChC,CAAC;QACD,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;YACjC,OAAO,wCAAmB,CAAC;QAC/B,CAAC;QACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACvB,OAAO,qBAAU,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,oCAA6B,QAAQ,CAAE,CAAC,CAAC;IAC7D,CAAC;IAED,+BAAW,GAAX;QACI,8DAA8D;QAC9D,
|
|
1
|
+
{"version":3,"file":"protoEnum.js","sourceRoot":"","sources":["protoEnum.ts"],"names":[],"mappings":";;;AACA,kGAAkG;AAClG,6FAA6F;AAC7F,yEAA0E;AAE1E;IAII,mBAAY,cAAmB,EAAE,SAAiB;QAC9C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACzC,CAAC;IAEM,sBAAY,GAAnB,UAAoB,QAAgB,EAAE,SAAiB;QACnD,OAAO,IAAI,SAAS,CAAC,SAAS,CAAC,0BAA0B,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;IACpF,CAAC;IAEc,oCAA0B,GAAzC,UAA0C,QAAgB;QACtD,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;YAClC,OAAO,0CAAoB,CAAC;QAChC,CAAC;QACD,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;YACjC,OAAO,wCAAmB,CAAC;QAC/B,CAAC;QACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACvB,OAAO,qBAAU,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,oCAA6B,QAAQ,CAAE,CAAC,CAAC;IAC7D,CAAC;IAED,qCAAiB,GAAjB;QACI,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED,+BAAW,GAAX;QACI,8DAA8D;QAC9D,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,oCAAoC;IACxC,CAAC;IAED,gCAAY,GAAZ;QACI,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,oCAAgB,GAAhB;QAAA,iBAQC;QAPG,+EAA+E;QAC/E,wEAAwE;QACxE,IAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG,IAAI,OAAA,KAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,KAAI,CAAC,SAAS,EAA3C,CAA2C,CAAC,CAAC;QAC1G,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,SAAS,CAAC,CAAC,2BAA2B;QACjD,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,4BAAQ,GAAR;QACI,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACnC,CAAC;IACL,gBAAC;AAAD,CAAC,AArDD,IAqDC;AArDY,8BAAS"}
|
|
@@ -13,6 +13,10 @@ describe('ProtoEnum', function () {
|
|
|
13
13
|
var protoEnum = new protoEnum_1.ProtoEnum(position_status_pb_1.PositionStatusProto.INTENDED, 2);
|
|
14
14
|
expect(protoEnum.getEnumValue()).toEqual(2);
|
|
15
15
|
});
|
|
16
|
+
it('should correctly return the enum name for PositionStatusProto', function () {
|
|
17
|
+
var protoEnum = new protoEnum_1.ProtoEnum(position_status_pb_1.PositionStatusProto.INTENDED, 2);
|
|
18
|
+
expect(function () { return protoEnum.getEnumName(); }).toThrow(Error);
|
|
19
|
+
});
|
|
16
20
|
it('should throw an error for an unmapped enum name', function () {
|
|
17
21
|
expect(function () { return protoEnum_1.ProtoEnum.fromEnumName('UNMAPPED_ENUM', 0); }).toThrow('Enum has not been mapped: UNMAPPED_ENUM');
|
|
18
22
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protoEnum.test.js","sourceRoot":"","sources":["protoEnum.test.ts"],"names":[],"mappings":";AAAA,oBAAoB;;AAEpB,6FAA6F;AAC7F,kGAAkG;AAClG,yCAAwC;AAExC,QAAQ,CAAC,WAAW,EAAE;IAClB,EAAE,CAAC,+EAA+E,EAAE;QAChF,IAAM,SAAS,GAAG,IAAI,qBAAS,CAAC,0CAAoB,EAAE,CAAC,CAAC,CAAC;QACzD,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE;QACjE,IAAM,SAAS,GAAG,IAAI,qBAAS,CAAC,wCAAmB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACjE,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE;QAClD,MAAM,CAAC,cAAM,OAAA,qBAAS,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,CAAC,EAA1C,CAA0C,CAAC,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;IAChH,CAAC,CAAC,CAAC;IAEH,sDAAsD;AAC1D,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"protoEnum.test.js","sourceRoot":"","sources":["protoEnum.test.ts"],"names":[],"mappings":";AAAA,oBAAoB;;AAEpB,6FAA6F;AAC7F,kGAAkG;AAClG,yCAAwC;AAExC,QAAQ,CAAC,WAAW,EAAE;IAClB,EAAE,CAAC,+EAA+E,EAAE;QAChF,IAAM,SAAS,GAAG,IAAI,qBAAS,CAAC,0CAAoB,EAAE,CAAC,CAAC,CAAC;QACzD,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE;QACjE,IAAM,SAAS,GAAG,IAAI,qBAAS,CAAC,wCAAmB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACjE,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE;QAChE,IAAM,SAAS,GAAG,IAAI,qBAAS,CAAC,wCAAmB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACjE,MAAM,CAAC,cAAM,OAAA,SAAS,CAAC,WAAW,EAAE,EAAvB,CAAuB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE;QAClD,MAAM,CAAC,cAAM,OAAA,qBAAS,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,CAAC,EAA1C,CAA0C,CAAC,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;IAChH,CAAC,CAAC,CAAC;IAEH,sDAAsD;AAC1D,CAAC,CAAC,CAAC"}
|
|
@@ -15,6 +15,11 @@ describe('ProtoEnum', () => {
|
|
|
15
15
|
expect(protoEnum.getEnumValue()).toEqual(2);
|
|
16
16
|
});
|
|
17
17
|
|
|
18
|
+
it('should correctly return the enum name for PositionStatusProto', () => {
|
|
19
|
+
const protoEnum = new ProtoEnum(PositionStatusProto.INTENDED, 2);
|
|
20
|
+
expect(() => protoEnum.getEnumName()).toThrow(Error);
|
|
21
|
+
});
|
|
22
|
+
|
|
18
23
|
it('should throw an error for an unmapped enum name', () => {
|
|
19
24
|
expect(() => ProtoEnum.fromEnumName('UNMAPPED_ENUM', 0)).toThrow('Enum has not been mapped: UNMAPPED_ENUM');
|
|
20
25
|
});
|
|
@@ -29,9 +29,14 @@ export class ProtoEnum {
|
|
|
29
29
|
throw new Error(`Enum has not been mapped: ${enumName}`);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
getEnumDescriptor(): string {
|
|
33
|
+
return this.enumDescriptor;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
getEnumName(): Error {
|
|
33
37
|
// Assuming your enumDescriptor has a name property or similar
|
|
34
|
-
|
|
38
|
+
throw new Error("Not supported currently");
|
|
39
|
+
// return this.enumDescriptor.name;
|
|
35
40
|
}
|
|
36
41
|
|
|
37
42
|
getEnumValue(): number {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialization.js","sourceRoot":"","sources":["serialization.ts"],"names":[],"mappings":";;;AAAA,qFAAqF;AACrF,+EAA+E;AAC/E,yFAAyF;AACzF,mEAAoE;AACpE,uCAA2C;AAC3C,+BAA8B;AAC9B,2EAA0E;
|
|
1
|
+
{"version":3,"file":"serialization.js","sourceRoot":"","sources":["serialization.ts"],"names":[],"mappings":";;;AAAA,qFAAqF;AACrF,+EAA+E;AAC/E,yFAAyF;AACzF,mEAAoE;AACpE,uCAA2C;AAC3C,+BAA8B;AAC9B,2EAA0E;AAE1E;IAAA;IAgDA,CAAC;IA/CQ,gCAAS,GAAhB,UAAiB,GAAQ;QACvB,IAAI,GAAG,YAAY,WAAI,EAAE,CAAC;YACxB,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;QAC3B,CAAC;QACD,IAAI,GAAG,YAAY,IAAI,EAAE,CAAC;YACxB,OAAO,IAAI,8BAAc,EAAE;iBACxB,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;iBAC1B,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;iBAC5B,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,GAAG,YAAY,wBAAa,EAAE,CAAC;YACjC,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;QACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,IAAI,oCAAiB,EAAE,CAAC,0BAA0B,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,GAAG,YAAY,MAAM,EAAE,CAAC;YAC1B,OAAO,yBAAW,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,6CAAsC,OAAO,GAAG,sBAAY,GAAG,CAAE,CAAC,CAAC;IACrF,CAAC;IAEM,kCAAW,GAAlB,UAAmB,GAAQ;QACzB,IAAI,GAAG,YAAY,mBAAS,EAAE,CAAC;YAC7B,OAAO,WAAI,CAAC,WAAW,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,GAAG,YAAY,8BAAc,EAAE,CAAC;YAClC,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,GAAG,YAAY,wCAAmB,EAAE,CAAC;YACvC,OAAO,IAAI,wBAAa,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,KAAK,kBAAkB,EAAE,CAAC;YAC1D,OAAO,IAAI,CAAC,CAAA,uCAAuC;QACrD,CAAC;QACD,IAAI,GAAG,YAAY,oCAAiB,EAAE,CAAC;YACrC,OAAO,UAAU,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,GAAG,YAAY,yBAAW,EAAE,CAAC;YAC/B,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,+CAAwC,OAAO,GAAG,sBAAY,GAAG,CAAE,CAAC,CAAC;IACvF,CAAC;IACH,6BAAC;AAAD,CAAC,AAhDD,IAgDC;AAhDY,wDAAsB"}
|
|
@@ -6,13 +6,8 @@ import { ZonedDateTime } from "./datetime";
|
|
|
6
6
|
import { UUID } from "./uuid";
|
|
7
7
|
import { StringValue } from 'google-protobuf/google/protobuf/wrappers_pb';
|
|
8
8
|
|
|
9
|
-
interface EnumValueDescriptor {
|
|
10
|
-
name: string;
|
|
11
|
-
values_by_number: { [key: number]: { name: string } };
|
|
12
|
-
}
|
|
13
|
-
|
|
14
9
|
export class ProtoSerializationUtil {
|
|
15
|
-
static serialize(obj: any):
|
|
10
|
+
static serialize(obj: any) { //}: UUIDProto | LocalDateProto | LocalTimestampProto | DecimalValueProto | StringValue {
|
|
16
11
|
if (obj instanceof UUID) {
|
|
17
12
|
return obj.toUUIDProto();
|
|
18
13
|
}
|
|
@@ -35,7 +30,7 @@ export class ProtoSerializationUtil {
|
|
|
35
30
|
throw new Error(`Could not serialize object of type ${typeof obj}. Value: ${obj}`);
|
|
36
31
|
}
|
|
37
32
|
|
|
38
|
-
static deserialize(obj: any):
|
|
33
|
+
static deserialize(obj: any) { //}: UUID | Date | ZonedDateTime | number | string {
|
|
39
34
|
if (obj instanceof UUIDProto) {
|
|
40
35
|
return UUID.fromU8Array(obj.getRawUuid_asU8());
|
|
41
36
|
}
|