@bbn/bbn 1.0.137 → 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.
@@ -15,5 +15,6 @@ declare const analyzeFunction: (fn: any) => {
15
15
  name: string;
16
16
  isAsync: boolean;
17
17
  hash: string;
18
+ returnType: string;
18
19
  };
19
20
  export { analyzeFunction };
@@ -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] === "*" && all[i + 1] === "/") {
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
  }
@@ -91,6 +96,18 @@ var analyzeFunction = function (fn) {
91
96
  }
92
97
  parClosed++;
93
98
  }
99
+ else if (isDestructuring && all[i] !== "}") {
100
+ exp += all[i];
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
+ }
94
111
  else if (all[i] === "=" && all[i + 1] === ">") {
95
112
  if (exp.trim() !== "" && parOpened === parClosed) {
96
113
  currentArg["name"] = exp.trim();
@@ -159,7 +176,12 @@ var analyzeFunction = function (fn) {
159
176
  if (exp.trim() === "async") {
160
177
  isAsync = true;
161
178
  }
162
- exp = "";
179
+ if (parOpened > parClosed) {
180
+ exp += all[i];
181
+ }
182
+ else {
183
+ exp = "";
184
+ }
163
185
  }
164
186
  }
165
187
  else {
@@ -187,6 +209,7 @@ var analyzeFunction = function (fn) {
187
209
  name: name,
188
210
  isAsync: isAsync,
189
211
  hash: hash,
212
+ returnType: returnType
190
213
  };
191
214
  };
192
215
  export { analyzeFunction };
package/dist/fn.d.ts CHANGED
@@ -20,6 +20,7 @@ declare const fn: {
20
20
  name: string;
21
21
  isAsync: boolean;
22
22
  hash: string;
23
+ returnType: string;
23
24
  };
24
25
  animateCss: (ele: any, animationName: any, callback: any) => void;
25
26
  arrayBuffer2String: (buf: any) => any;
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] === "*" && all[i + 1] === "/") {
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
  }
@@ -3408,6 +3413,18 @@
3408
3413
  }
3409
3414
  parClosed++;
3410
3415
  }
3416
+ else if (isDestructuring && all[i] !== "}") {
3417
+ exp += all[i];
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
+ }
3411
3428
  else if (all[i] === "=" && all[i + 1] === ">") {
3412
3429
  if (exp.trim() !== "" && parOpened === parClosed) {
3413
3430
  currentArg["name"] = exp.trim();
@@ -3476,7 +3493,12 @@
3476
3493
  if (exp.trim() === "async") {
3477
3494
  isAsync = true;
3478
3495
  }
3479
- exp = "";
3496
+ if (parOpened > parClosed) {
3497
+ exp += all[i];
3498
+ }
3499
+ else {
3500
+ exp = "";
3501
+ }
3480
3502
  }
3481
3503
  }
3482
3504
  else {
@@ -3504,6 +3526,7 @@
3504
3526
  name: name,
3505
3527
  isAsync: isAsync,
3506
3528
  hash: hash,
3529
+ returnType: returnType
3507
3530
  };
3508
3531
  };
3509
3532
  exports.analyzeFunction = analyzeFunction;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bbn/bbn",
3
- "version": "1.0.137",
3
+ "version": "1.0.139",
4
4
  "description": "Javascript toolkit",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",