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.
- package/demo/memory-leak-test.html +34 -1
- package/demo/resources/xhr-memory-leak-test.html +1 -1
- package/demo/vsn.js +2 -2
- package/dist/AST/FunctionCallNode.js +22 -22
- package/dist/AST/FunctionCallNode.js.map +1 -1
- package/dist/demo/ServiceDemo.js +1 -0
- package/dist/demo/ServiceDemo.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/src/AST/FunctionCallNode.ts +3 -7
- package/src/demo/ServiceDemo.ts +1 -0
- package/src/version.ts +1 -1
- package/test/AST/FunctionNode.spec.ts +28 -0
- package/test/Controller.spec.ts +0 -8
|
@@ -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,
|
|
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*/,
|
|
184
|
+
if (!!tags_1_1.done) return [3 /*break*/, 15];
|
|
184
185
|
_tag = tags_1_1.value;
|
|
185
|
-
if (_tag
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
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*/,
|
|
194
|
-
case
|
|
195
|
-
case
|
|
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 =
|
|
198
|
-
case
|
|
199
|
-
case
|
|
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 =
|
|
209
|
-
case
|
|
208
|
+
_c.label = 14;
|
|
209
|
+
case 14:
|
|
210
210
|
tags_1_1 = tags_1.next();
|
|
211
211
|
return [3 /*break*/, 8];
|
|
212
|
-
case
|
|
213
|
-
case
|
|
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*/,
|
|
217
|
-
case
|
|
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
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"FunctionCallNode.js","sourceRoot":"","sources":["../../src/AST/FunctionCallNode.ts"],"names":[],"mappings":"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"}
|
package/dist/demo/ServiceDemo.js
CHANGED
|
@@ -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,
|
|
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.
|
|
1
|
+
export declare const VERSION = "0.1.147";
|
package/dist/version.js
CHANGED
package/package.json
CHANGED
|
@@ -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
|
|
69
|
-
|
|
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);
|
package/src/demo/ServiceDemo.ts
CHANGED
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = '0.1.
|
|
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
|
});
|
package/test/Controller.spec.ts
CHANGED
|
@@ -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
|
});
|