@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.
@@ -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
  }
@@ -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
- exp = "";
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
@@ -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
  }
@@ -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
- exp = "";
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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bbn/bbn",
3
- "version": "1.0.138",
3
+ "version": "1.0.139",
4
4
  "description": "Javascript toolkit",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",