@chaoswise/intl 1.0.0 → 1.2.0
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/bin/chaoswise-intl.js +5 -1
- package/bin/scripts/collect.js +38 -18
- package/bin/scripts/conf/default.js +40 -2
- package/bin/scripts/conf/getCustomConfig.js +8 -0
- package/bin/scripts/conf/index.js +2 -25
- package/bin/scripts/conf/initConfig.js +37 -0
- package/bin/scripts/initConfig.js +3 -0
- package/bin/scripts/service/index.js +2 -2
- package/bin/scripts/update.js +5 -5
- package/bin/scripts/util/FormPath/contexts.d.ts +10 -0
- package/bin/scripts/util/FormPath/contexts.js +23 -0
- package/bin/scripts/util/FormPath/destructor.d.ts +15 -0
- package/bin/scripts/util/FormPath/destructor.js +124 -0
- package/bin/scripts/util/FormPath/index.d.ts +49 -0
- package/bin/scripts/util/FormPath/index.js +536 -0
- package/bin/scripts/util/FormPath/lru.d.ts +1 -0
- package/bin/scripts/util/FormPath/lru.js +246 -0
- package/bin/scripts/util/FormPath/matcher.d.ts +33 -0
- package/bin/scripts/util/FormPath/matcher.js +216 -0
- package/bin/scripts/util/FormPath/parser.d.ts +28 -0
- package/bin/scripts/util/FormPath/parser.js +302 -0
- package/bin/scripts/util/FormPath/tokenizer.d.ts +26 -0
- package/bin/scripts/util/FormPath/tokenizer.js +280 -0
- package/bin/scripts/util/FormPath/tokens.d.ts +26 -0
- package/bin/scripts/util/FormPath/tokens.js +212 -0
- package/bin/scripts/util/FormPath/types.d.ts +76 -0
- package/bin/scripts/util/FormPath/types.js +17 -0
- package/bin/scripts/util/FormPath/utils.d.ts +10 -0
- package/bin/scripts/util/FormPath/utils.js +63 -0
- package/bin/scripts/util/downloadJson.js +10 -1
- package/bin/scripts/util/file.js +31 -0
- package/bin/scripts/util/getGroupName.js +15 -0
- package/bin/scripts/util/getWord.js +13 -0
- package/bin/scripts/util/log.js +25 -4
- package/bin/scripts/util/makeVisitorCollect.js +351 -46
- package/bin/scripts/util/makeVisitorUpdate.js +38 -1
- package/bin/scripts/util/specialMatch.js +14 -0
- package/bin/scripts/util/transformAst.js +30 -22
- package/bin/scripts/util/writeNewWordsFile.js +30 -0
- package/lib/index.js +2 -1
- package/package.json +7 -5
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.eofTok = exports.expandTok = exports.ignoreTok = exports.commaTok = exports.parenRTok = exports.parenLTok = exports.bracketDRTok = exports.bracketDLTok = exports.bracketRTok = exports.bracketLTok = exports.braceRTok = exports.braceLTok = exports.colonTok = exports.bangTok = exports.dotTok = exports.starTok = exports.nameTok = void 0;
|
|
15
|
+
var contexts_1 = require("./contexts");
|
|
16
|
+
var TokenType = function (flag, props) {
|
|
17
|
+
return __assign({ flag: flag }, props);
|
|
18
|
+
};
|
|
19
|
+
exports.nameTok = TokenType('name', {
|
|
20
|
+
expectNext: function (next) {
|
|
21
|
+
if (this.includesContext(contexts_1.destructorContext)) {
|
|
22
|
+
return (next === exports.commaTok ||
|
|
23
|
+
next === exports.bracketRTok ||
|
|
24
|
+
next === exports.braceRTok ||
|
|
25
|
+
next === exports.colonTok);
|
|
26
|
+
}
|
|
27
|
+
return (next === exports.dotTok ||
|
|
28
|
+
next === exports.commaTok ||
|
|
29
|
+
next === exports.eofTok ||
|
|
30
|
+
next === exports.bracketRTok ||
|
|
31
|
+
next === exports.parenRTok ||
|
|
32
|
+
next === exports.colonTok ||
|
|
33
|
+
next === exports.expandTok ||
|
|
34
|
+
next === exports.bracketLTok);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
exports.starTok = TokenType('*', {
|
|
38
|
+
expectNext: function (next) {
|
|
39
|
+
return (next === exports.dotTok ||
|
|
40
|
+
next === exports.starTok ||
|
|
41
|
+
next === exports.parenLTok ||
|
|
42
|
+
next === exports.bracketLTok ||
|
|
43
|
+
next === exports.eofTok ||
|
|
44
|
+
next === exports.commaTok ||
|
|
45
|
+
next === exports.parenRTok);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
exports.dotTok = TokenType('.', {
|
|
49
|
+
expectNext: function (next) {
|
|
50
|
+
return (next === exports.nameTok ||
|
|
51
|
+
next === exports.bracketDLTok ||
|
|
52
|
+
next === exports.starTok ||
|
|
53
|
+
next === exports.bracketLTok ||
|
|
54
|
+
next === exports.braceLTok);
|
|
55
|
+
},
|
|
56
|
+
expectPrev: function (prev) {
|
|
57
|
+
return (prev === exports.nameTok ||
|
|
58
|
+
prev === exports.bracketDRTok ||
|
|
59
|
+
prev === exports.starTok ||
|
|
60
|
+
prev === exports.parenRTok ||
|
|
61
|
+
prev === exports.bracketRTok ||
|
|
62
|
+
prev === exports.expandTok ||
|
|
63
|
+
prev === exports.braceRTok);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
exports.bangTok = TokenType('!', {
|
|
67
|
+
expectNext: function (next) {
|
|
68
|
+
return next === exports.nameTok || next === exports.bracketDLTok;
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
exports.colonTok = TokenType(':', {
|
|
72
|
+
expectNext: function (next) {
|
|
73
|
+
if (this.includesContext(contexts_1.destructorContext)) {
|
|
74
|
+
return next === exports.nameTok || next === exports.braceLTok || next === exports.bracketLTok;
|
|
75
|
+
}
|
|
76
|
+
return next === exports.nameTok || next === exports.bracketDLTok || next === exports.bracketRTok;
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
exports.braceLTok = TokenType('{', {
|
|
80
|
+
expectNext: function (next) {
|
|
81
|
+
return next === exports.nameTok;
|
|
82
|
+
},
|
|
83
|
+
expectPrev: function (prev) {
|
|
84
|
+
if (this.includesContext(contexts_1.destructorContext)) {
|
|
85
|
+
return prev === exports.colonTok || prev === exports.commaTok || prev === exports.bracketLTok;
|
|
86
|
+
}
|
|
87
|
+
return prev === exports.dotTok || prev === exports.colonTok;
|
|
88
|
+
},
|
|
89
|
+
updateContext: function (prev) {
|
|
90
|
+
this.state.context.push(contexts_1.braceContext);
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
exports.braceRTok = TokenType('}', {
|
|
94
|
+
expectNext: function (next) {
|
|
95
|
+
if (this.includesContext(contexts_1.destructorContext)) {
|
|
96
|
+
return next === exports.commaTok || next === exports.braceRTok || next === exports.eofTok || next === exports.bracketRTok;
|
|
97
|
+
}
|
|
98
|
+
return next === exports.dotTok || next === exports.eofTok;
|
|
99
|
+
},
|
|
100
|
+
expectPrev: function (prev) {
|
|
101
|
+
return prev === exports.nameTok || prev === exports.braceRTok || prev === exports.bracketRTok;
|
|
102
|
+
},
|
|
103
|
+
updateContext: function () {
|
|
104
|
+
this.state.context.pop(contexts_1.braceContext);
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
exports.bracketLTok = TokenType('[', {
|
|
108
|
+
expectNext: function (next) {
|
|
109
|
+
if (this.includesContext(contexts_1.destructorContext)) {
|
|
110
|
+
return next === exports.nameTok || next === exports.bracketLTok || next === exports.braceLTok;
|
|
111
|
+
}
|
|
112
|
+
return (next === exports.nameTok ||
|
|
113
|
+
next === exports.bracketDLTok ||
|
|
114
|
+
next === exports.colonTok ||
|
|
115
|
+
next === exports.bracketLTok ||
|
|
116
|
+
next === exports.ignoreTok);
|
|
117
|
+
},
|
|
118
|
+
expectPrev: function (prev) {
|
|
119
|
+
if (this.includesContext(contexts_1.destructorContext)) {
|
|
120
|
+
return prev === exports.colonTok || prev === exports.commaTok || prev === exports.bracketLTok;
|
|
121
|
+
}
|
|
122
|
+
return (prev === exports.starTok ||
|
|
123
|
+
prev === exports.bracketLTok ||
|
|
124
|
+
prev === exports.dotTok ||
|
|
125
|
+
prev === exports.nameTok ||
|
|
126
|
+
prev === exports.parenLTok ||
|
|
127
|
+
prev == exports.commaTok);
|
|
128
|
+
},
|
|
129
|
+
updateContext: function (prev) {
|
|
130
|
+
this.state.context.push(contexts_1.bracketContext);
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
exports.bracketRTok = TokenType(']', {
|
|
134
|
+
expectNext: function (next) {
|
|
135
|
+
if (this.includesContext(contexts_1.destructorContext)) {
|
|
136
|
+
return next === exports.commaTok || next === exports.braceRTok || next === exports.bracketRTok || next === exports.eofTok;
|
|
137
|
+
}
|
|
138
|
+
return (next === exports.dotTok ||
|
|
139
|
+
next === exports.eofTok ||
|
|
140
|
+
next === exports.commaTok ||
|
|
141
|
+
next === exports.parenRTok ||
|
|
142
|
+
next === exports.bracketRTok);
|
|
143
|
+
},
|
|
144
|
+
updateContext: function (prev) {
|
|
145
|
+
if (this.includesContext(contexts_1.bracketArrayContext))
|
|
146
|
+
return;
|
|
147
|
+
if (!this.includesContext(contexts_1.bracketContext))
|
|
148
|
+
throw this.unexpect();
|
|
149
|
+
this.state.context.pop();
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
exports.bracketDLTok = TokenType('[[', {
|
|
153
|
+
updateContext: function () {
|
|
154
|
+
this.state.context.push(contexts_1.bracketDContext);
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
exports.bracketDRTok = TokenType(']]', {
|
|
158
|
+
updateContext: function () {
|
|
159
|
+
if (this.curContext() !== contexts_1.bracketDContext)
|
|
160
|
+
throw this.unexpect();
|
|
161
|
+
this.state.context.pop();
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
exports.parenLTok = TokenType('(', {
|
|
165
|
+
expectNext: function (next) {
|
|
166
|
+
return (next === exports.nameTok ||
|
|
167
|
+
next === exports.bracketDLTok ||
|
|
168
|
+
next === exports.bangTok ||
|
|
169
|
+
next === exports.bracketLTok);
|
|
170
|
+
},
|
|
171
|
+
expectPrev: function (prev) {
|
|
172
|
+
return prev === exports.starTok;
|
|
173
|
+
},
|
|
174
|
+
updateContext: function (prev) {
|
|
175
|
+
this.state.context.push(contexts_1.parenContext);
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
exports.parenRTok = TokenType(')', {
|
|
179
|
+
expectNext: function (next) {
|
|
180
|
+
return next === exports.dotTok || next === exports.eofTok || next === exports.commaTok || next === exports.parenRTok;
|
|
181
|
+
},
|
|
182
|
+
updateContext: function () {
|
|
183
|
+
if (this.curContext() !== contexts_1.parenContext)
|
|
184
|
+
throw this.unexpect();
|
|
185
|
+
this.state.context.pop();
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
exports.commaTok = TokenType(',', {
|
|
189
|
+
expectNext: function (next) {
|
|
190
|
+
return (next === exports.nameTok ||
|
|
191
|
+
next === exports.bracketDLTok ||
|
|
192
|
+
next === exports.bracketLTok ||
|
|
193
|
+
next === exports.braceLTok);
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
exports.ignoreTok = TokenType('ignore', {
|
|
197
|
+
expectNext: function (next) {
|
|
198
|
+
return next === exports.bracketDRTok;
|
|
199
|
+
},
|
|
200
|
+
expectPrev: function (prev) {
|
|
201
|
+
return prev == exports.bracketDLTok;
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
exports.expandTok = TokenType('expandTok', {
|
|
205
|
+
expectNext: function (next) {
|
|
206
|
+
return (next === exports.dotTok ||
|
|
207
|
+
next === exports.eofTok ||
|
|
208
|
+
next === exports.commaTok ||
|
|
209
|
+
next === exports.parenRTok);
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
exports.eofTok = TokenType('eof');
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Path } from './index';
|
|
2
|
+
interface INode {
|
|
3
|
+
type?: string;
|
|
4
|
+
after?: Node;
|
|
5
|
+
}
|
|
6
|
+
export declare type Node = IdentifierNode | WildcardOperatorNode | GroupExpressionNode | RangeExpressionNode | DestructorExpressionNode | ObjectPatternNode | ArrayPatternNode | DotOperatorNode | ExpandOperatorNode | INode;
|
|
7
|
+
export declare type IdentifierNode = {
|
|
8
|
+
type: 'Identifier';
|
|
9
|
+
value: string;
|
|
10
|
+
arrayIndex?: boolean;
|
|
11
|
+
} & INode;
|
|
12
|
+
export declare type IgnoreExpressionNode = {
|
|
13
|
+
type: 'IgnoreExpression';
|
|
14
|
+
value: string;
|
|
15
|
+
} & INode;
|
|
16
|
+
export declare type DotOperatorNode = {
|
|
17
|
+
type: 'DotOperator';
|
|
18
|
+
} & INode;
|
|
19
|
+
export declare type WildcardOperatorNode = {
|
|
20
|
+
type: 'WildcardOperator';
|
|
21
|
+
filter?: GroupExpressionNode | RangeExpressionNode;
|
|
22
|
+
} & INode;
|
|
23
|
+
export declare type ExpandOperatorNode = {
|
|
24
|
+
type: 'ExpandOperator';
|
|
25
|
+
} & INode;
|
|
26
|
+
export declare type GroupExpressionNode = {
|
|
27
|
+
type: 'GroupExpression';
|
|
28
|
+
value: Node[];
|
|
29
|
+
isExclude?: boolean;
|
|
30
|
+
} & INode;
|
|
31
|
+
export declare type RangeExpressionNode = {
|
|
32
|
+
type: 'RangeExpression';
|
|
33
|
+
start?: IdentifierNode;
|
|
34
|
+
end?: IdentifierNode;
|
|
35
|
+
} & INode;
|
|
36
|
+
export declare type DestructorExpressionNode = {
|
|
37
|
+
type: 'DestructorExpression';
|
|
38
|
+
value?: ObjectPatternNode | ArrayPatternNode;
|
|
39
|
+
source?: string;
|
|
40
|
+
} & INode;
|
|
41
|
+
export declare type ObjectPatternNode = {
|
|
42
|
+
type: 'ObjectPattern';
|
|
43
|
+
properties: ObjectPatternPropertyNode[];
|
|
44
|
+
} & INode;
|
|
45
|
+
export declare type ObjectPatternPropertyNode = {
|
|
46
|
+
type: 'ObjectPatternProperty';
|
|
47
|
+
key: IdentifierNode;
|
|
48
|
+
value?: ObjectPatternNode[] | ArrayPatternNode[] | IdentifierNode;
|
|
49
|
+
} & INode;
|
|
50
|
+
export declare type ArrayPatternNode = {
|
|
51
|
+
type: 'ArrayPattern';
|
|
52
|
+
elements: ObjectPatternNode[] | ArrayPatternNode[] | IdentifierNode[];
|
|
53
|
+
} & INode;
|
|
54
|
+
export declare type DestrcutorRule = {
|
|
55
|
+
key?: string | number;
|
|
56
|
+
path?: Array<number | string>;
|
|
57
|
+
};
|
|
58
|
+
export declare type MatcherFunction = ((path: Segments) => boolean) & {
|
|
59
|
+
path: Path;
|
|
60
|
+
};
|
|
61
|
+
export declare type Pattern = string | number | Path | Segments | MatcherFunction;
|
|
62
|
+
export declare type DestrcutorRules = DestrcutorRule[];
|
|
63
|
+
export declare type Segments = Array<string | number>;
|
|
64
|
+
export declare const isType: <T>(type: string) => (obj: any) => obj is T;
|
|
65
|
+
export declare const isIdentifier: (obj: any) => obj is IdentifierNode;
|
|
66
|
+
export declare const isIgnoreExpression: (obj: any) => obj is IgnoreExpressionNode;
|
|
67
|
+
export declare const isDotOperator: (obj: any) => obj is DotOperatorNode;
|
|
68
|
+
export declare const isWildcardOperator: (obj: any) => obj is WildcardOperatorNode;
|
|
69
|
+
export declare const isExpandOperator: (obj: any) => obj is ExpandOperatorNode;
|
|
70
|
+
export declare const isGroupExpression: (obj: any) => obj is GroupExpressionNode;
|
|
71
|
+
export declare const isRangeExpression: (obj: any) => obj is RangeExpressionNode;
|
|
72
|
+
export declare const isDestructorExpression: (obj: any) => obj is DestructorExpressionNode;
|
|
73
|
+
export declare const isObjectPattern: (obj: any) => obj is ObjectPatternNode;
|
|
74
|
+
export declare const isObjectPatternProperty: (obj: any) => obj is ObjectPatternPropertyNode;
|
|
75
|
+
export declare const isArrayPattern: (obj: any) => obj is ArrayPatternNode;
|
|
76
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isArrayPattern = exports.isObjectPatternProperty = exports.isObjectPattern = exports.isDestructorExpression = exports.isRangeExpression = exports.isGroupExpression = exports.isExpandOperator = exports.isWildcardOperator = exports.isDotOperator = exports.isIgnoreExpression = exports.isIdentifier = exports.isType = void 0;
|
|
4
|
+
exports.isType = function (type) { return function (obj) {
|
|
5
|
+
return obj && obj.type === type;
|
|
6
|
+
}; };
|
|
7
|
+
exports.isIdentifier = exports.isType('Identifier');
|
|
8
|
+
exports.isIgnoreExpression = exports.isType('IgnoreExpression');
|
|
9
|
+
exports.isDotOperator = exports.isType('DotOperator');
|
|
10
|
+
exports.isWildcardOperator = exports.isType('WildcardOperator');
|
|
11
|
+
exports.isExpandOperator = exports.isType('ExpandOperator');
|
|
12
|
+
exports.isGroupExpression = exports.isType('GroupExpression');
|
|
13
|
+
exports.isRangeExpression = exports.isType('RangeExpression');
|
|
14
|
+
exports.isDestructorExpression = exports.isType('DestructorExpression');
|
|
15
|
+
exports.isObjectPattern = exports.isType('ObjectPattern');
|
|
16
|
+
exports.isObjectPatternProperty = exports.isType('ObjectPatternProperty');
|
|
17
|
+
exports.isArrayPattern = exports.isType('ArrayPattern');
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const isFn: (obj: unknown) => obj is (...args: any[]) => any;
|
|
2
|
+
export declare const isArr: (arg: any) => arg is any[];
|
|
3
|
+
export declare const isPlainObj: (obj: unknown) => obj is object;
|
|
4
|
+
export declare const isStr: (obj: unknown) => obj is string;
|
|
5
|
+
export declare const isBool: (obj: unknown) => obj is boolean;
|
|
6
|
+
export declare const isNum: (obj: unknown) => obj is number;
|
|
7
|
+
export declare const isObj: (val: unknown) => val is object;
|
|
8
|
+
export declare const isRegExp: (obj: unknown) => obj is RegExp;
|
|
9
|
+
export declare const toArray: <T>(val: T | T[]) => T[];
|
|
10
|
+
export declare const isEqual: (a: any, b: any) => boolean;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isEqual = exports.toArray = exports.isRegExp = exports.isObj = exports.isNum = exports.isBool = exports.isStr = exports.isPlainObj = exports.isArr = exports.isFn = void 0;
|
|
4
|
+
var isType = function (type) { return function (obj) {
|
|
5
|
+
return obj != null && Object.prototype.toString.call(obj) === "[object " + type + "]";
|
|
6
|
+
}; };
|
|
7
|
+
exports.isFn = isType('Function');
|
|
8
|
+
exports.isArr = Array.isArray || isType('Array');
|
|
9
|
+
exports.isPlainObj = isType('Object');
|
|
10
|
+
exports.isStr = isType('String');
|
|
11
|
+
exports.isBool = isType('Boolean');
|
|
12
|
+
exports.isNum = isType('Number');
|
|
13
|
+
exports.isObj = function (val) { return typeof val === 'object'; };
|
|
14
|
+
exports.isRegExp = isType('RegExp');
|
|
15
|
+
var isArray = exports.isArr;
|
|
16
|
+
var keyList = Object.keys;
|
|
17
|
+
var hasProp = Object.prototype.hasOwnProperty;
|
|
18
|
+
exports.toArray = function (val) { return Array.isArray(val) ? val : val !== undefined ? [val] : []; };
|
|
19
|
+
exports.isEqual = function (a, b) {
|
|
20
|
+
if (a === b) {
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
if (a && b && typeof a === 'object' && typeof b === 'object') {
|
|
24
|
+
var arrA = isArray(a);
|
|
25
|
+
var arrB = isArray(b);
|
|
26
|
+
var i = void 0;
|
|
27
|
+
var length_1;
|
|
28
|
+
var key = void 0;
|
|
29
|
+
if (arrA && arrB) {
|
|
30
|
+
length_1 = a.length;
|
|
31
|
+
if (length_1 !== b.length) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
for (i = length_1; i-- !== 0;) {
|
|
35
|
+
if (!exports.isEqual(a[i], b[i])) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
if (arrA !== arrB) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
var keys = keyList(a);
|
|
45
|
+
length_1 = keys.length;
|
|
46
|
+
if (length_1 !== keyList(b).length) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
for (i = length_1; i-- !== 0;) {
|
|
50
|
+
if (!hasProp.call(b, keys[i])) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
for (i = length_1; i-- !== 0;) {
|
|
55
|
+
key = keys[i];
|
|
56
|
+
if (!exports.isEqual(a[key], b[key])) {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
return a !== a && b !== b;
|
|
63
|
+
};
|
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
const service = require('../service');
|
|
2
2
|
const file = require('./file');
|
|
3
|
+
const log = require('./log');
|
|
4
|
+
const getGroupName = require('./getGroupName');
|
|
3
5
|
|
|
4
6
|
module.exports = async function downloadJson(downloadIds) {
|
|
5
|
-
|
|
7
|
+
// 读取groupName
|
|
8
|
+
const groupName = getGroupName();
|
|
9
|
+
|
|
10
|
+
const res = await service.getJson({ groupName, downloadIds });
|
|
11
|
+
if (res.code !== 10000) {
|
|
12
|
+
log.error(res.msg);
|
|
13
|
+
process.exit(1);
|
|
14
|
+
}
|
|
6
15
|
const { zh, en } = res.data;
|
|
7
16
|
file.write('locales/zh-CN.json', JSON.stringify(zh, null, 2));
|
|
8
17
|
file.write('locales/en-US.json', JSON.stringify(en, null, 2));
|
package/bin/scripts/util/file.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
const fs = require('fs');
|
|
2
2
|
const path = require('path');
|
|
3
|
+
const xlsx = require('xlsx');
|
|
3
4
|
const log = require('./log');
|
|
4
5
|
const folder = require('./folder');
|
|
5
6
|
|
|
@@ -38,6 +39,18 @@ module.exports = {
|
|
|
38
39
|
return require(fullPath);
|
|
39
40
|
} catch (error) {}
|
|
40
41
|
},
|
|
42
|
+
// 读取xlsx表格
|
|
43
|
+
readElsx(relativePath) {
|
|
44
|
+
const fullPath = getPath(relativePath);
|
|
45
|
+
try {
|
|
46
|
+
const xlsxData = xlsx.readFile(fullPath);
|
|
47
|
+
const res = {};
|
|
48
|
+
Object.keys(xlsxData.Sheets).forEach(key => {
|
|
49
|
+
res[key] = xlsx.utils.sheet_to_json(xlsxData.Sheets[key]);
|
|
50
|
+
});
|
|
51
|
+
return res;
|
|
52
|
+
} catch (error) {}
|
|
53
|
+
},
|
|
41
54
|
// 对指定文件写入信息
|
|
42
55
|
write(relativePath, data) {
|
|
43
56
|
const fullPath = getPath(relativePath);
|
|
@@ -55,6 +68,24 @@ module.exports = {
|
|
|
55
68
|
}
|
|
56
69
|
return res;
|
|
57
70
|
},
|
|
71
|
+
// 写入xlsx表格
|
|
72
|
+
writeXlsx(relativePath, sheets) {
|
|
73
|
+
const fullPath = getPath(relativePath);
|
|
74
|
+
|
|
75
|
+
// 新建xlsx对象
|
|
76
|
+
const wb = xlsx.utils.book_new()
|
|
77
|
+
Object.entries(sheets).forEach(([key, value]) => {
|
|
78
|
+
//通过工具将json转表xlsx工作表对象
|
|
79
|
+
const ws = xlsx.utils.json_to_sheet(value);
|
|
80
|
+
// 设置xlsx每一列的宽度
|
|
81
|
+
ws['!cols'] = [
|
|
82
|
+
{ width: 30 }, { width: 50 }, { width: 30 }, { width: 30 }
|
|
83
|
+
];
|
|
84
|
+
// 把每个sheet加入xlsx
|
|
85
|
+
xlsx.utils.book_append_sheet(wb, ws, key);
|
|
86
|
+
});
|
|
87
|
+
xlsx.writeFile(wb, fullPath);
|
|
88
|
+
},
|
|
58
89
|
// 删除文件
|
|
59
90
|
delete(relativePath) {
|
|
60
91
|
const fullPath = getPath(relativePath);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const file = require('./file');
|
|
2
|
+
const log = require('./log');
|
|
3
|
+
const getConf = require('../conf');
|
|
4
|
+
|
|
5
|
+
module.exports = function getGroupName() {
|
|
6
|
+
const conf = getConf();
|
|
7
|
+
// 读取packageName
|
|
8
|
+
const package = file.readJson('package.json');
|
|
9
|
+
const groupName = package?.[conf.groupNameKey];
|
|
10
|
+
if (!groupName) {
|
|
11
|
+
log.error(`package.json中,groupName不能为空`);
|
|
12
|
+
process.exit(1);
|
|
13
|
+
}
|
|
14
|
+
return groupName;
|
|
15
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const file = require('./file');
|
|
2
|
+
|
|
3
|
+
let wordJson = null;
|
|
4
|
+
// 根据中文配置文件和id,来获取实际的中文
|
|
5
|
+
exports.readWordJson = function (localWordPath) {
|
|
6
|
+
wordJson = file.readJson(localWordPath);
|
|
7
|
+
return Boolean(wordJson);
|
|
8
|
+
}
|
|
9
|
+
// 根据中文配置文件和id,来获取实际的中文
|
|
10
|
+
exports.getWord = function (id) {
|
|
11
|
+
const word = (wordJson || {})[id];
|
|
12
|
+
return word;
|
|
13
|
+
}
|
package/bin/scripts/util/log.js
CHANGED
|
@@ -1,8 +1,29 @@
|
|
|
1
1
|
const chalk = require('chalk');
|
|
2
2
|
|
|
3
|
+
const logs = {
|
|
4
|
+
info: [],
|
|
5
|
+
warn: [],
|
|
6
|
+
success: [],
|
|
7
|
+
error: [],
|
|
8
|
+
}
|
|
3
9
|
module.exports = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
10
|
+
logs,
|
|
11
|
+
info: (msg) => {
|
|
12
|
+
logs['info'].push(msg);
|
|
13
|
+
console.log(chalk.cyan(msg));
|
|
14
|
+
},
|
|
15
|
+
warnToLog: (msg) => {
|
|
16
|
+
console.log(chalk.yellow(msg));
|
|
17
|
+
},
|
|
18
|
+
warn: (msg) => {
|
|
19
|
+
logs['warn'].push(msg);
|
|
20
|
+
},
|
|
21
|
+
success: (msg) => {
|
|
22
|
+
logs['success'].push(msg);
|
|
23
|
+
console.log(chalk.green(msg));
|
|
24
|
+
},
|
|
25
|
+
error: (msg) => {
|
|
26
|
+
logs['error'].push(msg);
|
|
27
|
+
console.log(chalk.red(msg));
|
|
28
|
+
}
|
|
8
29
|
};
|