@0xtorch/csv 0.0.28 → 0.0.30
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/_cjs/parseCsvFileToActions.js +9 -6
- package/_cjs/parseCsvFileToActions.js.map +1 -1
- package/_cjs/parseRowsToActions/index.js +29 -7
- package/_cjs/parseRowsToActions/index.js.map +1 -1
- package/_cjs/schemas/formatterTypes.js +3 -3
- package/_cjs/schemas/formatterTypes.js.map +1 -1
- package/_esm/parseCsvFileToActions.js +9 -6
- package/_esm/parseCsvFileToActions.js.map +1 -1
- package/_esm/parseRowsToActions/index.js +30 -8
- package/_esm/parseRowsToActions/index.js.map +1 -1
- package/_esm/schemas/formatterTypes.js +3 -3
- package/_esm/schemas/formatterTypes.js.map +1 -1
- package/_types/parseCsvFileToActions.d.ts +5 -1
- package/_types/parseCsvFileToActions.d.ts.map +1 -1
- package/_types/parseRowsToActions/index.d.ts +5 -1
- package/_types/parseRowsToActions/index.d.ts.map +1 -1
- package/package.json +3 -3
- package/parseCsvFileToActions.ts +15 -7
- package/parseRowsToActions/index.ts +52 -34
- package/schemas/formatterTypes.ts +3 -3
|
@@ -12,7 +12,7 @@ const parseCsvFileToActions = async ({ file, format: { service, formatter, parse
|
|
|
12
12
|
rows: (0, parseCsvText_1.parseCsvText)(text),
|
|
13
13
|
formatter,
|
|
14
14
|
});
|
|
15
|
-
const
|
|
15
|
+
const result = (0, parseRowsToActions_1.parseRowsToActions)({
|
|
16
16
|
rows,
|
|
17
17
|
parser,
|
|
18
18
|
symbolAssetMap,
|
|
@@ -21,11 +21,14 @@ const parseCsvFileToActions = async ({ file, format: { service, formatter, parse
|
|
|
21
21
|
fiats,
|
|
22
22
|
errorLogger,
|
|
23
23
|
});
|
|
24
|
-
return
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
return {
|
|
25
|
+
actions: await (0, core_1.setActionPrices)({
|
|
26
|
+
dataSource: cryptoCurrencyDataSource,
|
|
27
|
+
actions: result.actions,
|
|
28
|
+
fiat,
|
|
29
|
+
}),
|
|
30
|
+
ignoreRowCount: result.ignoreRowCount,
|
|
31
|
+
};
|
|
29
32
|
};
|
|
30
33
|
exports.parseCsvFileToActions = parseCsvFileToActions;
|
|
31
34
|
//# sourceMappingURL=parseCsvFileToActions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseCsvFileToActions.js","sourceRoot":"","sources":["../parseCsvFileToActions.ts"],"names":[],"mappings":";;;AAAA,wCAMsB;AACtB,mDAA+C;AAC/C,6DAAyD;AACzD,iDAA6C;AAC7C,6DAAyD;
|
|
1
|
+
{"version":3,"file":"parseCsvFileToActions.js","sourceRoot":"","sources":["../parseCsvFileToActions.ts"],"names":[],"mappings":";;;AAAA,wCAMsB;AACtB,mDAA+C;AAC/C,6DAAyD;AACzD,iDAA6C;AAC7C,6DAAyD;AAkBlD,MAAM,qBAAqB,GAAG,KAAK,EAAE,EAC1C,IAAI,EACJ,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,EACtD,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,wBAAwB,EACxB,WAAW,GACqB,EAA6C,EAAE;IAC/E,MAAM,IAAI,GAAG,MAAM,IAAA,uCAAkB,EAAC,IAAI,CAAC,CAAA;IAC3C,MAAM,IAAI,GAAG,IAAA,6BAAa,EAAC;QACzB,IAAI,EAAE,IAAA,2BAAY,EAAC,IAAI,CAAC;QACxB,SAAS;KACV,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,IAAA,uCAAkB,EAAC;QAChC,IAAI;QACJ,MAAM;QACN,cAAc;QACd,OAAO;QACP,QAAQ;QACR,KAAK;QACL,WAAW;KACZ,CAAC,CAAA;IACF,OAAO;QACL,OAAO,EAAE,MAAM,IAAA,sBAAe,EAAC;YAC7B,UAAU,EAAE,wBAAwB;YACpC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI;SACL,CAAC;QACF,cAAc,EAAE,MAAM,CAAC,cAAc;KACtC,CAAA;AACH,CAAC,CAAA;AA/BY,QAAA,qBAAqB,yBA+BjC"}
|
|
@@ -4,12 +4,13 @@ exports.parseRowsToActions = void 0;
|
|
|
4
4
|
const key_1 = require("./key");
|
|
5
5
|
const parse_1 = require("./parse");
|
|
6
6
|
const parseRowsToActions = ({ rows, parser, symbolAssetMap, service, cryptoes, fiats, errorLogger, }) => {
|
|
7
|
+
let ignoreRowCount = 0;
|
|
7
8
|
const actions = [];
|
|
8
9
|
let currentKeyValue;
|
|
9
10
|
let currentRows = [];
|
|
10
11
|
for (const row of rows) {
|
|
11
12
|
if (parser.key === undefined) {
|
|
12
|
-
|
|
13
|
+
const rowActions = parseTargetRowsToActions({
|
|
13
14
|
rows: [row],
|
|
14
15
|
parsers: parser.parsers,
|
|
15
16
|
symbolAssetMap,
|
|
@@ -17,38 +18,59 @@ const parseRowsToActions = ({ rows, parser, symbolAssetMap, service, cryptoes, f
|
|
|
17
18
|
cryptoes,
|
|
18
19
|
fiats,
|
|
19
20
|
errorLogger,
|
|
20
|
-
})
|
|
21
|
+
});
|
|
22
|
+
if (rowActions.length === 0) {
|
|
23
|
+
ignoreRowCount += 1;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
actions.push(...rowActions);
|
|
27
|
+
}
|
|
21
28
|
continue;
|
|
22
29
|
}
|
|
23
30
|
const keyValue = (0, key_1.createKeyValue)({ row, key: parser.key });
|
|
24
31
|
if (currentKeyValue !== undefined &&
|
|
25
32
|
currentKeyValue !== keyValue &&
|
|
26
33
|
currentRows.length > 0) {
|
|
27
|
-
|
|
34
|
+
const keyActions = parseTargetRowsToActions({
|
|
28
35
|
rows: currentRows,
|
|
29
36
|
parsers: parser.parsers,
|
|
30
37
|
symbolAssetMap,
|
|
31
38
|
service,
|
|
32
39
|
cryptoes,
|
|
33
40
|
fiats,
|
|
34
|
-
})
|
|
41
|
+
});
|
|
42
|
+
if (keyActions.length === 0) {
|
|
43
|
+
ignoreRowCount += currentRows.length;
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
actions.push(...keyActions);
|
|
47
|
+
}
|
|
35
48
|
currentRows = [];
|
|
36
49
|
}
|
|
37
50
|
currentKeyValue = keyValue;
|
|
38
51
|
currentRows.push(row);
|
|
39
52
|
}
|
|
40
53
|
if (currentRows.length > 0) {
|
|
41
|
-
|
|
54
|
+
const keyActions = parseTargetRowsToActions({
|
|
42
55
|
rows: currentRows,
|
|
43
56
|
parsers: parser.parsers,
|
|
44
57
|
symbolAssetMap,
|
|
45
58
|
service,
|
|
46
59
|
cryptoes,
|
|
47
60
|
fiats,
|
|
48
|
-
})
|
|
61
|
+
});
|
|
62
|
+
if (keyActions.length === 0) {
|
|
63
|
+
ignoreRowCount += currentRows.length;
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
actions.push(...keyActions);
|
|
67
|
+
}
|
|
49
68
|
currentRows = [];
|
|
50
69
|
}
|
|
51
|
-
return
|
|
70
|
+
return {
|
|
71
|
+
actions: resetActionOrders(actions),
|
|
72
|
+
ignoreRowCount,
|
|
73
|
+
};
|
|
52
74
|
};
|
|
53
75
|
exports.parseRowsToActions = parseRowsToActions;
|
|
54
76
|
const parseTargetRowsToActions = (parameters) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../parseRowsToActions/index.ts"],"names":[],"mappings":";;;AAIA,+BAAsC;AACtC,mCAAoD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../parseRowsToActions/index.ts"],"names":[],"mappings":";;;AAIA,+BAAsC;AACtC,mCAAoD;AAiB7C,MAAM,kBAAkB,GAAG,CAAC,EACjC,IAAI,EACJ,MAAM,EACN,cAAc,EACd,OAAO,EACP,QAAQ,EACR,KAAK,EACL,WAAW,GACkB,EAAiC,EAAE;IAEhE,IAAI,cAAc,GAAG,CAAC,CAAA;IACtB,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,IAAI,eAAmC,CAAA;IACvC,IAAI,WAAW,GAAmB,EAAE,CAAA;IACpC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,wBAAwB,CAAC;gBAC1C,IAAI,EAAE,CAAC,GAAG,CAAC;gBACX,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,cAAc;gBACd,OAAO;gBACP,QAAQ;gBACR,KAAK;gBACL,WAAW;aACZ,CAAC,CAAA;YACF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,cAAc,IAAI,CAAC,CAAA;YACrB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAA;YAC7B,CAAC;YACD,SAAQ;QACV,CAAC;QAED,MAAM,QAAQ,GAAG,IAAA,oBAAc,EAAC,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAA;QACzD,IACE,eAAe,KAAK,SAAS;YAC7B,eAAe,KAAK,QAAQ;YAC5B,WAAW,CAAC,MAAM,GAAG,CAAC,EACtB,CAAC;YACD,MAAM,UAAU,GAAG,wBAAwB,CAAC;gBAC1C,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,cAAc;gBACd,OAAO;gBACP,QAAQ;gBACR,KAAK;aACN,CAAC,CAAA;YACF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,cAAc,IAAI,WAAW,CAAC,MAAM,CAAA;YACtC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAA;YAC7B,CAAC;YACD,WAAW,GAAG,EAAE,CAAA;QAClB,CAAC;QACD,eAAe,GAAG,QAAQ,CAAA;QAC1B,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACvB,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,wBAAwB,CAAC;YAC1C,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,cAAc;YACd,OAAO;YACP,QAAQ;YACR,KAAK;SACN,CAAC,CAAA;QACF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,cAAc,IAAI,WAAW,CAAC,MAAM,CAAA;QACtC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAA;QAC7B,CAAC;QACD,WAAW,GAAG,EAAE,CAAA;IAClB,CAAC;IAED,OAAO;QAEL,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC;QACnC,cAAc;KACf,CAAA;AACH,CAAC,CAAA;AA/EY,QAAA,kBAAkB,sBA+E9B;AAYD,MAAM,wBAAwB,GAAG,CAC/B,UAA8C,EAC3B,EAAE;IACrB,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,eAAe,EAAE,GAAG,UAAU,CAAA;IAC/D,MAAM,UAAU,GAAa,EAAE,CAAA;IAC/B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAA,kCAA0B,EAAC,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC,CAAA;YAC1E,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,SAAQ;YACV,CAAC;YACD,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAA;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,WAAW,CAAC,KAAK,CAAC,CAAA;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,WAAW,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzD,WAAW,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAA;IAC7C,CAAC;IACD,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CAAC,OAA0B,EAAqB,EAAE;IAC1E,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC9C,MAAM,cAAc,GAAa,EAAE,CAAA;IACnC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAClD,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;QAChD,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;IAC5C,CAAC;IACD,OAAO,cAAc,CAAA;AACvB,CAAC,CAAA"}
|
|
@@ -7,15 +7,15 @@ exports.blankTextSchema = zod_1.z.literal('').transform(() => undefined);
|
|
|
7
7
|
exports.stringTextSchema = zod_1.z.string();
|
|
8
8
|
exports.bigDecimalTextSchema = zod_1.z
|
|
9
9
|
.string()
|
|
10
|
-
.regex(/^(" *)
|
|
10
|
+
.regex(/^(" *)?[-+]?[\d,]+(\.\d+)?([eE][-+]?\d+)?( *")?$/)
|
|
11
11
|
.transform((v) => (0, big_decimal_1.createBigDecimal)(v.replaceAll('"', '').trim()));
|
|
12
12
|
exports.bigDecimalPositiveTextSchema = zod_1.z
|
|
13
13
|
.string()
|
|
14
|
-
.regex(/^(" *)?[\d,]+(\.\d+)?( *")?$/)
|
|
14
|
+
.regex(/^(" *)?[\d,]+(\.\d+)?([eE][-+]?\d+)?( *")?$/)
|
|
15
15
|
.transform((v) => (0, big_decimal_1.createBigDecimal)(v.replaceAll('"', '').trim()));
|
|
16
16
|
exports.bigDecimalNegativeTextSchema = zod_1.z
|
|
17
17
|
.string()
|
|
18
|
-
.regex(/^(" *)?-[\d,]+(\.\d+)?( *")?$/)
|
|
18
|
+
.regex(/^(" *)?-[\d,]+(\.\d+)?([eE][-+]?\d+)?( *")?$/)
|
|
19
19
|
.transform((v) => (0, big_decimal_1.createBigDecimal)(v.replaceAll('"', '').trim()));
|
|
20
20
|
exports.iso8601TextSchema = zod_1.z
|
|
21
21
|
.string()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatterTypes.js","sourceRoot":"","sources":["../../schemas/formatterTypes.ts"],"names":[],"mappings":";;;AAAA,sDAAuD;AACvD,6BAAuB;AAEV,QAAA,eAAe,GAAG,OAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;AAE1D,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,EAAE,CAAA;AAE7B,QAAA,oBAAoB,GAAG,OAAC;KAClC,MAAM,EAAE;KACR,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"formatterTypes.js","sourceRoot":"","sources":["../../schemas/formatterTypes.ts"],"names":[],"mappings":";;;AAAA,sDAAuD;AACvD,6BAAuB;AAEV,QAAA,eAAe,GAAG,OAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;AAE1D,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,EAAE,CAAA;AAE7B,QAAA,oBAAoB,GAAG,OAAC;KAClC,MAAM,EAAE;KACR,KAAK,CAAC,kDAAkD,CAAC;KACzD,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,8BAAgB,EAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAEtD,QAAA,4BAA4B,GAAG,OAAC;KAC1C,MAAM,EAAE;KACR,KAAK,CAAC,6CAA6C,CAAC;KACpD,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,8BAAgB,EAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAEtD,QAAA,4BAA4B,GAAG,OAAC;KAC1C,MAAM,EAAE;KACR,KAAK,CAAC,8CAA8C,CAAC;KACrD,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,8BAAgB,EAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAEtD,QAAA,iBAAiB,GAAG,OAAC;KAC/B,MAAM,EAAE;KACR,KAAK,CACJ,mHAAmH,CACpH;KACA,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AAE7B,QAAA,mBAAmB,GAAG,OAAC;KACjC,MAAM,EAAE;KACR,KAAK,CAAC,mEAAmE,CAAC;KAC1E,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AAG5D,QAAA,oBAAoB,GAAG,OAAC;KAClC,MAAM,EAAE;KACR,KAAK,CAAC,oEAAoE,CAAC;KAC3E,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AAExC,QAAA,oBAAoB,GAAG,OAAC,CAAC,KAAK,CAAC;IAC1C,uBAAe;IACf,wBAAgB;IAChB,4BAAoB;IACpB,oCAA4B;IAC5B,oCAA4B;IAC5B,yBAAiB;IACjB,2BAAmB;IACnB,4BAAoB;CACrB,CAAC,CAAA"}
|
|
@@ -9,7 +9,7 @@ export const parseCsvFileToActions = async ({ file, format: { service, formatter
|
|
|
9
9
|
rows: parseCsvText(text),
|
|
10
10
|
formatter,
|
|
11
11
|
});
|
|
12
|
-
const
|
|
12
|
+
const result = parseRowsToActions({
|
|
13
13
|
rows,
|
|
14
14
|
parser,
|
|
15
15
|
symbolAssetMap,
|
|
@@ -18,10 +18,13 @@ export const parseCsvFileToActions = async ({ file, format: { service, formatter
|
|
|
18
18
|
fiats,
|
|
19
19
|
errorLogger,
|
|
20
20
|
});
|
|
21
|
-
return
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
return {
|
|
22
|
+
actions: await setActionPrices({
|
|
23
|
+
dataSource: cryptoCurrencyDataSource,
|
|
24
|
+
actions: result.actions,
|
|
25
|
+
fiat,
|
|
26
|
+
}),
|
|
27
|
+
ignoreRowCount: result.ignoreRowCount,
|
|
28
|
+
};
|
|
26
29
|
};
|
|
27
30
|
//# sourceMappingURL=parseCsvFileToActions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseCsvFileToActions.js","sourceRoot":"","sources":["../parseCsvFileToActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,eAAe,GAChB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"parseCsvFileToActions.js","sourceRoot":"","sources":["../parseCsvFileToActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,eAAe,GAChB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAkBzD,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,EAC1C,IAAI,EACJ,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,EACtD,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,wBAAwB,EACxB,WAAW,GACqB,EAA6C,EAAE;IAC/E,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAC3C,MAAM,IAAI,GAAG,aAAa,CAAC;QACzB,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;QACxB,SAAS;KACV,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,kBAAkB,CAAC;QAChC,IAAI;QACJ,MAAM;QACN,cAAc;QACd,OAAO;QACP,QAAQ;QACR,KAAK;QACL,WAAW;KACZ,CAAC,CAAA;IACF,OAAO;QACL,OAAO,EAAE,MAAM,eAAe,CAAC;YAC7B,UAAU,EAAE,wBAAwB;YACpC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI;SACL,CAAC;QACF,cAAc,EAAE,MAAM,CAAC,cAAc;KACtC,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -2,12 +2,13 @@ import { createKeyValue } from './key';
|
|
|
2
2
|
import { parseRowsToActionsByParser } from './parse';
|
|
3
3
|
export const parseRowsToActions = ({ rows, parser, symbolAssetMap, service, cryptoes, fiats, errorLogger, }) => {
|
|
4
4
|
// key があれば 同一 keyValue の row をまとめて処理・key がなければ row 毎に処理して action 生成
|
|
5
|
+
let ignoreRowCount = 0;
|
|
5
6
|
const actions = [];
|
|
6
7
|
let currentKeyValue;
|
|
7
8
|
let currentRows = [];
|
|
8
9
|
for (const row of rows) {
|
|
9
10
|
if (parser.key === undefined) {
|
|
10
|
-
|
|
11
|
+
const rowActions = parseTargetRowsToActions({
|
|
11
12
|
rows: [row],
|
|
12
13
|
parsers: parser.parsers,
|
|
13
14
|
symbolAssetMap,
|
|
@@ -15,39 +16,60 @@ export const parseRowsToActions = ({ rows, parser, symbolAssetMap, service, cryp
|
|
|
15
16
|
cryptoes,
|
|
16
17
|
fiats,
|
|
17
18
|
errorLogger,
|
|
18
|
-
})
|
|
19
|
+
});
|
|
20
|
+
if (rowActions.length === 0) {
|
|
21
|
+
ignoreRowCount += 1;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
actions.push(...rowActions);
|
|
25
|
+
}
|
|
19
26
|
continue;
|
|
20
27
|
}
|
|
21
28
|
const keyValue = createKeyValue({ row, key: parser.key });
|
|
22
29
|
if (currentKeyValue !== undefined &&
|
|
23
30
|
currentKeyValue !== keyValue &&
|
|
24
31
|
currentRows.length > 0) {
|
|
25
|
-
|
|
32
|
+
const keyActions = parseTargetRowsToActions({
|
|
26
33
|
rows: currentRows,
|
|
27
34
|
parsers: parser.parsers,
|
|
28
35
|
symbolAssetMap,
|
|
29
36
|
service,
|
|
30
37
|
cryptoes,
|
|
31
38
|
fiats,
|
|
32
|
-
})
|
|
39
|
+
});
|
|
40
|
+
if (keyActions.length === 0) {
|
|
41
|
+
ignoreRowCount += currentRows.length;
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
actions.push(...keyActions);
|
|
45
|
+
}
|
|
33
46
|
currentRows = [];
|
|
34
47
|
}
|
|
35
48
|
currentKeyValue = keyValue;
|
|
36
49
|
currentRows.push(row);
|
|
37
50
|
}
|
|
38
51
|
if (currentRows.length > 0) {
|
|
39
|
-
|
|
52
|
+
const keyActions = parseTargetRowsToActions({
|
|
40
53
|
rows: currentRows,
|
|
41
54
|
parsers: parser.parsers,
|
|
42
55
|
symbolAssetMap,
|
|
43
56
|
service,
|
|
44
57
|
cryptoes,
|
|
45
58
|
fiats,
|
|
46
|
-
})
|
|
59
|
+
});
|
|
60
|
+
if (keyActions.length === 0) {
|
|
61
|
+
ignoreRowCount += currentRows.length;
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
actions.push(...keyActions);
|
|
65
|
+
}
|
|
47
66
|
currentRows = [];
|
|
48
67
|
}
|
|
49
|
-
|
|
50
|
-
|
|
68
|
+
return {
|
|
69
|
+
// 同一 source で order が被らないように order を再設定
|
|
70
|
+
actions: resetActionOrders(actions),
|
|
71
|
+
ignoreRowCount,
|
|
72
|
+
};
|
|
51
73
|
};
|
|
52
74
|
const parseTargetRowsToActions = (parameters) => {
|
|
53
75
|
const { parsers, errorLogger, ...otherParameters } = parameters;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../parseRowsToActions/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../parseRowsToActions/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,15 +4,15 @@ export const blankTextSchema = z.literal('').transform(() => undefined);
|
|
|
4
4
|
export const stringTextSchema = z.string();
|
|
5
5
|
export const bigDecimalTextSchema = z
|
|
6
6
|
.string()
|
|
7
|
-
.regex(/^(" *)
|
|
7
|
+
.regex(/^(" *)?[-+]?[\d,]+(\.\d+)?([eE][-+]?\d+)?( *")?$/)
|
|
8
8
|
.transform((v) => createBigDecimal(v.replaceAll('"', '').trim()));
|
|
9
9
|
export const bigDecimalPositiveTextSchema = z
|
|
10
10
|
.string()
|
|
11
|
-
.regex(/^(" *)?[\d,]+(\.\d+)?( *")?$/)
|
|
11
|
+
.regex(/^(" *)?[\d,]+(\.\d+)?([eE][-+]?\d+)?( *")?$/)
|
|
12
12
|
.transform((v) => createBigDecimal(v.replaceAll('"', '').trim()));
|
|
13
13
|
export const bigDecimalNegativeTextSchema = z
|
|
14
14
|
.string()
|
|
15
|
-
.regex(/^(" *)?-[\d,]+(\.\d+)?( *")?$/)
|
|
15
|
+
.regex(/^(" *)?-[\d,]+(\.\d+)?([eE][-+]?\d+)?( *")?$/)
|
|
16
16
|
.transform((v) => createBigDecimal(v.replaceAll('"', '').trim()));
|
|
17
17
|
export const iso8601TextSchema = z
|
|
18
18
|
.string()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatterTypes.js","sourceRoot":"","sources":["../../schemas/formatterTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;AAEvE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAA;AAE1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,EAAE;KACR,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"formatterTypes.js","sourceRoot":"","sources":["../../schemas/formatterTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;AAEvE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAA;AAE1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,EAAE;KACR,KAAK,CAAC,kDAAkD,CAAC;KACzD,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAEnE,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC1C,MAAM,EAAE;KACR,KAAK,CAAC,6CAA6C,CAAC;KACpD,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAEnE,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC1C,MAAM,EAAE;KACR,KAAK,CAAC,8CAA8C,CAAC;KACrD,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAEnE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,EAAE;KACR,KAAK,CACJ,mHAAmH,CACpH;KACA,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AAE1C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC;KACjC,MAAM,EAAE;KACR,KAAK,CAAC,mEAAmE,CAAC;KAC1E,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AAEzE,+BAA+B;AAC/B,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,EAAE;KACR,KAAK,CAAC,oEAAoE,CAAC;KAC3E,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AAErD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC;IAC1C,eAAe;IACf,gBAAgB;IAChB,oBAAoB;IACpB,4BAA4B;IAC5B,4BAA4B;IAC5B,iBAAiB;IACjB,mBAAmB;IACnB,oBAAoB;CACrB,CAAC,CAAA"}
|
|
@@ -9,6 +9,10 @@ type ParseCsvFileToActionsParameters = {
|
|
|
9
9
|
cryptoCurrencyDataSource: CryptoCurrencyDataSource;
|
|
10
10
|
errorLogger?: (error: unknown) => void;
|
|
11
11
|
};
|
|
12
|
-
|
|
12
|
+
type ParseCsvFileToActionsReturnTypes = {
|
|
13
|
+
actions: readonly Action[];
|
|
14
|
+
ignoreRowCount: number;
|
|
15
|
+
};
|
|
16
|
+
export declare const parseCsvFileToActions: ({ file, format: { service, formatter, parser, symbolAssetMap }, cryptoes, fiats, fiat, cryptoCurrencyDataSource, errorLogger, }: ParseCsvFileToActionsParameters) => Promise<ParseCsvFileToActionsReturnTypes>;
|
|
13
17
|
export {};
|
|
14
18
|
//# sourceMappingURL=parseCsvFileToActions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseCsvFileToActions.d.ts","sourceRoot":"","sources":["../parseCsvFileToActions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EACX,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EAElB,MAAM,eAAe,CAAA;AAKtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC,KAAK,+BAA+B,GAAG;IACrC,IAAI,EAAE,IAAI,CAAA;IACV,MAAM,EAAE,SAAS,CAAA;IACjB,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAA;IACnC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAA;IAC9B,IAAI,EAAE,YAAY,CAAA;IAClB,wBAAwB,EAAE,wBAAwB,CAAA;IAClD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CACvC,CAAA;AAED,eAAO,MAAM,qBAAqB,oIAQ/B,+BAA+B,KAAG,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"parseCsvFileToActions.d.ts","sourceRoot":"","sources":["../parseCsvFileToActions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EACX,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EAElB,MAAM,eAAe,CAAA;AAKtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC,KAAK,+BAA+B,GAAG;IACrC,IAAI,EAAE,IAAI,CAAA;IACV,MAAM,EAAE,SAAS,CAAA;IACjB,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAA;IACnC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAA;IAC9B,IAAI,EAAE,YAAY,CAAA;IAClB,wBAAwB,EAAE,wBAAwB,CAAA;IAClD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CACvC,CAAA;AAED,KAAK,gCAAgC,GAAG;IACtC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IAC1B,cAAc,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,qBAAqB,oIAQ/B,+BAA+B,KAAG,OAAO,CAAC,gCAAgC,CAuB5E,CAAA"}
|
|
@@ -13,6 +13,10 @@ type ParseRowsToActionsParameters = {
|
|
|
13
13
|
fiats: readonly FiatCurrency[];
|
|
14
14
|
errorLogger?: (error: unknown) => void;
|
|
15
15
|
};
|
|
16
|
-
|
|
16
|
+
type ParseRowsToActionsReturnTypes = {
|
|
17
|
+
actions: readonly Action[];
|
|
18
|
+
ignoreRowCount: number;
|
|
19
|
+
};
|
|
20
|
+
export declare const parseRowsToActions: ({ rows, parser, symbolAssetMap, service, cryptoes, fiats, errorLogger, }: ParseRowsToActionsParameters) => ParseRowsToActionsReturnTypes;
|
|
17
21
|
export {};
|
|
18
22
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../parseRowsToActions/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACzE,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,EAAgB,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAI5C,KAAK,4BAA4B,GAAG;IAClC,IAAI,EAAE,SAAS,YAAY,EAAE,CAAA;IAC7B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;IAC5C,cAAc,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;IACtD,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAA;IACnC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAA;IAC9B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CACvC,CAAA;AAED,eAAO,MAAM,kBAAkB,6EAQ5B,4BAA4B,KAAG,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../parseRowsToActions/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACzE,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,EAAgB,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAI5C,KAAK,4BAA4B,GAAG;IAClC,IAAI,EAAE,SAAS,YAAY,EAAE,CAAA;IAC7B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;IAC5C,cAAc,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;IACtD,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAA;IACnC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAA;IAC9B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CACvC,CAAA;AAED,KAAK,6BAA6B,GAAG;IACnC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IAC1B,cAAc,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,kBAAkB,6EAQ5B,4BAA4B,KAAG,6BAuEjC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@0xtorch/csv",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.30",
|
|
4
4
|
"description": "Cryptorch CSV extension",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cryptorch",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"!tsconfig.build.json"
|
|
35
35
|
],
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@0xtorch/big-decimal": "^0.0.
|
|
38
|
-
"@0xtorch/core": "^0.0.
|
|
37
|
+
"@0xtorch/big-decimal": "^0.0.12",
|
|
38
|
+
"@0xtorch/core": "^0.0.54",
|
|
39
39
|
"encoding-japanese": "^2.1.0",
|
|
40
40
|
"papaparse": "^5.4.1",
|
|
41
41
|
"zod": "^3.23.8"
|
package/parseCsvFileToActions.ts
CHANGED
|
@@ -21,6 +21,11 @@ type ParseCsvFileToActionsParameters = {
|
|
|
21
21
|
errorLogger?: (error: unknown) => void
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
type ParseCsvFileToActionsReturnTypes = {
|
|
25
|
+
actions: readonly Action[]
|
|
26
|
+
ignoreRowCount: number
|
|
27
|
+
}
|
|
28
|
+
|
|
24
29
|
export const parseCsvFileToActions = async ({
|
|
25
30
|
file,
|
|
26
31
|
format: { service, formatter, parser, symbolAssetMap },
|
|
@@ -29,13 +34,13 @@ export const parseCsvFileToActions = async ({
|
|
|
29
34
|
fiat,
|
|
30
35
|
cryptoCurrencyDataSource,
|
|
31
36
|
errorLogger,
|
|
32
|
-
}: ParseCsvFileToActionsParameters): Promise<
|
|
37
|
+
}: ParseCsvFileToActionsParameters): Promise<ParseCsvFileToActionsReturnTypes> => {
|
|
33
38
|
const text = await parseCsvFileToText(file)
|
|
34
39
|
const rows = formatCsvRows({
|
|
35
40
|
rows: parseCsvText(text),
|
|
36
41
|
formatter,
|
|
37
42
|
})
|
|
38
|
-
const
|
|
43
|
+
const result = parseRowsToActions({
|
|
39
44
|
rows,
|
|
40
45
|
parser,
|
|
41
46
|
symbolAssetMap,
|
|
@@ -44,9 +49,12 @@ export const parseCsvFileToActions = async ({
|
|
|
44
49
|
fiats,
|
|
45
50
|
errorLogger,
|
|
46
51
|
})
|
|
47
|
-
return
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
+
return {
|
|
53
|
+
actions: await setActionPrices({
|
|
54
|
+
dataSource: cryptoCurrencyDataSource,
|
|
55
|
+
actions: result.actions,
|
|
56
|
+
fiat,
|
|
57
|
+
}),
|
|
58
|
+
ignoreRowCount: result.ignoreRowCount,
|
|
59
|
+
}
|
|
52
60
|
}
|
|
@@ -15,6 +15,11 @@ type ParseRowsToActionsParameters = {
|
|
|
15
15
|
errorLogger?: (error: unknown) => void
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
+
type ParseRowsToActionsReturnTypes = {
|
|
19
|
+
actions: readonly Action[]
|
|
20
|
+
ignoreRowCount: number
|
|
21
|
+
}
|
|
22
|
+
|
|
18
23
|
export const parseRowsToActions = ({
|
|
19
24
|
rows,
|
|
20
25
|
parser,
|
|
@@ -23,24 +28,28 @@ export const parseRowsToActions = ({
|
|
|
23
28
|
cryptoes,
|
|
24
29
|
fiats,
|
|
25
30
|
errorLogger,
|
|
26
|
-
}: ParseRowsToActionsParameters):
|
|
31
|
+
}: ParseRowsToActionsParameters): ParseRowsToActionsReturnTypes => {
|
|
27
32
|
// key があれば 同一 keyValue の row をまとめて処理・key がなければ row 毎に処理して action 生成
|
|
33
|
+
let ignoreRowCount = 0
|
|
28
34
|
const actions: Action[] = []
|
|
29
35
|
let currentKeyValue: string | undefined
|
|
30
36
|
let currentRows: FormattedRow[] = []
|
|
31
37
|
for (const row of rows) {
|
|
32
38
|
if (parser.key === undefined) {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
const rowActions = parseTargetRowsToActions({
|
|
40
|
+
rows: [row],
|
|
41
|
+
parsers: parser.parsers,
|
|
42
|
+
symbolAssetMap,
|
|
43
|
+
service,
|
|
44
|
+
cryptoes,
|
|
45
|
+
fiats,
|
|
46
|
+
errorLogger,
|
|
47
|
+
})
|
|
48
|
+
if (rowActions.length === 0) {
|
|
49
|
+
ignoreRowCount += 1
|
|
50
|
+
} else {
|
|
51
|
+
actions.push(...rowActions)
|
|
52
|
+
}
|
|
44
53
|
continue
|
|
45
54
|
}
|
|
46
55
|
|
|
@@ -50,37 +59,46 @@ export const parseRowsToActions = ({
|
|
|
50
59
|
currentKeyValue !== keyValue &&
|
|
51
60
|
currentRows.length > 0
|
|
52
61
|
) {
|
|
53
|
-
|
|
54
|
-
...parseTargetRowsToActions({
|
|
55
|
-
rows: currentRows,
|
|
56
|
-
parsers: parser.parsers,
|
|
57
|
-
symbolAssetMap,
|
|
58
|
-
service,
|
|
59
|
-
cryptoes,
|
|
60
|
-
fiats,
|
|
61
|
-
}),
|
|
62
|
-
)
|
|
63
|
-
currentRows = []
|
|
64
|
-
}
|
|
65
|
-
currentKeyValue = keyValue
|
|
66
|
-
currentRows.push(row)
|
|
67
|
-
}
|
|
68
|
-
if (currentRows.length > 0) {
|
|
69
|
-
actions.push(
|
|
70
|
-
...parseTargetRowsToActions({
|
|
62
|
+
const keyActions = parseTargetRowsToActions({
|
|
71
63
|
rows: currentRows,
|
|
72
64
|
parsers: parser.parsers,
|
|
73
65
|
symbolAssetMap,
|
|
74
66
|
service,
|
|
75
67
|
cryptoes,
|
|
76
68
|
fiats,
|
|
77
|
-
})
|
|
78
|
-
|
|
69
|
+
})
|
|
70
|
+
if (keyActions.length === 0) {
|
|
71
|
+
ignoreRowCount += currentRows.length
|
|
72
|
+
} else {
|
|
73
|
+
actions.push(...keyActions)
|
|
74
|
+
}
|
|
75
|
+
currentRows = []
|
|
76
|
+
}
|
|
77
|
+
currentKeyValue = keyValue
|
|
78
|
+
currentRows.push(row)
|
|
79
|
+
}
|
|
80
|
+
if (currentRows.length > 0) {
|
|
81
|
+
const keyActions = parseTargetRowsToActions({
|
|
82
|
+
rows: currentRows,
|
|
83
|
+
parsers: parser.parsers,
|
|
84
|
+
symbolAssetMap,
|
|
85
|
+
service,
|
|
86
|
+
cryptoes,
|
|
87
|
+
fiats,
|
|
88
|
+
})
|
|
89
|
+
if (keyActions.length === 0) {
|
|
90
|
+
ignoreRowCount += currentRows.length
|
|
91
|
+
} else {
|
|
92
|
+
actions.push(...keyActions)
|
|
93
|
+
}
|
|
79
94
|
currentRows = []
|
|
80
95
|
}
|
|
81
96
|
|
|
82
|
-
|
|
83
|
-
|
|
97
|
+
return {
|
|
98
|
+
// 同一 source で order が被らないように order を再設定
|
|
99
|
+
actions: resetActionOrders(actions),
|
|
100
|
+
ignoreRowCount,
|
|
101
|
+
}
|
|
84
102
|
}
|
|
85
103
|
|
|
86
104
|
type ParseTargetRowsToActionsParameters = {
|
|
@@ -7,17 +7,17 @@ export const stringTextSchema = z.string()
|
|
|
7
7
|
|
|
8
8
|
export const bigDecimalTextSchema = z
|
|
9
9
|
.string()
|
|
10
|
-
.regex(/^(" *)
|
|
10
|
+
.regex(/^(" *)?[-+]?[\d,]+(\.\d+)?([eE][-+]?\d+)?( *")?$/)
|
|
11
11
|
.transform((v) => createBigDecimal(v.replaceAll('"', '').trim()))
|
|
12
12
|
|
|
13
13
|
export const bigDecimalPositiveTextSchema = z
|
|
14
14
|
.string()
|
|
15
|
-
.regex(/^(" *)?[\d,]+(\.\d+)?( *")?$/)
|
|
15
|
+
.regex(/^(" *)?[\d,]+(\.\d+)?([eE][-+]?\d+)?( *")?$/)
|
|
16
16
|
.transform((v) => createBigDecimal(v.replaceAll('"', '').trim()))
|
|
17
17
|
|
|
18
18
|
export const bigDecimalNegativeTextSchema = z
|
|
19
19
|
.string()
|
|
20
|
-
.regex(/^(" *)?-[\d,]+(\.\d+)?( *")?$/)
|
|
20
|
+
.regex(/^(" *)?-[\d,]+(\.\d+)?([eE][-+]?\d+)?( *")?$/)
|
|
21
21
|
.transform((v) => createBigDecimal(v.replaceAll('"', '').trim()))
|
|
22
22
|
|
|
23
23
|
export const iso8601TextSchema = z
|