tfose5-xlsx 2.1.1 → 3.2.1
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/README.md +1 -1
- package/dist/all-enum-text-no.d.ts +5 -0
- package/dist/converter-factory.d.ts +10 -0
- package/dist/converter-factory.js +18 -0
- package/dist/default-converter.d.ts +4 -0
- package/dist/default-converter.js +9 -0
- package/dist/i-converter.d.ts +3 -0
- package/dist/index.d.ts +1 -6
- package/dist/index.js +1 -6
- package/dist/parse-to-enum-json.d.ts +2 -0
- package/dist/parse-to-enum-json.js +120 -0
- package/dist/to-bool-converter.d.ts +4 -0
- package/dist/to-bool-converter.js +11 -0
- package/dist/to-enum-no-converter.d.ts +7 -0
- package/dist/to-enum-no-converter.js +18 -0
- package/dist/to-json-converter.d.ts +4 -0
- package/dist/to-json-converter.js +9 -0
- package/dist/to-number-converter.d.ts +4 -0
- package/dist/to-number-converter.js +9 -0
- package/dist/to-rewards-converter.d.ts +13 -0
- package/dist/to-rewards-converter.js +35 -0
- package/dist/to-unix-converter.d.ts +4 -0
- package/dist/to-unix-converter.js +13 -0
- package/dist/to-value-conditions-converter.d.ts +13 -0
- package/dist/to-value-conditions-converter.js +39 -0
- package/dist/to-value-converter.d.ts +11 -0
- package/dist/to-value-converter.js +17 -0
- package/dist/value.d.ts +1 -1
- package/package.json +5 -6
- package/dist/cell-parser-base.d.ts +0 -9
- package/dist/cell-parser-base.js +0 -20
- package/dist/cell-parser-parse-option.d.ts +0 -16
- package/dist/cell-to-array-parser.d.ts +0 -8
- package/dist/cell-to-array-parser.js +0 -22
- package/dist/cell-to-bool-parser.d.ts +0 -5
- package/dist/cell-to-bool-parser.js +0 -13
- package/dist/cell-to-enum-parser.d.ts +0 -5
- package/dist/cell-to-enum-parser.js +0 -16
- package/dist/cell-to-json-parser.d.ts +0 -5
- package/dist/cell-to-json-parser.js +0 -9
- package/dist/cell-to-number-parser.d.ts +0 -5
- package/dist/cell-to-number-parser.js +0 -9
- package/dist/cell-to-rewards-parser.d.ts +0 -11
- package/dist/cell-to-rewards-parser.js +0 -38
- package/dist/cell-to-string-parser.d.ts +0 -5
- package/dist/cell-to-string-parser.js +0 -9
- package/dist/cell-to-unix-parser.d.ts +0 -5
- package/dist/cell-to-unix-parser.js +0 -18
- package/dist/cell-to-value-conditions-parser.d.ts +0 -11
- package/dist/cell-to-value-conditions-parser.js +0 -38
- package/dist/cell-to-value-parser.d.ts +0 -10
- package/dist/cell-to-value-parser.js +0 -25
- package/dist/enum-item.d.ts +0 -6
- package/dist/enum-sheet-parser-base.d.ts +0 -6
- package/dist/enum-sheet-parser-base.js +0 -6
- package/dist/enum-sheet-parser-parse-option.d.ts +0 -7
- package/dist/enum-sheet-parser-parse-option.js +0 -2
- package/dist/enum-sheet-parser.d.ts +0 -12
- package/dist/enum-sheet-parser.js +0 -142
- package/dist/i-parser.d.ts +0 -3
- package/dist/i-parser.js +0 -2
- package/dist/mock.d.ts +0 -12
- package/dist/mock.js +0 -59
- package/dist/parser-factory.d.ts +0 -7
- package/dist/parser-factory.js +0 -15
- package/dist/work-book-parser-base.d.ts +0 -6
- package/dist/work-book-parser-base.js +0 -6
- package/dist/work-book-parser-parse-result.d.ts +0 -7
- package/dist/work-book-parser-parse-result.js +0 -2
- package/dist/work-book-parser.d.ts +0 -11
- package/dist/work-book-parser.js +0 -21
- /package/dist/{cell-parser-parse-option.js → all-enum-text-no.js} +0 -0
- /package/dist/{enum-item.js → i-converter.js} +0 -0
package/README.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
# 
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IConverter } from './i-converter';
|
|
2
|
+
export declare class ConverterFactory {
|
|
3
|
+
private m_ToEnumConverter;
|
|
4
|
+
private m_AllToOtherConverter;
|
|
5
|
+
private m_DefaultConverter;
|
|
6
|
+
constructor(m_ToEnumConverter: IConverter, m_AllToOtherConverter: {
|
|
7
|
+
[type: string]: IConverter;
|
|
8
|
+
});
|
|
9
|
+
build(type: string): IConverter;
|
|
10
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ConverterFactory = void 0;
|
|
4
|
+
const default_converter_1 = require("./default-converter");
|
|
5
|
+
class ConverterFactory {
|
|
6
|
+
constructor(m_ToEnumConverter, m_AllToOtherConverter) {
|
|
7
|
+
this.m_ToEnumConverter = m_ToEnumConverter;
|
|
8
|
+
this.m_AllToOtherConverter = m_AllToOtherConverter;
|
|
9
|
+
this.m_DefaultConverter = new default_converter_1.DefaultConverter();
|
|
10
|
+
}
|
|
11
|
+
build(type) {
|
|
12
|
+
var _a;
|
|
13
|
+
if (type.endsWith('Enum'))
|
|
14
|
+
return this.m_ToEnumConverter;
|
|
15
|
+
return (_a = this.m_AllToOtherConverter[type]) !== null && _a !== void 0 ? _a : this.m_DefaultConverter;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.ConverterFactory = ConverterFactory;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1 @@
|
|
|
1
|
-
export * from './
|
|
2
|
-
export * from './enum-sheet-parser-parse-option';
|
|
3
|
-
export * from './i-parser';
|
|
4
|
-
export * from './parser-factory';
|
|
5
|
-
export * from './work-book-parser-base';
|
|
6
|
-
export * from './work-book-parser-parse-result';
|
|
1
|
+
export * from './parse-to-enum-json';
|
package/dist/index.js
CHANGED
|
@@ -14,9 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
18
|
-
__exportStar(require("./enum-sheet-parser-parse-option"), exports);
|
|
19
|
-
__exportStar(require("./i-parser"), exports);
|
|
20
|
-
__exportStar(require("./parser-factory"), exports);
|
|
21
|
-
__exportStar(require("./work-book-parser-base"), exports);
|
|
22
|
-
__exportStar(require("./work-book-parser-parse-result"), exports);
|
|
17
|
+
__exportStar(require("./parse-to-enum-json"), exports);
|
|
@@ -0,0 +1,120 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.parseXlsxToEnumJson = parseXlsxToEnumJson;
|
|
13
|
+
const path_1 = require("path");
|
|
14
|
+
const tfose5_fs_1 = require("tfose5-fs");
|
|
15
|
+
const xlsx_1 = require("xlsx");
|
|
16
|
+
const converter_factory_1 = require("./converter-factory");
|
|
17
|
+
const to_bool_converter_1 = require("./to-bool-converter");
|
|
18
|
+
const to_enum_no_converter_1 = require("./to-enum-no-converter");
|
|
19
|
+
const to_json_converter_1 = require("./to-json-converter");
|
|
20
|
+
const to_number_converter_1 = require("./to-number-converter");
|
|
21
|
+
const to_rewards_converter_1 = require("./to-rewards-converter");
|
|
22
|
+
const to_unix_converter_1 = require("./to-unix-converter");
|
|
23
|
+
const to_value_converter_1 = require("./to-value-converter");
|
|
24
|
+
const to_value_conditions_converter_1 = require("./to-value-conditions-converter");
|
|
25
|
+
const allEnumTextNo = {};
|
|
26
|
+
let converterFactory;
|
|
27
|
+
function parseXlsxToEnumJson(fsFactory_1, dstDirPath_1, srcDirPath_1) {
|
|
28
|
+
return __awaiter(this, arguments, void 0, function* (fsFactory, dstDirPath, srcDirPath, topEnums = ['ValueEnum']) {
|
|
29
|
+
var _a;
|
|
30
|
+
converterFactory = new converter_factory_1.ConverterFactory(new to_enum_no_converter_1.ToEnumNoConverter(allEnumTextNo), {
|
|
31
|
+
bool: new to_bool_converter_1.ToBoolConverter(),
|
|
32
|
+
conditions: new to_value_conditions_converter_1.ToValueConditionsConverter(allEnumTextNo, topEnums[topEnums.length - 1]),
|
|
33
|
+
json: new to_json_converter_1.ToJsonConverter(),
|
|
34
|
+
number: new to_number_converter_1.ToNumberConverter(),
|
|
35
|
+
rewards: new to_rewards_converter_1.ToRewardsConverter(allEnumTextNo, topEnums[topEnums.length - 1]),
|
|
36
|
+
unit: new to_unix_converter_1.ToUnixConverter(),
|
|
37
|
+
value: new to_value_converter_1.ToValueConverter(allEnumTextNo, topEnums[topEnums.length - 1]),
|
|
38
|
+
});
|
|
39
|
+
const filePaths = [];
|
|
40
|
+
yield fsFactory.build(tfose5_fs_1.FsScanBase).scan({
|
|
41
|
+
fileAction: (filePath) => __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
const ok = topEnums.some(r => {
|
|
43
|
+
return filePath.includes(r);
|
|
44
|
+
});
|
|
45
|
+
if (ok)
|
|
46
|
+
return;
|
|
47
|
+
filePaths.push(filePath);
|
|
48
|
+
}),
|
|
49
|
+
path: srcDirPath,
|
|
50
|
+
});
|
|
51
|
+
topEnums.forEach(r => {
|
|
52
|
+
filePaths.unshift((0, path_1.join)(srcDirPath, r + '.xlsx'));
|
|
53
|
+
});
|
|
54
|
+
for (const r of filePaths) {
|
|
55
|
+
if (r.includes('~'))
|
|
56
|
+
continue;
|
|
57
|
+
const sheets = (0, xlsx_1.readFile)(r).Sheets;
|
|
58
|
+
const enumName = (0, path_1.basename)(r).replace('.xlsx', '');
|
|
59
|
+
const allOtherSheetRows = {};
|
|
60
|
+
for (const k in sheets) {
|
|
61
|
+
if (k == enumName)
|
|
62
|
+
continue;
|
|
63
|
+
allOtherSheetRows[k] = parseSheet(sheets[k]);
|
|
64
|
+
}
|
|
65
|
+
const enumItems = parseSheet(sheets[enumName], allOtherSheetRows);
|
|
66
|
+
if ((_a = enumItems[0]) === null || _a === void 0 ? void 0 : _a.text) {
|
|
67
|
+
allEnumTextNo[enumName] = enumItems.reduce((memo, r) => {
|
|
68
|
+
memo[r.text] = r.value;
|
|
69
|
+
return memo;
|
|
70
|
+
}, {});
|
|
71
|
+
}
|
|
72
|
+
yield fsFactory.build(tfose5_fs_1.FsWriteBase).write({
|
|
73
|
+
data: enumItems,
|
|
74
|
+
json: true,
|
|
75
|
+
path: (0, path_1.join)(dstDirPath, enumName.replace(/[A-Z]/g, (m, i) => {
|
|
76
|
+
return (i ? '-' : '') + m.toLowerCase();
|
|
77
|
+
}) + '.json'),
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
function parseSheet(sheet, allOtherSheetRows) {
|
|
83
|
+
return xlsx_1.utils.sheet_to_json(sheet).map((r, i) => {
|
|
84
|
+
return i ? Object.entries(r).reduce((memo, cr) => {
|
|
85
|
+
var _a, _b;
|
|
86
|
+
const [field, type, ext] = cr[0].split(':');
|
|
87
|
+
let fieldValue;
|
|
88
|
+
if (type == '#') {
|
|
89
|
+
fieldValue = ((_a = allOtherSheetRows[ext]) !== null && _a !== void 0 ? _a : []).filter(sr => {
|
|
90
|
+
return cr[1] == sr.group;
|
|
91
|
+
}).map(sr => {
|
|
92
|
+
delete sr.group;
|
|
93
|
+
delete sr.value;
|
|
94
|
+
return sr;
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
else if (type == 'array') {
|
|
98
|
+
fieldValue = cr[1].split('\r\n').map(sr => {
|
|
99
|
+
return converterFactory.build(ext).convert(sr, ext);
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
fieldValue = converterFactory.build(type).convert(cr[1], type);
|
|
104
|
+
}
|
|
105
|
+
const fieldParts = field.split('.');
|
|
106
|
+
let obj = memo;
|
|
107
|
+
while (fieldParts.length) {
|
|
108
|
+
const name = fieldParts.shift();
|
|
109
|
+
if (fieldParts.length) {
|
|
110
|
+
(_b = obj[name]) !== null && _b !== void 0 ? _b : (obj[name] = {});
|
|
111
|
+
obj = obj[name];
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
obj[name] = fieldValue;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return memo;
|
|
118
|
+
}, {}) : null;
|
|
119
|
+
}).filter(sr => sr);
|
|
120
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ToBoolConverter = void 0;
|
|
4
|
+
class ToBoolConverter {
|
|
5
|
+
convert(s) {
|
|
6
|
+
return typeof s == 'boolean' && s
|
|
7
|
+
|| typeof s == 'string' && s.toLowerCase() == 'true'
|
|
8
|
+
|| !!s;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.ToBoolConverter = ToBoolConverter;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AllEnumTextNo } from './all-enum-text-no';
|
|
2
|
+
import { IConverter } from './i-converter';
|
|
3
|
+
export declare class ToEnumNoConverter implements IConverter {
|
|
4
|
+
private m_AllEnumTextNo;
|
|
5
|
+
constructor(m_AllEnumTextNo: AllEnumTextNo);
|
|
6
|
+
convert(s: string, type: string): number;
|
|
7
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ToEnumNoConverter = void 0;
|
|
4
|
+
class ToEnumNoConverter {
|
|
5
|
+
constructor(m_AllEnumTextNo) {
|
|
6
|
+
this.m_AllEnumTextNo = m_AllEnumTextNo;
|
|
7
|
+
}
|
|
8
|
+
convert(s, type) {
|
|
9
|
+
const allTextNo = this.m_AllEnumTextNo[type];
|
|
10
|
+
if (!allTextNo)
|
|
11
|
+
throw new Error(`${this.constructor.name}: 无效枚举[${type}]`);
|
|
12
|
+
const no = allTextNo[s];
|
|
13
|
+
if (!no)
|
|
14
|
+
throw new Error(`${this.constructor.name}: 无效枚举文本[${type}][${s}]`);
|
|
15
|
+
return no;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.ToEnumNoConverter = ToEnumNoConverter;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AllEnumTextNo } from './all-enum-text-no';
|
|
2
|
+
import { IConverter } from './i-converter';
|
|
3
|
+
import { Value } from './value';
|
|
4
|
+
type Reward = Value & {
|
|
5
|
+
weight: number;
|
|
6
|
+
};
|
|
7
|
+
export declare class ToRewardsConverter implements IConverter {
|
|
8
|
+
private m_AllEnumTextNo;
|
|
9
|
+
private m_EnumName;
|
|
10
|
+
constructor(m_AllEnumTextNo: AllEnumTextNo, m_EnumName: string);
|
|
11
|
+
convert(s: string): Reward[][];
|
|
12
|
+
}
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ToRewardsConverter = void 0;
|
|
4
|
+
const reg = /^([^*]+)\*(-?[\deE+\.]+)(\*?(\d+))?$/;
|
|
5
|
+
class ToRewardsConverter {
|
|
6
|
+
constructor(m_AllEnumTextNo, m_EnumName) {
|
|
7
|
+
this.m_AllEnumTextNo = m_AllEnumTextNo;
|
|
8
|
+
this.m_EnumName = m_EnumName;
|
|
9
|
+
}
|
|
10
|
+
convert(s) {
|
|
11
|
+
return s.split('\r\n').reduce((memo, r) => {
|
|
12
|
+
const match = r.match(reg);
|
|
13
|
+
if (!match) {
|
|
14
|
+
if (memo[memo.length - 1].length) {
|
|
15
|
+
memo.push([]);
|
|
16
|
+
return memo;
|
|
17
|
+
}
|
|
18
|
+
throw new Error(`${this.constructor.name}: 无效格式[${r}]`);
|
|
19
|
+
}
|
|
20
|
+
const valueNo = this.m_AllEnumTextNo[this.m_EnumName][match[1]];
|
|
21
|
+
if (!valueNo)
|
|
22
|
+
throw new Error(`${this.constructor.name}: 无效数值名[${r}]`);
|
|
23
|
+
const count = Number(match[2]);
|
|
24
|
+
if (isNaN(count))
|
|
25
|
+
throw new Error(`${this.constructor.name}: 无效数量[${r}]`);
|
|
26
|
+
memo[memo.length - 1].push({
|
|
27
|
+
count,
|
|
28
|
+
no: valueNo,
|
|
29
|
+
weight: match[3] && Number(match[3].slice(1)) || 0,
|
|
30
|
+
});
|
|
31
|
+
return memo;
|
|
32
|
+
}, [[]]);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.ToRewardsConverter = ToRewardsConverter;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ToUnixConverter = void 0;
|
|
7
|
+
const dayjs_1 = __importDefault(require("dayjs"));
|
|
8
|
+
class ToUnixConverter {
|
|
9
|
+
convert(s) {
|
|
10
|
+
return (0, dayjs_1.default)(s.toString()).unix();
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.ToUnixConverter = ToUnixConverter;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AllEnumTextNo } from './all-enum-text-no';
|
|
2
|
+
import { IConverter } from './i-converter';
|
|
3
|
+
import { Value } from './value';
|
|
4
|
+
type ValueCondition = Value & {
|
|
5
|
+
op: string;
|
|
6
|
+
};
|
|
7
|
+
export declare class ToValueConditionsConverter implements IConverter {
|
|
8
|
+
private m_AllEnumTextNo;
|
|
9
|
+
private m_Enum;
|
|
10
|
+
constructor(m_AllEnumTextNo: AllEnumTextNo, m_Enum: string);
|
|
11
|
+
convert(s: string): ValueCondition[][];
|
|
12
|
+
}
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ToValueConditionsConverter = void 0;
|
|
4
|
+
const reg = /^([\u4e00-\u9fff]+)(%|&|now-day|now-diff|own)*([=><]+)(-?\d+([\.eE+\d]+)?)$/;
|
|
5
|
+
class ToValueConditionsConverter {
|
|
6
|
+
constructor(m_AllEnumTextNo, m_Enum) {
|
|
7
|
+
this.m_AllEnumTextNo = m_AllEnumTextNo;
|
|
8
|
+
this.m_Enum = m_Enum;
|
|
9
|
+
}
|
|
10
|
+
convert(s) {
|
|
11
|
+
if (typeof s != 'string')
|
|
12
|
+
return [];
|
|
13
|
+
const lines = s.split(/\r\n|\n|\r/g);
|
|
14
|
+
let res = [[]];
|
|
15
|
+
for (const r of lines) {
|
|
16
|
+
const match = r.match(reg);
|
|
17
|
+
if (!match) {
|
|
18
|
+
if (res[res.length - 1].length) {
|
|
19
|
+
res.push([]);
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
throw new Error(`${this.constructor.name}: 无效数值条件格式[${r}]`);
|
|
23
|
+
}
|
|
24
|
+
const valueNo = this.m_AllEnumTextNo[this.m_Enum][match[1]];
|
|
25
|
+
if (!valueNo)
|
|
26
|
+
throw new Error(`${this.constructor.name}: 无效数值条件名[${r}]`);
|
|
27
|
+
const count = Number(match[4]);
|
|
28
|
+
if (isNaN(count))
|
|
29
|
+
throw new Error(`${this.constructor.name}: 无效数值条件数量[${r}]`);
|
|
30
|
+
res[res.length - 1].push({
|
|
31
|
+
count,
|
|
32
|
+
no: valueNo,
|
|
33
|
+
op: match[2] && match[2] + match[3] || match[3],
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
return res;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.ToValueConditionsConverter = ToValueConditionsConverter;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AllEnumTextNo } from './all-enum-text-no';
|
|
2
|
+
import { IConverter } from './i-converter';
|
|
3
|
+
export declare class ToValueConverter implements IConverter {
|
|
4
|
+
private m_AllEnumTextNo;
|
|
5
|
+
private m_Enum;
|
|
6
|
+
constructor(m_AllEnumTextNo: AllEnumTextNo, m_Enum: string);
|
|
7
|
+
convert(s: string): {
|
|
8
|
+
count: number;
|
|
9
|
+
no: number;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ToValueConverter = void 0;
|
|
4
|
+
class ToValueConverter {
|
|
5
|
+
constructor(m_AllEnumTextNo, m_Enum) {
|
|
6
|
+
this.m_AllEnumTextNo = m_AllEnumTextNo;
|
|
7
|
+
this.m_Enum = m_Enum;
|
|
8
|
+
}
|
|
9
|
+
convert(s) {
|
|
10
|
+
const [text, count] = s.split('*');
|
|
11
|
+
return {
|
|
12
|
+
count: Number(count),
|
|
13
|
+
no: this.m_AllEnumTextNo[this.m_Enum][text],
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.ToValueConverter = ToValueConverter;
|
package/dist/value.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"author": "ahl5esoft",
|
|
3
3
|
"dependencies": {
|
|
4
|
-
"dayjs": "^1.11.
|
|
5
|
-
"tfose5-
|
|
6
|
-
"tfose5-fs": "^1.2.1",
|
|
4
|
+
"dayjs": "^1.11.20",
|
|
5
|
+
"tfose5-fs": "^1.6.1",
|
|
7
6
|
"xlsx": "^0.18.5"
|
|
8
7
|
},
|
|
9
8
|
"devDependencies": {
|
|
10
9
|
"@types/mocha": "^10.0.10",
|
|
11
|
-
"@types/node": "^24.
|
|
10
|
+
"@types/node": "^24.12.0",
|
|
12
11
|
"ts-node": "^10.9.2",
|
|
13
|
-
"typescript": "^5.9.
|
|
12
|
+
"typescript": "^5.9.3"
|
|
14
13
|
},
|
|
15
14
|
"keywords": [
|
|
16
15
|
"tfose5",
|
|
@@ -25,5 +24,5 @@
|
|
|
25
24
|
"test": "mocha -t 30s -r ./node_modules/ts-node/register/index.js --exit",
|
|
26
25
|
"version": "ts-node script version"
|
|
27
26
|
},
|
|
28
|
-
"version": "2.1
|
|
27
|
+
"version": "3.2.1"
|
|
29
28
|
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { XlsxCellParserParseOption } from './cell-parser-parse-option';
|
|
2
|
-
import { EnumItem } from './enum-item';
|
|
3
|
-
import { IXlsxParser } from './i-parser';
|
|
4
|
-
export declare abstract class XlsxCellParserBase<T> implements IXlsxParser<XlsxCellParserParseOption, T> {
|
|
5
|
-
abstract parse(opt: XlsxCellParserParseOption): T;
|
|
6
|
-
protected getEnumFieldIndexDoc(enumName: string, opt: XlsxCellParserParseOption, field?: keyof EnumItem): {
|
|
7
|
-
[fieldValue: string]: number;
|
|
8
|
-
};
|
|
9
|
-
}
|
package/dist/cell-parser-base.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.XlsxCellParserBase = void 0;
|
|
4
|
-
class XlsxCellParserBase {
|
|
5
|
-
getEnumFieldIndexDoc(enumName, opt, field = 'text') {
|
|
6
|
-
var _a, _b, _c;
|
|
7
|
-
var _d;
|
|
8
|
-
(_a = opt.allEnumIndexDoc) !== null && _a !== void 0 ? _a : (opt.allEnumIndexDoc = {});
|
|
9
|
-
const allIndexDoc = (_b = (_d = opt.allEnumIndexDoc)[enumName]) !== null && _b !== void 0 ? _b : (_d[enumName] = {});
|
|
10
|
-
if (!allIndexDoc[field]) {
|
|
11
|
-
allIndexDoc[field] = {};
|
|
12
|
-
const allItem = (_c = opt.allEnumItem[enumName]) !== null && _c !== void 0 ? _c : new Map();
|
|
13
|
-
allItem.forEach(r => {
|
|
14
|
-
allIndexDoc[field][r[field]] = r.value;
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
return allIndexDoc[field];
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
exports.XlsxCellParserBase = XlsxCellParserBase;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { EnumItem } from './enum-item';
|
|
2
|
-
export type XlsxCellParserParseOption = {
|
|
3
|
-
ext: string;
|
|
4
|
-
field: string;
|
|
5
|
-
value: any;
|
|
6
|
-
allEnumItem: {
|
|
7
|
-
[enumName: string]: Map<number, EnumItem>;
|
|
8
|
-
};
|
|
9
|
-
allEnumIndexDoc?: {
|
|
10
|
-
[enumName: string]: {
|
|
11
|
-
[field: string]: {
|
|
12
|
-
[fieldValue: string]: number;
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { XlsxCellParserParseOption } from './cell-parser-parse-option';
|
|
2
|
-
import { XlsxEnumSheetParser } from './enum-sheet-parser';
|
|
3
|
-
import { IXlsxParser } from './i-parser';
|
|
4
|
-
export declare class XlsxCellToArrayParser implements IXlsxParser<XlsxCellParserParseOption, unknown[]> {
|
|
5
|
-
private m_EnumSheetParser;
|
|
6
|
-
constructor(m_EnumSheetParser: XlsxEnumSheetParser);
|
|
7
|
-
parse(opt: XlsxCellParserParseOption): unknown[];
|
|
8
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.XlsxCellToArrayParser = void 0;
|
|
4
|
-
class XlsxCellToArrayParser {
|
|
5
|
-
constructor(m_EnumSheetParser) {
|
|
6
|
-
this.m_EnumSheetParser = m_EnumSheetParser;
|
|
7
|
-
}
|
|
8
|
-
parse(opt) {
|
|
9
|
-
var _a;
|
|
10
|
-
if (typeof opt.value != 'string')
|
|
11
|
-
return [];
|
|
12
|
-
const [type, ...others] = opt.ext.split('.');
|
|
13
|
-
const lines = opt.value.split(((_a = others[0]) === null || _a === void 0 ? void 0 : _a.startsWith('\\')) ? new RegExp(others.shift(), 'g') : /\r\n|\n|\r/g);
|
|
14
|
-
const res = [];
|
|
15
|
-
const otherExt = others.join('.');
|
|
16
|
-
for (const r of lines) {
|
|
17
|
-
res.push(this.m_EnumSheetParser.getCellParser(type).parse(Object.assign(Object.assign({}, opt), { ext: otherExt, value: r })));
|
|
18
|
-
}
|
|
19
|
-
return res;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
exports.XlsxCellToArrayParser = XlsxCellToArrayParser;
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { XlsxCellParserParseOption } from './cell-parser-parse-option';
|
|
2
|
-
import { IXlsxParser } from './i-parser';
|
|
3
|
-
export declare class XlsxCellToBoolParser implements IXlsxParser<XlsxCellParserParseOption, boolean> {
|
|
4
|
-
parse(opt: XlsxCellParserParseOption): boolean;
|
|
5
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.XlsxCellToBoolParser = void 0;
|
|
4
|
-
class XlsxCellToBoolParser {
|
|
5
|
-
parse(opt) {
|
|
6
|
-
if (typeof opt.value == 'boolean')
|
|
7
|
-
return opt.value;
|
|
8
|
-
if (typeof opt.value == 'string')
|
|
9
|
-
return opt.value.toLocaleLowerCase() == 'true';
|
|
10
|
-
return !!opt.value;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
exports.XlsxCellToBoolParser = XlsxCellToBoolParser;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.XlsxCellToEnumParser = void 0;
|
|
4
|
-
const tfose5_error_1 = require("tfose5-error");
|
|
5
|
-
const cell_parser_base_1 = require("./cell-parser-base");
|
|
6
|
-
class XlsxCellToEnumParser extends cell_parser_base_1.XlsxCellParserBase {
|
|
7
|
-
parse(opt) {
|
|
8
|
-
const [_, enumName, field] = opt.ext.split('.');
|
|
9
|
-
const indexDoc = this.getEnumFieldIndexDoc(enumName, opt, field);
|
|
10
|
-
const no = indexDoc[opt.value];
|
|
11
|
-
if (!no)
|
|
12
|
-
throw new tfose5_error_1.CustomError(tfose5_error_1.ErrorCode.warning, `${XlsxCellToEnumParser.name}.parse: 无效${enumName}[${opt.value}]`);
|
|
13
|
-
return no;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
exports.XlsxCellToEnumParser = XlsxCellToEnumParser;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.XlsxCellToJsonParser = void 0;
|
|
4
|
-
class XlsxCellToJsonParser {
|
|
5
|
-
parse(opt) {
|
|
6
|
-
return typeof opt.value == 'string' ? JSON.parse(opt.value) : opt.value;
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
exports.XlsxCellToJsonParser = XlsxCellToJsonParser;
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { XlsxCellParserParseOption } from './cell-parser-parse-option';
|
|
2
|
-
import { IXlsxParser } from './i-parser';
|
|
3
|
-
export declare class XlsxCellToNumberParser implements IXlsxParser<XlsxCellParserParseOption, number> {
|
|
4
|
-
parse(opt: XlsxCellParserParseOption): number;
|
|
5
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.XlsxCellToNumberParser = void 0;
|
|
4
|
-
class XlsxCellToNumberParser {
|
|
5
|
-
parse(opt) {
|
|
6
|
-
return Number(opt.value);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
exports.XlsxCellToNumberParser = XlsxCellToNumberParser;
|