@marketeer-intelligence/framework-device 0.1.0-alpha.6 → 0.1.0-alpha.8
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/data-store/InstrumentMongoDbCollection.d.ts +3 -2
- package/dist/data-store/InstrumentMongoDbCollection.d.ts.map +1 -1
- package/dist/data-store/InstrumentMongoDbCollection.js +34 -2
- package/dist/data-store/InstrumentMongoDbCollection.js.map +1 -1
- package/dist/data-store/MarketIndexMongoDbCollection.d.ts +2 -1
- package/dist/data-store/MarketIndexMongoDbCollection.d.ts.map +1 -1
- package/dist/data-store/MarketIndexMongoDbCollection.js +26 -1
- package/dist/data-store/MarketIndexMongoDbCollection.js.map +1 -1
- package/dist/data-store/SecurityMongoDbCollection.d.ts +2 -1
- package/dist/data-store/SecurityMongoDbCollection.d.ts.map +1 -1
- package/dist/data-store/SecurityMongoDbCollection.js +27 -2
- package/dist/data-store/SecurityMongoDbCollection.js.map +1 -1
- package/package.json +1 -1
@@ -1,5 +1,5 @@
|
|
1
|
-
import { IStorable, Instrument, Status } from './index.js';
|
2
|
-
export declare class InstrumentMongoDbCollection implements IStorable<Instrument[]> {
|
1
|
+
import { Feedback, IFetchable, IStorable, Instrument, Status } from './index.js';
|
2
|
+
export declare class InstrumentMongoDbCollection implements IStorable<Instrument[]>, IFetchable<Instrument[]> {
|
3
3
|
private readonly _name;
|
4
4
|
private readonly _schema;
|
5
5
|
private _model;
|
@@ -8,5 +8,6 @@ export declare class InstrumentMongoDbCollection implements IStorable<Instrument
|
|
8
8
|
static create(): InstrumentMongoDbCollection;
|
9
9
|
upsert(instrument: Instrument): Promise<Status<Error>>;
|
10
10
|
store(instruments: Instrument[]): Promise<Status<Error>>;
|
11
|
+
fetchData(): Promise<Feedback<Instrument[], Error>>;
|
11
12
|
}
|
12
13
|
//# sourceMappingURL=InstrumentMongoDbCollection.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"InstrumentMongoDbCollection.d.ts","sourceRoot":"","sources":["../../src/data-store/InstrumentMongoDbCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EACT,UAAU,
|
1
|
+
{"version":3,"file":"InstrumentMongoDbCollection.d.ts","sourceRoot":"","sources":["../../src/data-store/InstrumentMongoDbCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EACR,UAAU,EACV,SAAS,EACT,UAAU,EAKV,MAAM,EAGP,MAAM,YAAY,CAAA;AAenB,qBAAa,2BACX,YAAW,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC;IAE5D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAarB;IACH,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO;IAMP,OAAO,CAAC,MAAM,CAAC,SAAS,CAA6B;IACrD,MAAM,CAAC,MAAM,IAAI,2BAA2B;IAKtC,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAgBtD,KAAK,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAmBxD,SAAS,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,CAAC;CA8B1D"}
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import { Failure, Success, } from './index.js';
|
1
|
+
import { Failure, MarketIndexMongoDbCollection, Result, SecurityMongoDbCollection, Success, isFailure, } from './index.js';
|
2
2
|
import { Schema as MongooseSchema, model as mongooseModel, } from 'mongoose';
|
3
3
|
export class InstrumentMongoDbCollection {
|
4
|
-
_name = 'instruments';
|
4
|
+
_name = 'financial-instruments';
|
5
5
|
_schema = new MongooseSchema({
|
6
6
|
isin: { type: String, required: true, unique: true },
|
7
7
|
symbol: { type: String, required: true, unique: true },
|
@@ -54,5 +54,37 @@ export class InstrumentMongoDbCollection {
|
|
54
54
|
throw error;
|
55
55
|
}
|
56
56
|
}
|
57
|
+
async fetchData() {
|
58
|
+
try {
|
59
|
+
const indexCollection = MarketIndexMongoDbCollection.create();
|
60
|
+
const securityCollection = SecurityMongoDbCollection.create();
|
61
|
+
const [instrumentsFromIndices, instrumentsFromSecurities] = await Promise.all([
|
62
|
+
indexCollection.fetchAll(),
|
63
|
+
securityCollection.fetchInstruments(),
|
64
|
+
]);
|
65
|
+
let instruments = [];
|
66
|
+
if (isFailure(instrumentsFromIndices)) {
|
67
|
+
console.log('failed to fetch from market-indicies collection');
|
68
|
+
console.log(instrumentsFromIndices.error.message);
|
69
|
+
}
|
70
|
+
else {
|
71
|
+
instruments.push(...instrumentsFromIndices.value);
|
72
|
+
}
|
73
|
+
if (isFailure(instrumentsFromSecurities)) {
|
74
|
+
console.log('failed to fetch from marketable-securities collection');
|
75
|
+
console.log(instrumentsFromSecurities.error.message);
|
76
|
+
}
|
77
|
+
else {
|
78
|
+
instruments.push(...instrumentsFromSecurities.value);
|
79
|
+
}
|
80
|
+
return Result.create(instruments);
|
81
|
+
}
|
82
|
+
catch (error) {
|
83
|
+
if (error instanceof Error) {
|
84
|
+
return Failure.create(error);
|
85
|
+
}
|
86
|
+
throw error;
|
87
|
+
}
|
88
|
+
}
|
57
89
|
}
|
58
90
|
//# sourceMappingURL=InstrumentMongoDbCollection.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"InstrumentMongoDbCollection.js","sourceRoot":"","sources":["../../src/data-store/InstrumentMongoDbCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,
|
1
|
+
{"version":3,"file":"InstrumentMongoDbCollection.js","sourceRoot":"","sources":["../../src/data-store/InstrumentMongoDbCollection.ts"],"names":[],"mappings":"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"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { IStorable, Instrument, Status } from './index.js';
|
1
|
+
import { Feedback, IStorable, Instrument, Status } from './index.js';
|
2
2
|
export declare class MarketIndexMongoDbCollection implements IStorable<Instrument[]> {
|
3
3
|
private readonly _name;
|
4
4
|
private readonly _schema;
|
@@ -8,5 +8,6 @@ export declare class MarketIndexMongoDbCollection implements IStorable<Instrumen
|
|
8
8
|
static create(): MarketIndexMongoDbCollection;
|
9
9
|
upsert(marketIndex: Instrument): Promise<Status<Error>>;
|
10
10
|
store(marketIndices: Instrument[]): Promise<Status<Error>>;
|
11
|
+
fetchAll(): Promise<Feedback<Instrument[], Error>>;
|
11
12
|
}
|
12
13
|
//# sourceMappingURL=MarketIndexMongoDbCollection.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"MarketIndexMongoDbCollection.d.ts","sourceRoot":"","sources":["../../src/data-store/MarketIndexMongoDbCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EACT,UAAU,
|
1
|
+
{"version":3,"file":"MarketIndexMongoDbCollection.d.ts","sourceRoot":"","sources":["../../src/data-store/MarketIndexMongoDbCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EACR,SAAS,EACT,UAAU,EAGV,MAAM,EAGP,MAAM,YAAY,CAAA;AAenB,qBAAa,4BAA6B,YAAW,SAAS,CAAC,UAAU,EAAE,CAAC;IAC1E,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAarB;IACH,OAAO,CAAC,MAAM,CAA0C;IACxD,OAAO;IAMP,OAAO,CAAC,MAAM,CAAC,SAAS,CAA8B;IACtD,MAAM,CAAC,MAAM,IAAI,4BAA4B;IAKvC,MAAM,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAgBvD,KAAK,CAAC,aAAa,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAmB1D,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,CAAC;CAwBzD"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { Failure, Success, } from './index.js';
|
1
|
+
import { Failure, Instrument, Result, Success, isFailure, } from './index.js';
|
2
2
|
import { Schema as MongooseSchema, model as mongooseModel, } from 'mongoose';
|
3
3
|
export class MarketIndexMongoDbCollection {
|
4
4
|
_name = 'market-indices';
|
@@ -54,5 +54,30 @@ export class MarketIndexMongoDbCollection {
|
|
54
54
|
throw error;
|
55
55
|
}
|
56
56
|
}
|
57
|
+
async fetchAll() {
|
58
|
+
try {
|
59
|
+
const records = await this._model
|
60
|
+
.find({})
|
61
|
+
.select({ _id: 0, createdAt: 0, updatedAt: 0, 'instrument._id': 0 })
|
62
|
+
.lean();
|
63
|
+
const marketIndices = [];
|
64
|
+
for (const [index, record] of records.entries()) {
|
65
|
+
const marketIndexOrError = Instrument.create(record);
|
66
|
+
if (isFailure(marketIndexOrError)) {
|
67
|
+
console.log(`record #${index + 1} is skipped`);
|
68
|
+
console.log(marketIndexOrError.error.message);
|
69
|
+
continue;
|
70
|
+
}
|
71
|
+
marketIndices.push(marketIndexOrError.value);
|
72
|
+
}
|
73
|
+
return Result.create(marketIndices);
|
74
|
+
}
|
75
|
+
catch (error) {
|
76
|
+
if (error instanceof Error) {
|
77
|
+
return Failure.create(error);
|
78
|
+
}
|
79
|
+
throw error;
|
80
|
+
}
|
81
|
+
}
|
57
82
|
}
|
58
83
|
//# sourceMappingURL=MarketIndexMongoDbCollection.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"MarketIndexMongoDbCollection.js","sourceRoot":"","sources":["../../src/data-store/MarketIndexMongoDbCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,
|
1
|
+
{"version":3,"file":"MarketIndexMongoDbCollection.js","sourceRoot":"","sources":["../../src/data-store/MarketIndexMongoDbCollection.ts"],"names":[],"mappings":"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"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { IStorable, Security, Status } from './index.js';
|
1
|
+
import { Feedback, IStorable, Instrument, Security, Status } from './index.js';
|
2
2
|
export declare class SecurityMongoDbCollection implements IStorable<Security[]> {
|
3
3
|
private readonly _name;
|
4
4
|
private readonly _schema;
|
@@ -8,5 +8,6 @@ export declare class SecurityMongoDbCollection implements IStorable<Security[]>
|
|
8
8
|
static create(): SecurityMongoDbCollection;
|
9
9
|
upsert(security: Security): Promise<Status<Error>>;
|
10
10
|
store(securities: Security[]): Promise<Status<Error>>;
|
11
|
+
fetchInstruments(): Promise<Feedback<Instrument[], Error>>;
|
11
12
|
}
|
12
13
|
//# sourceMappingURL=SecurityMongoDbCollection.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SecurityMongoDbCollection.d.ts","sourceRoot":"","sources":["../../src/data-store/SecurityMongoDbCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EACT,QAAQ,EAER,MAAM,
|
1
|
+
{"version":3,"file":"SecurityMongoDbCollection.d.ts","sourceRoot":"","sources":["../../src/data-store/SecurityMongoDbCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EACR,SAAS,EACT,UAAU,EAEV,QAAQ,EAER,MAAM,EAGP,MAAM,YAAY,CAAA;AAenB,qBAAa,yBAA0B,YAAW,SAAS,CAAC,QAAQ,EAAE,CAAC;IACrE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAsBrB;IACH,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO;IAMP,OAAO,CAAC,MAAM,CAAC,SAAS,CAA2B;IACnD,MAAM,CAAC,MAAM,IAAI,yBAAyB;IAGpC,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAgBlD,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAmBrD,gBAAgB,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,CAAC;CAwBjE"}
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import { Failure, Success, } from './index.js';
|
1
|
+
import { Failure, Instrument, Result, Success, isFailure, } from './index.js';
|
2
2
|
import { Schema as MongooseSchema, model as mongooseModel, } from 'mongoose';
|
3
3
|
export class SecurityMongoDbCollection {
|
4
|
-
_name = 'securities';
|
4
|
+
_name = 'marketable-securities';
|
5
5
|
_schema = new MongooseSchema({
|
6
6
|
instrument: {
|
7
7
|
type: {
|
@@ -63,5 +63,30 @@ export class SecurityMongoDbCollection {
|
|
63
63
|
throw error;
|
64
64
|
}
|
65
65
|
}
|
66
|
+
async fetchInstruments() {
|
67
|
+
try {
|
68
|
+
const records = await this._model
|
69
|
+
.find({})
|
70
|
+
.select({ _id: 0, createdAt: 0, updatedAt: 0, 'instrument._id': 0 })
|
71
|
+
.lean();
|
72
|
+
const instruments = [];
|
73
|
+
for (const [index, record] of records.entries()) {
|
74
|
+
const instrumentOrError = Instrument.create(record);
|
75
|
+
if (isFailure(instrumentOrError)) {
|
76
|
+
console.log(`record #${index + 1} is skipped`);
|
77
|
+
console.log(instrumentOrError.error.message);
|
78
|
+
continue;
|
79
|
+
}
|
80
|
+
instruments.push(instrumentOrError.value);
|
81
|
+
}
|
82
|
+
return Result.create(instruments);
|
83
|
+
}
|
84
|
+
catch (error) {
|
85
|
+
if (error instanceof Error) {
|
86
|
+
return Failure.create(error);
|
87
|
+
}
|
88
|
+
throw error;
|
89
|
+
}
|
90
|
+
}
|
66
91
|
}
|
67
92
|
//# sourceMappingURL=SecurityMongoDbCollection.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SecurityMongoDbCollection.js","sourceRoot":"","sources":["../../src/data-store/SecurityMongoDbCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,
|
1
|
+
{"version":3,"file":"SecurityMongoDbCollection.js","sourceRoot":"","sources":["../../src/data-store/SecurityMongoDbCollection.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@marketeer-intelligence/framework-device",
|
3
|
-
"version": "0.1.0-alpha.
|
3
|
+
"version": "0.1.0-alpha.8",
|
4
4
|
"description": "framework/device layer modules for marketeer-intelligence app",
|
5
5
|
"author": "juniorCitizen1978 <juniorCitizen1978@gmail.com>",
|
6
6
|
"private": false,
|