vsn 0.1.146 → 0.1.147

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.
@@ -84,6 +84,7 @@ var __values = (this && this.__values) || function(o) {
84
84
  };
85
85
  Object.defineProperty(exports, "__esModule", { value: true });
86
86
  exports.FunctionCallNode = void 0;
87
+ var Scope_1 = require("../Scope");
87
88
  var Tag_1 = require("../Tag");
88
89
  var Node_1 = require("./Node");
89
90
  var ScopeMemberNode_1 = require("./ScopeMemberNode");
@@ -176,27 +177,26 @@ var FunctionCallNode = /** @class */ (function (_super) {
176
177
  _functionScope = functionScope;
177
178
  _c.label = 7;
178
179
  case 7:
179
- _c.trys.push([7, 15, 16, 17]);
180
+ _c.trys.push([7, 16, 17, 18]);
180
181
  tags_1 = __values(tags), tags_1_1 = tags_1.next();
181
182
  _c.label = 8;
182
183
  case 8:
183
- if (!!tags_1_1.done) return [3 /*break*/, 14];
184
+ if (!!tags_1_1.done) return [3 /*break*/, 15];
184
185
  _tag = tags_1_1.value;
185
- if (_tag === null) {
186
- _functionScope = functionScope;
187
- }
188
- else {
189
- _functionScope = _tag.scope;
190
- }
191
- if (!_functionScope.has(functionName)) return [3 /*break*/, 9];
186
+ if (!(_tag && _tag.scope.has(functionName))) return [3 /*break*/, 9];
187
+ func = _tag.scope.get(functionName);
188
+ _functionScope = _tag.scope;
189
+ return [3 /*break*/, 12];
190
+ case 9:
191
+ if (!(_functionScope instanceof Scope_1.Scope && _functionScope.has(functionName))) return [3 /*break*/, 10];
192
192
  func = _functionScope.get(functionName);
193
- return [3 /*break*/, 11];
194
- case 9: return [4 /*yield*/, this.fnc.evaluate(scope, dom, _tag)];
195
- case 10:
193
+ return [3 /*break*/, 12];
194
+ case 10: return [4 /*yield*/, this.fnc.evaluate(scope, dom, _tag)];
195
+ case 11:
196
196
  func = _c.sent();
197
- _c.label = 11;
198
- case 11: return [4 /*yield*/, this.callFunction.apply(this, __spreadArray([func, _functionScope, dom, _tag], __read(values)))];
199
- case 12:
197
+ _c.label = 12;
198
+ case 12: return [4 /*yield*/, this.callFunction.apply(this, __spreadArray([func, _functionScope, dom, _tag], __read(values)))];
199
+ case 13:
200
200
  _a = __read.apply(void 0, [_c.sent(), 2]), result = _a[0], success = _a[1];
201
201
  if (success) {
202
202
  returnValues.push(result);
@@ -205,22 +205,22 @@ var FunctionCallNode = /** @class */ (function (_super) {
205
205
  else {
206
206
  console.warn("Function " + functionName + " was not found in current scope.");
207
207
  }
208
- _c.label = 13;
209
- case 13:
208
+ _c.label = 14;
209
+ case 14:
210
210
  tags_1_1 = tags_1.next();
211
211
  return [3 /*break*/, 8];
212
- case 14: return [3 /*break*/, 17];
213
- case 15:
212
+ case 15: return [3 /*break*/, 18];
213
+ case 16:
214
214
  e_1_1 = _c.sent();
215
215
  e_1 = { error: e_1_1 };
216
- return [3 /*break*/, 17];
217
- case 16:
216
+ return [3 /*break*/, 18];
217
+ case 17:
218
218
  try {
219
219
  if (tags_1_1 && !tags_1_1.done && (_b = tags_1.return)) _b.call(tags_1);
220
220
  }
221
221
  finally { if (e_1) throw e_1.error; }
222
222
  return [7 /*endfinally*/];
223
- case 17:
223
+ case 18:
224
224
  if (calls === 1) {
225
225
  return [2 /*return*/, returnValues[0]];
226
226
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FunctionCallNode.js","sourceRoot":"","sources":["../../src/AST/FunctionCallNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FunctionCallNode.js","sourceRoot":"","sources":["../../src/AST/FunctionCallNode.ts"],"names":[],"mappings":"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"}
@@ -70,6 +70,7 @@ var ServiceDemo = /** @class */ (function (_super) {
70
70
  if (num === void 0) { num = 1; }
71
71
  return __awaiter(this, void 0, void 0, function () {
72
72
  return __generator(this, function (_a) {
73
+ console.log('ServiceDemo.add', this, num);
73
74
  return [2 /*return*/, this.count += num];
74
75
  });
75
76
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceDemo.js","sourceRoot":"","sources":["../../src/demo/ServiceDemo.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8BAAoE;AAGpE;IAAiC,+BAAO;IAAxC;QAAA,qEAOC;QALU,WAAK,GAAW,CAAC,CAAC;;IAK7B,CAAC;IAHS,yBAAG,GAAT,UAAU,GAAa;QAAb,oBAAA,EAAA,OAAa;;;gBACnB,sBAAO,IAAI,CAAC,KAAK,IAAI,GAAG,EAAC;;;KAC5B;IAJD;QADC,cAAQ,CAAC,qBAAe,CAAC;8CACD;IAFhB,WAAW;QADvB,cAAQ,CAAC,OAAO,CAAC,aAAa,CAAC;OACnB,WAAW,CAOvB;IAAD,kBAAC;CAAA,AAPD,CAAiC,aAAO,GAOvC;AAPY,kCAAW"}
1
+ {"version":3,"file":"ServiceDemo.js","sourceRoot":"","sources":["../../src/demo/ServiceDemo.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8BAAoE;AAGpE;IAAiC,+BAAO;IAAxC;QAAA,qEAQC;QANU,WAAK,GAAW,CAAC,CAAC;;IAM7B,CAAC;IAJS,yBAAG,GAAT,UAAU,GAAa;QAAb,oBAAA,EAAA,OAAa;;;gBACnB,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC1C,sBAAO,IAAI,CAAC,KAAK,IAAI,GAAG,EAAC;;;KAC5B;IALD;QADC,cAAQ,CAAC,qBAAe,CAAC;8CACD;IAFhB,WAAW;QADvB,cAAQ,CAAC,OAAO,CAAC,aAAa,CAAC;OACnB,WAAW,CAQvB;IAAD,kBAAC;CAAA,AARD,CAAiC,aAAO,GAQvC;AARY,kCAAW"}
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const VERSION = "0.1.146";
1
+ export declare const VERSION = "0.1.147";
package/dist/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = '0.1.146';
4
+ exports.VERSION = '0.1.147';
5
5
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vsn",
3
- "version": "0.1.146",
3
+ "version": "0.1.147",
4
4
  "description": "SEO Friendly Javascript/Typescript Framework",
5
5
  "keywords": [
6
6
  "framework",
@@ -35,7 +35,6 @@ export class FunctionCallNode<T = any> extends Node implements TreeNode {
35
35
  }
36
36
 
37
37
  protected async _evaluate(scope: Scope, dom: DOM, tag: Tag = null) {
38
- // @todo: Need to rewrite/refactor this. It's a bit of a mess with element queries.
39
38
  let tags: Tag[] = [];
40
39
  let functionScope: Scope = scope;
41
40
  if (this.fnc instanceof ScopeMemberNode) {
@@ -65,13 +64,10 @@ export class FunctionCallNode<T = any> extends Node implements TreeNode {
65
64
  let _functionScope: Scope = functionScope;
66
65
 
67
66
  for (const _tag of tags) {
68
- if (_tag === null) {
69
- _functionScope = functionScope;
70
- } else {
67
+ if (_tag && _tag.scope.has(functionName)) {
68
+ func = _tag.scope.get(functionName);
71
69
  _functionScope = _tag.scope;
72
- }
73
-
74
- if (_functionScope.has(functionName)) {
70
+ } else if (_functionScope instanceof Scope && _functionScope.has(functionName)) {
75
71
  func = _functionScope.get(functionName);
76
72
  } else {
77
73
  func = await this.fnc.evaluate(scope, dom, _tag);
@@ -6,6 +6,7 @@ export class ServiceDemo extends Service {
6
6
  public count: number = 0;
7
7
 
8
8
  async add(num: number=1): Promise<number> {
9
+ console.log('ServiceDemo.add', this, num);
9
10
  return this.count += num;
10
11
  }
11
12
  }
package/src/version.ts CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = '0.1.146';
1
+ export const VERSION = '0.1.147';
2
2
 
@@ -1,5 +1,19 @@
1
1
  import {Tree} from "../../src/AST";
2
2
  import {Scope} from "../../src/Scope";
3
+ import {Registry} from "../../src/Registry";
4
+ import {DOM, Service, Tag} from "../../src/vsn";
5
+
6
+
7
+ @Registry.service('FunctionNodeScopeTestService')
8
+ class FunctionNodeScopeTestController extends Service {
9
+ test1() {
10
+ return this.test2();
11
+ }
12
+
13
+ test2() {
14
+ return 99;
15
+ }
16
+ }
3
17
 
4
18
 
5
19
  describe('FunctionNode', () => {
@@ -20,4 +34,18 @@ describe('FunctionNode', () => {
20
34
  const v = await tree.evaluate(scope, null, null);
21
35
  expect(v).toBe(3);
22
36
  });
37
+
38
+ it("methods should be callable with correct binding", async () => {
39
+ document.body.innerHTML = `
40
+ <div id="service-test" vsn-service:test="FunctionNodeScopeTestService"></div>
41
+ `;
42
+ const dom = new DOM(document.body);
43
+ await new Promise((resolve, reject) => {
44
+ dom.once('built', async () => {
45
+ const result = await dom.exec('test.test1()');
46
+ expect(result).toBe(99);
47
+ resolve(null);
48
+ });
49
+ });
50
+ });
23
51
  });
@@ -35,14 +35,6 @@ describe('Controller', () => {
35
35
  const tag = await dom.exec('#controller');
36
36
  expect(tag).toBeInstanceOf(Tag);
37
37
  expect(tag.scope).toBeInstanceOf(Scope);
38
- /*
39
- expect(tag.scope.keys).toEqual(['test']);
40
- expect(tag.scope.get('test').wrapped).toBeInstanceOf(TestController);
41
- expect(await tag.exec('test.isValid()')).toBe(false);
42
- expect(await tag.exec('test.test')).toBe('notTest');
43
- await tag.exec('test.test = "test"');
44
- expect(await tag.exec('test.isValid()')).toBe(true);
45
- */
46
38
  resolve(null);
47
39
  });
48
40
  });