@bbn/bbn 1.0.138 → 1.0.139
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/dist/fn/misc/analyzeFunction.d.ts +1 -0
- package/dist/fn/misc/analyzeFunction.js +22 -2
- package/dist/fn.d.ts +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +22 -2
- package/package.json +1 -1
|
@@ -31,13 +31,14 @@ var analyzeFunction = function (fn) {
|
|
|
31
31
|
var isComment = false;
|
|
32
32
|
var isCommentLine = false;
|
|
33
33
|
var isDestructuring = false;
|
|
34
|
+
var returnType = "";
|
|
34
35
|
for (var i = 0; i < all.length; i++) {
|
|
35
36
|
// Handle string literals
|
|
36
37
|
if (!isComment && all[i] === "/" && all[i + 1] === "*") {
|
|
37
38
|
isComment = true;
|
|
38
39
|
exp = "";
|
|
39
40
|
}
|
|
40
|
-
else if (all[i] === "
|
|
41
|
+
else if (all[i] === "/" && all[i - 1] === "*") {
|
|
41
42
|
isComment = false;
|
|
42
43
|
}
|
|
43
44
|
else if (!isCommentLine && all[i] === "/" && all[i + 1] === "/") {
|
|
@@ -70,6 +71,10 @@ var analyzeFunction = function (fn) {
|
|
|
70
71
|
}
|
|
71
72
|
else if (exp.trim() !== "async") {
|
|
72
73
|
name = exp.trim();
|
|
74
|
+
var tmp = name.match(/^([a-zA-Z0-9_]+)<[a-zA-Z0-9_]+>$/);
|
|
75
|
+
if (tmp) {
|
|
76
|
+
name = tmp[1];
|
|
77
|
+
}
|
|
73
78
|
}
|
|
74
79
|
exp = "";
|
|
75
80
|
}
|
|
@@ -94,6 +99,15 @@ var analyzeFunction = function (fn) {
|
|
|
94
99
|
else if (isDestructuring && all[i] !== "}") {
|
|
95
100
|
exp += all[i];
|
|
96
101
|
}
|
|
102
|
+
else if (parOpened && parOpened === parClosed && all[i] === ":") {
|
|
103
|
+
var matches = all.substring(i + 1).trim().match(/^\s*([a-zA-Z0-9_]+)\s*\{/);
|
|
104
|
+
if (!matches) {
|
|
105
|
+
throw Error("Unexpected ':' while parsing function");
|
|
106
|
+
}
|
|
107
|
+
returnType = matches[1];
|
|
108
|
+
body = all.substring(i + matches[0].length).trim();
|
|
109
|
+
break;
|
|
110
|
+
}
|
|
97
111
|
else if (all[i] === "=" && all[i + 1] === ">") {
|
|
98
112
|
if (exp.trim() !== "" && parOpened === parClosed) {
|
|
99
113
|
currentArg["name"] = exp.trim();
|
|
@@ -162,7 +176,12 @@ var analyzeFunction = function (fn) {
|
|
|
162
176
|
if (exp.trim() === "async") {
|
|
163
177
|
isAsync = true;
|
|
164
178
|
}
|
|
165
|
-
|
|
179
|
+
if (parOpened > parClosed) {
|
|
180
|
+
exp += all[i];
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
exp = "";
|
|
184
|
+
}
|
|
166
185
|
}
|
|
167
186
|
}
|
|
168
187
|
else {
|
|
@@ -190,6 +209,7 @@ var analyzeFunction = function (fn) {
|
|
|
190
209
|
name: name,
|
|
191
210
|
isAsync: isAsync,
|
|
192
211
|
hash: hash,
|
|
212
|
+
returnType: returnType
|
|
193
213
|
};
|
|
194
214
|
};
|
|
195
215
|
export { analyzeFunction };
|
package/dist/fn.d.ts
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -1608,6 +1608,7 @@ declare module "fn/misc/analyzeFunction" {
|
|
|
1608
1608
|
name: string;
|
|
1609
1609
|
isAsync: boolean;
|
|
1610
1610
|
hash: string;
|
|
1611
|
+
returnType: string;
|
|
1611
1612
|
};
|
|
1612
1613
|
export { analyzeFunction };
|
|
1613
1614
|
}
|
|
@@ -4693,6 +4694,7 @@ declare module "fn" {
|
|
|
4693
4694
|
name: string;
|
|
4694
4695
|
isAsync: boolean;
|
|
4695
4696
|
hash: string;
|
|
4697
|
+
returnType: string;
|
|
4696
4698
|
};
|
|
4697
4699
|
animateCss: (ele: any, animationName: any, callback: any) => void;
|
|
4698
4700
|
arrayBuffer2String: (buf: any) => any;
|
package/dist/index.js
CHANGED
|
@@ -3348,13 +3348,14 @@
|
|
|
3348
3348
|
var isComment = false;
|
|
3349
3349
|
var isCommentLine = false;
|
|
3350
3350
|
var isDestructuring = false;
|
|
3351
|
+
var returnType = "";
|
|
3351
3352
|
for (var i = 0; i < all.length; i++) {
|
|
3352
3353
|
// Handle string literals
|
|
3353
3354
|
if (!isComment && all[i] === "/" && all[i + 1] === "*") {
|
|
3354
3355
|
isComment = true;
|
|
3355
3356
|
exp = "";
|
|
3356
3357
|
}
|
|
3357
|
-
else if (all[i] === "
|
|
3358
|
+
else if (all[i] === "/" && all[i - 1] === "*") {
|
|
3358
3359
|
isComment = false;
|
|
3359
3360
|
}
|
|
3360
3361
|
else if (!isCommentLine && all[i] === "/" && all[i + 1] === "/") {
|
|
@@ -3387,6 +3388,10 @@
|
|
|
3387
3388
|
}
|
|
3388
3389
|
else if (exp.trim() !== "async") {
|
|
3389
3390
|
name = exp.trim();
|
|
3391
|
+
var tmp = name.match(/^([a-zA-Z0-9_]+)<[a-zA-Z0-9_]+>$/);
|
|
3392
|
+
if (tmp) {
|
|
3393
|
+
name = tmp[1];
|
|
3394
|
+
}
|
|
3390
3395
|
}
|
|
3391
3396
|
exp = "";
|
|
3392
3397
|
}
|
|
@@ -3411,6 +3416,15 @@
|
|
|
3411
3416
|
else if (isDestructuring && all[i] !== "}") {
|
|
3412
3417
|
exp += all[i];
|
|
3413
3418
|
}
|
|
3419
|
+
else if (parOpened && parOpened === parClosed && all[i] === ":") {
|
|
3420
|
+
var matches = all.substring(i + 1).trim().match(/^\s*([a-zA-Z0-9_]+)\s*\{/);
|
|
3421
|
+
if (!matches) {
|
|
3422
|
+
throw Error("Unexpected ':' while parsing function");
|
|
3423
|
+
}
|
|
3424
|
+
returnType = matches[1];
|
|
3425
|
+
body = all.substring(i + matches[0].length).trim();
|
|
3426
|
+
break;
|
|
3427
|
+
}
|
|
3414
3428
|
else if (all[i] === "=" && all[i + 1] === ">") {
|
|
3415
3429
|
if (exp.trim() !== "" && parOpened === parClosed) {
|
|
3416
3430
|
currentArg["name"] = exp.trim();
|
|
@@ -3479,7 +3493,12 @@
|
|
|
3479
3493
|
if (exp.trim() === "async") {
|
|
3480
3494
|
isAsync = true;
|
|
3481
3495
|
}
|
|
3482
|
-
|
|
3496
|
+
if (parOpened > parClosed) {
|
|
3497
|
+
exp += all[i];
|
|
3498
|
+
}
|
|
3499
|
+
else {
|
|
3500
|
+
exp = "";
|
|
3501
|
+
}
|
|
3483
3502
|
}
|
|
3484
3503
|
}
|
|
3485
3504
|
else {
|
|
@@ -3507,6 +3526,7 @@
|
|
|
3507
3526
|
name: name,
|
|
3508
3527
|
isAsync: isAsync,
|
|
3509
3528
|
hash: hash,
|
|
3529
|
+
returnType: returnType
|
|
3510
3530
|
};
|
|
3511
3531
|
};
|
|
3512
3532
|
exports.analyzeFunction = analyzeFunction;
|