@tasenor/common-plugins 1.9.126 → 1.9.127
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/.turbo/turbo-build.log
CHANGED
package/.turbo/turbo-ci.log
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
|
-
> @tasenor/common-plugins@1.9.
|
|
2
|
+
> @tasenor/common-plugins@1.9.126 ci /home/wigy/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
|
|
3
3
|
> pnpm run lint
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> @tasenor/common-plugins@1.9.
|
|
6
|
+
> @tasenor/common-plugins@1.9.126 lint /home/wigy/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
|
|
7
7
|
> eslint 'src/**/*.{ts,tsx}' 'data/**/*.mjs'
|
|
8
8
|
|
|
@@ -32,11 +32,23 @@ interface TickerInfo {
|
|
|
32
32
|
* ...others done manually so far (need some source and conversion tool)...
|
|
33
33
|
*
|
|
34
34
|
* Note: there is useful tool to generate from CSV in `tasenor-bookkeeper/apps/cli/bin/convert-csv-to-map.mjs`.
|
|
35
|
+
*
|
|
36
|
+
* Data file is simply a mapping from ticker to its name. If the ticker has aliases, it can be expressed
|
|
37
|
+
* as an array like
|
|
38
|
+
* {
|
|
39
|
+
* ...
|
|
40
|
+
* "MAIN": ["Name of the main", "ALIAS1", "ALIAS2"]
|
|
41
|
+
* ...
|
|
42
|
+
* }
|
|
35
43
|
*/
|
|
36
44
|
declare class TickerData extends DataPlugin {
|
|
37
45
|
constructor();
|
|
38
46
|
queryBackend<T>(dataSet: string, query: typeof ALL | string): Promise<undefined | T>;
|
|
39
47
|
queryExchange(query: typeof ALL | string): Promise<undefined | ExchangeInfo | ExchangeInfo[]>;
|
|
48
|
+
/**
|
|
49
|
+
* Fill in aliases.
|
|
50
|
+
*/
|
|
51
|
+
afterLoad<T>(fileName: string, data: Record<string, T>): Record<string, T>;
|
|
40
52
|
/**
|
|
41
53
|
* If the result is ambiquous, all results are returned.
|
|
42
54
|
*/
|
|
@@ -19,6 +19,14 @@ import { ALL, error } from '@tasenor/common';
|
|
|
19
19
|
* ...others done manually so far (need some source and conversion tool)...
|
|
20
20
|
*
|
|
21
21
|
* Note: there is useful tool to generate from CSV in `tasenor-bookkeeper/apps/cli/bin/convert-csv-to-map.mjs`.
|
|
22
|
+
*
|
|
23
|
+
* Data file is simply a mapping from ticker to its name. If the ticker has aliases, it can be expressed
|
|
24
|
+
* as an array like
|
|
25
|
+
* {
|
|
26
|
+
* ...
|
|
27
|
+
* "MAIN": ["Name of the main", "ALIAS1", "ALIAS2"]
|
|
28
|
+
* ...
|
|
29
|
+
* }
|
|
22
30
|
*/
|
|
23
31
|
class TickerData extends DataPlugin {
|
|
24
32
|
// TODO: Currency name data.
|
|
@@ -127,6 +135,25 @@ class TickerData extends DataPlugin {
|
|
|
127
135
|
}
|
|
128
136
|
return undefined;
|
|
129
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Fill in aliases.
|
|
140
|
+
*/
|
|
141
|
+
afterLoad(fileName, data) {
|
|
142
|
+
Object.keys(data).forEach(ticker => {
|
|
143
|
+
if (data[ticker] instanceof Array) {
|
|
144
|
+
for (const alias of data[ticker].splice(1)) {
|
|
145
|
+
if (data[`${alias}`] !== undefined) {
|
|
146
|
+
error(`${this.code}: Cannot re-use '${alias}' as an alias since it has already used as ${JSON.stringify(data[`${alias}`])}.`);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
data[`${alias}`] = data[ticker][0];
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
data[ticker] = data[ticker][0];
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
return data;
|
|
156
|
+
}
|
|
130
157
|
/**
|
|
131
158
|
* If the result is ambiquous, all results are returned.
|
|
132
159
|
*/
|
|
@@ -149,8 +176,6 @@ class TickerData extends DataPlugin {
|
|
|
149
176
|
error(`${this.code}: Invalid type '${type}' when queried from exchange '${exchange}'.`);
|
|
150
177
|
return undefined;
|
|
151
178
|
}
|
|
152
|
-
// TODO: Alias support. Perhaps post-load hook and if instead of the company name we have
|
|
153
|
-
// ["Name of the company", "ALIAS1", "ALIAS2"] the aliases are taken from there.
|
|
154
179
|
const tickers = this.loadCached(ex.file);
|
|
155
180
|
if (tickers[ticker] === undefined) {
|
|
156
181
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/TickerData/backend/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,GAAG,EAAuB,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAiBjE
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/TickerData/backend/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tasenor/common-plugins",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.127",
|
|
4
4
|
"description": "Shared common plugins of Tasenor project",
|
|
5
5
|
"repository": "git@github.com:dataplugoy/tasenor-bookkeeper.git",
|
|
6
6
|
"author": "Tommi Ronkainen <tommi.ronkainen@gmail.com>",
|
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
"dayjs": "1.10.8",
|
|
14
14
|
"sprintf-js": "^1.1.2",
|
|
15
15
|
"tsx": "3.12.7",
|
|
16
|
-
"@tasenor/common": "1.9.
|
|
17
|
-
"@tasenor/common-ui": "1.9.
|
|
18
|
-
"@tasenor/common-node": "1.9.
|
|
16
|
+
"@tasenor/common": "1.9.127",
|
|
17
|
+
"@tasenor/common-ui": "1.9.127",
|
|
18
|
+
"@tasenor/common-node": "1.9.127"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@mui/icons-material": "^5.14.1",
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
"react-i18next": "^13.0.2",
|
|
32
32
|
"react-router-dom": "^6.14.1",
|
|
33
33
|
"typescript": "^5.1.6",
|
|
34
|
-
"
|
|
35
|
-
"
|
|
34
|
+
"@tasenor/config": "1.9.127",
|
|
35
|
+
"eslint-config-tasenor": "0.0.0"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
38
|
"@mui/icons-material": "^5.14.1",
|
|
@@ -35,6 +35,14 @@ interface TickerInfo {
|
|
|
35
35
|
* ...others done manually so far (need some source and conversion tool)...
|
|
36
36
|
*
|
|
37
37
|
* Note: there is useful tool to generate from CSV in `tasenor-bookkeeper/apps/cli/bin/convert-csv-to-map.mjs`.
|
|
38
|
+
*
|
|
39
|
+
* Data file is simply a mapping from ticker to its name. If the ticker has aliases, it can be expressed
|
|
40
|
+
* as an array like
|
|
41
|
+
* {
|
|
42
|
+
* ...
|
|
43
|
+
* "MAIN": ["Name of the main", "ALIAS1", "ALIAS2"]
|
|
44
|
+
* ...
|
|
45
|
+
* }
|
|
38
46
|
*/
|
|
39
47
|
class TickerData extends DataPlugin {
|
|
40
48
|
|
|
@@ -151,6 +159,26 @@ class TickerData extends DataPlugin {
|
|
|
151
159
|
return undefined
|
|
152
160
|
}
|
|
153
161
|
|
|
162
|
+
/**
|
|
163
|
+
* Fill in aliases.
|
|
164
|
+
*/
|
|
165
|
+
afterLoad<T>(fileName: string, data: Record<string, T>): Record<string, T> {
|
|
166
|
+
Object.keys(data).forEach(ticker => {
|
|
167
|
+
if (data[ticker] instanceof Array) {
|
|
168
|
+
for (const alias of (data[ticker] as Array<unknown>).splice(1)) {
|
|
169
|
+
if (data[`${alias}`] !== undefined) {
|
|
170
|
+
error(`${this.code}: Cannot re-use '${alias}' as an alias since it has already used as ${JSON.stringify(data[`${alias}`])}.`)
|
|
171
|
+
} else {
|
|
172
|
+
data[`${alias}`] = data[ticker][0]
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
data[ticker] = data[ticker][0]
|
|
176
|
+
}
|
|
177
|
+
})
|
|
178
|
+
|
|
179
|
+
return data
|
|
180
|
+
}
|
|
181
|
+
|
|
154
182
|
/**
|
|
155
183
|
* If the result is ambiquous, all results are returned.
|
|
156
184
|
*/
|
|
@@ -175,8 +203,6 @@ class TickerData extends DataPlugin {
|
|
|
175
203
|
error(`${this.code}: Invalid type '${type}' when queried from exchange '${exchange}'.`)
|
|
176
204
|
return undefined
|
|
177
205
|
}
|
|
178
|
-
// TODO: Alias support. Perhaps post-load hook and if instead of the company name we have
|
|
179
|
-
// ["Name of the company", "ALIAS1", "ALIAS2"] the aliases are taken from there.
|
|
180
206
|
const tickers: Record<string, string> = this.loadCached(ex.file)
|
|
181
207
|
if (tickers[ticker] === undefined) {
|
|
182
208
|
return undefined
|