vsn 0.1.57 → 0.1.60
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/demo.html +5 -2
- package/demo/vsn.js +2 -2
- package/demo/xhr.html +17 -0
- package/dist/AST/ArithmeticAssignmentNode.d.ts +2 -1
- package/dist/AST/ArithmeticAssignmentNode.js +20 -18
- package/dist/AST/ArithmeticAssignmentNode.js.map +1 -1
- package/dist/AST/FunctionCallNode.js +13 -8
- package/dist/AST/FunctionCallNode.js.map +1 -1
- package/dist/AST/FunctionNode.d.ts +7 -8
- package/dist/AST/FunctionNode.js +53 -9
- package/dist/AST/FunctionNode.js.map +1 -1
- package/dist/AST.d.ts +47 -46
- package/dist/AST.js +57 -46
- package/dist/AST.js.map +1 -1
- package/dist/Scope.d.ts +1 -0
- package/dist/Scope.js +5 -0
- package/dist/Scope.js.map +1 -1
- package/dist/Tag.js +3 -4
- package/dist/Tag.js.map +1 -1
- package/dist/attributes/Exec.d.ts +1 -0
- package/dist/attributes/Exec.js +8 -1
- package/dist/attributes/Exec.js.map +1 -1
- package/dist/attributes/RootAttribute.js +3 -0
- package/dist/attributes/RootAttribute.js.map +1 -1
- package/dist/attributes/ScriptAttribute.d.ts +4 -0
- package/dist/attributes/ScriptAttribute.js +45 -0
- package/dist/attributes/ScriptAttribute.js.map +1 -0
- package/dist/attributes/_imports.d.ts +1 -0
- package/dist/attributes/_imports.js +3 -1
- package/dist/attributes/_imports.js.map +1 -1
- package/dist/vsn.js +1 -1
- package/dist/vsn.min.js +2 -2
- package/package.json +1 -1
- package/src/AST/ArithmeticAssignmentNode.ts +19 -17
- package/src/AST/FunctionCallNode.ts +7 -1
- package/src/AST/FunctionNode.ts +30 -10
- package/src/AST.ts +10 -0
- package/src/Scope.ts +6 -0
- package/src/Tag.ts +3 -5
- package/src/attributes/Exec.ts +5 -1
- package/src/attributes/RootAttribute.ts +3 -0
- package/src/attributes/ScriptAttribute.ts +9 -0
- package/src/attributes/_imports.ts +1 -0
- package/src/vsn.ts +1 -1
- package/test/AST/FunctionNode.spec.ts +14 -0
- package/demo/xhr.vsn +0 -4
package/demo/xhr.html
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<div id="huh-wut" vsn-scope>
|
|
2
|
+
<style>
|
|
3
|
+
bb {
|
|
4
|
+
display: block;
|
|
5
|
+
}
|
|
6
|
+
</style>
|
|
7
|
+
<script vsn-script type="text/vsn">
|
|
8
|
+
huh_wut = 1;
|
|
9
|
+
func add(a, b) {
|
|
10
|
+
?(bb).@text = `asd 123 ${a} ${b} hmm?`;
|
|
11
|
+
return a + b;
|
|
12
|
+
}
|
|
13
|
+
</script>
|
|
14
|
+
<bb>bb</bb>
|
|
15
|
+
<span vsn-bind="huh_wut"></span>
|
|
16
|
+
<a href="" vsn-on:click|preventdefault="huh_wut = add(huh_wut, 1)">Click me!</a>
|
|
17
|
+
</div>
|
|
@@ -13,10 +13,11 @@ export declare class ArithmeticAssignmentNode extends Node implements TreeNode {
|
|
|
13
13
|
constructor(left: RootScopeMemberNode | ScopeMemberNode, right: TreeNode, type: TokenType);
|
|
14
14
|
protected _getChildNodes(): Node[];
|
|
15
15
|
evaluate(scope: Scope, dom: DOM, tag?: Tag): Promise<any>;
|
|
16
|
+
handle(name: any, left: any, right: any, localScope: any): any;
|
|
16
17
|
handleNumber(key: any, left: any, right: any, scope: any): any;
|
|
17
18
|
handleString(key: any, left: any, right: any, scope: any): any;
|
|
18
19
|
handleUnit(key: any, left: any, right: any, scope: any): any;
|
|
19
|
-
handleDOMObject(key: string, dom: DOM, domObject: DOMObject, tag: Tag): Promise<any>;
|
|
20
|
+
handleDOMObject(key: string, dom: DOM, scope: Scope, domObject: DOMObject, tag: Tag): Promise<any>;
|
|
20
21
|
handleArray(key: any, left: any, right: any, scope: any): any;
|
|
21
22
|
static match(tokens: Token[]): boolean;
|
|
22
23
|
static parse(lastNode: any, token: any, tokens: Token[]): ArithmeticAssignmentNode;
|
|
@@ -134,7 +134,7 @@ var ArithmeticAssignmentNode = /** @class */ (function (_super) {
|
|
|
134
134
|
if (!(_i < scopes_1.length)) return [3 /*break*/, 13];
|
|
135
135
|
localScope = scopes_1[_i];
|
|
136
136
|
if (!(localScope instanceof DOMObject_1.DOMObject)) return [3 /*break*/, 9];
|
|
137
|
-
return [4 /*yield*/, this.handleDOMObject(name, dom, localScope, tag)];
|
|
137
|
+
return [4 /*yield*/, this.handleDOMObject(name, dom, scope, localScope, tag)];
|
|
138
138
|
case 8:
|
|
139
139
|
_a.sent();
|
|
140
140
|
return [3 /*break*/, 12];
|
|
@@ -148,18 +148,7 @@ var ArithmeticAssignmentNode = /** @class */ (function (_super) {
|
|
|
148
148
|
return [4 /*yield*/, this.right.evaluate(scope, dom, tag)];
|
|
149
149
|
case 11:
|
|
150
150
|
right = _a.sent();
|
|
151
|
-
|
|
152
|
-
left = this.handleArray(name, left, right, localScope);
|
|
153
|
-
}
|
|
154
|
-
else if (left instanceof UnitLiteralNode_1.UnitLiteral || right instanceof UnitLiteralNode_1.UnitLiteral) {
|
|
155
|
-
left = this.handleUnit(name, left, right, localScope);
|
|
156
|
-
}
|
|
157
|
-
else if (Number.isFinite(left)) {
|
|
158
|
-
left = this.handleNumber(name, left, right, localScope);
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
left = this.handleString(name, left, right, localScope);
|
|
162
|
-
}
|
|
151
|
+
left = this.handle(name, left, right, localScope);
|
|
163
152
|
values.push(left);
|
|
164
153
|
_a.label = 12;
|
|
165
154
|
case 12:
|
|
@@ -170,6 +159,21 @@ var ArithmeticAssignmentNode = /** @class */ (function (_super) {
|
|
|
170
159
|
});
|
|
171
160
|
});
|
|
172
161
|
};
|
|
162
|
+
ArithmeticAssignmentNode.prototype.handle = function (name, left, right, localScope) {
|
|
163
|
+
if (left instanceof Array) {
|
|
164
|
+
left = this.handleArray(name, left, right, localScope);
|
|
165
|
+
}
|
|
166
|
+
else if (left instanceof UnitLiteralNode_1.UnitLiteral || right instanceof UnitLiteralNode_1.UnitLiteral) {
|
|
167
|
+
left = this.handleUnit(name, left, right, localScope);
|
|
168
|
+
}
|
|
169
|
+
else if (Number.isFinite(left)) {
|
|
170
|
+
left = this.handleNumber(name, left, right, localScope);
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
left = this.handleString(name, left, right, localScope);
|
|
174
|
+
}
|
|
175
|
+
return left;
|
|
176
|
+
};
|
|
173
177
|
ArithmeticAssignmentNode.prototype.handleNumber = function (key, left, right, scope) {
|
|
174
178
|
if (right !== null && !Number.isFinite(right))
|
|
175
179
|
right = parseFloat("" + right);
|
|
@@ -244,19 +248,17 @@ var ArithmeticAssignmentNode = /** @class */ (function (_super) {
|
|
|
244
248
|
scope.set(key, left);
|
|
245
249
|
return left;
|
|
246
250
|
};
|
|
247
|
-
ArithmeticAssignmentNode.prototype.handleDOMObject = function (key, dom, domObject, tag) {
|
|
251
|
+
ArithmeticAssignmentNode.prototype.handleDOMObject = function (key, dom, scope, domObject, tag) {
|
|
248
252
|
return __awaiter(this, void 0, void 0, function () {
|
|
249
253
|
var left, right;
|
|
250
254
|
return __generator(this, function (_a) {
|
|
251
255
|
switch (_a.label) {
|
|
252
256
|
case 0:
|
|
253
257
|
left = domObject.scope.get(key);
|
|
254
|
-
return [4 /*yield*/, this.right.evaluate(
|
|
258
|
+
return [4 /*yield*/, this.right.evaluate(scope, dom, tag)];
|
|
255
259
|
case 1:
|
|
256
260
|
right = _a.sent();
|
|
257
|
-
|
|
258
|
-
return [2 /*return*/, this.handleArray(key, left, right, domObject.scope)];
|
|
259
|
-
return [2 /*return*/, this.handleString(key, left, right, domObject.scope)];
|
|
261
|
+
return [2 /*return*/, this.handle(key, left, right, domObject.scope)];
|
|
260
262
|
}
|
|
261
263
|
});
|
|
262
264
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArithmeticAssignmentNode.js","sourceRoot":"","sources":["../../src/AST/ArithmeticAssignmentNode.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kCAA+B;AAG/B,8CAA2C;AAC3C,8BAAmE;AACnE,+BAA4B;AAC5B,6DAA0D;AAC1D,qDAAkD;AAClD,uDAAoD;AACpD,+DAA4D;AAC5D,uDAAoD;AACpD,qDAA8C;AAC9C,8BAAkC;AAElC;IAA8C,4CAAI;IAC9C,kCACoB,IAA2C,EAC3C,KAAe,EACf,IAAe;QAHnC,YAKI,iBAAO,SACV;QALmB,UAAI,GAAJ,IAAI,CAAuC;QAC3C,WAAK,GAAL,KAAK,CAAU;QACf,UAAI,GAAJ,IAAI,CAAW;;IAGnC,CAAC;IAES,iDAAc,GAAxB;QACI,OAAO;YACH,IAAI,CAAC,IAAY;YACjB,IAAI,CAAC,KAAa;SACrB,CAAA;IACL,CAAC;IAEK,2CAAQ,GAAd,UAAe,KAAY,EAAE,GAAQ,EAAE,GAAe;QAAf,oBAAA,EAAA,UAAe;;;;;;wBAC9C,MAAM,GAAG,EAAE,CAAC;wBACK,qBAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAA;;wBAA7D,IAAI,GAAW,SAA8C;6BAC/D,CAAA,IAAI,CAAC,IAAI,YAAY,iCAAe,CAAA,EAApC,wBAAoC;wBACtB,qBAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAA;;wBAAvD,KAAK,GAAG,SAA+C;wBAC7D,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,YAAY,mCAAgB,EAAE;4BAC7C,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;gCACvB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;6BACtB;iCAAM;gCACH,MAAM,CAAC,IAAI,OAAX,MAAM,EAAS,KAAK,EAAE;6BACzB;yBACJ;6BAAM,IAAI,KAAK,YAAY,aAAK,EAAE;4BAC/B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;yBACtB;6BAAM,IAAI,KAAK,YAAY,gBAAU,EAAE;4BACpC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;yBAC5B;6BAAM;4BACH,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;yBACrB;;;6BACM,CAAA,CAAC,IAAI,CAAC,IAAI,YAAY,2CAAoB,IAAI,IAAI,CAAC,IAAI,YAAY,mCAAgB,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAA,EAA5G,wBAA4G;wBAClG,qBAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAA;;wBAA/D,QAAQ,GAAG,SAAoD;wBACrE,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;4BAC5B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;yBACzB;6BAAM;4BACH,MAAM,GAAG,QAAQ,CAAC;yBACrB;;;wBAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;;wBAEjB,MAAM,GAAG,EAAE,CAAC;8BACW,EAAN,iBAAM;;;6BAAN,CAAA,oBAAM,CAAA;wBAApB,UAAU;6BACX,CAAA,UAAU,YAAY,qBAAS,CAAA,EAA/B,wBAA+B;wBAC/B,qBAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,EAAA;;
|
|
1
|
+
{"version":3,"file":"ArithmeticAssignmentNode.js","sourceRoot":"","sources":["../../src/AST/ArithmeticAssignmentNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,6 +59,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
59
59
|
exports.FunctionCallNode = void 0;
|
|
60
60
|
var Node_1 = require("./Node");
|
|
61
61
|
var ScopeMemberNode_1 = require("./ScopeMemberNode");
|
|
62
|
+
var FunctionNode_1 = require("./FunctionNode");
|
|
62
63
|
var FunctionCallNode = /** @class */ (function (_super) {
|
|
63
64
|
__extends(FunctionCallNode, _super);
|
|
64
65
|
function FunctionCallNode(fnc, args) {
|
|
@@ -76,22 +77,26 @@ var FunctionCallNode = /** @class */ (function (_super) {
|
|
|
76
77
|
FunctionCallNode.prototype.evaluate = function (scope, dom, tag) {
|
|
77
78
|
if (tag === void 0) { tag = null; }
|
|
78
79
|
return __awaiter(this, void 0, void 0, function () {
|
|
79
|
-
var functionScope, values;
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
switch (_b.label) {
|
|
80
|
+
var functionScope, values, func;
|
|
81
|
+
return __generator(this, function (_a) {
|
|
82
|
+
switch (_a.label) {
|
|
83
83
|
case 0:
|
|
84
84
|
functionScope = scope;
|
|
85
85
|
if (!(this.fnc instanceof ScopeMemberNode_1.ScopeMemberNode)) return [3 /*break*/, 2];
|
|
86
86
|
return [4 /*yield*/, this.fnc.scope.evaluate(scope, dom, tag)];
|
|
87
87
|
case 1:
|
|
88
|
-
functionScope =
|
|
89
|
-
|
|
88
|
+
functionScope = _a.sent();
|
|
89
|
+
_a.label = 2;
|
|
90
90
|
case 2: return [4 /*yield*/, this.args.evaluate(scope, dom, tag)];
|
|
91
91
|
case 3:
|
|
92
|
-
values =
|
|
92
|
+
values = _a.sent();
|
|
93
93
|
return [4 /*yield*/, this.fnc.evaluate(scope, dom, tag)];
|
|
94
|
-
case 4:
|
|
94
|
+
case 4:
|
|
95
|
+
func = _a.sent();
|
|
96
|
+
if (!(func instanceof FunctionNode_1.FunctionNode)) return [3 /*break*/, 6];
|
|
97
|
+
return [4 /*yield*/, func.evaluate(functionScope, dom, tag)];
|
|
98
|
+
case 5: return [2 /*return*/, (_a.sent()).apply(void 0, values)];
|
|
99
|
+
case 6: return [2 /*return*/, func.call.apply(func, __spreadArray([functionScope.wrapped || functionScope], values))];
|
|
95
100
|
}
|
|
96
101
|
});
|
|
97
102
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FunctionCallNode.js","sourceRoot":"","sources":["../../src/AST/FunctionCallNode.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,+BAA4B;AAE5B,qDAAkD;
|
|
1
|
+
{"version":3,"file":"FunctionCallNode.js","sourceRoot":"","sources":["../../src/AST/FunctionCallNode.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,+BAA4B;AAE5B,qDAAkD;AAClD,+CAA4C;AAE5C;IAA+C,oCAAI;IAC/C,0BACoB,GAAsC,EACtC,IAAiC;QAFrD,YAII,iBAAO,SACV;QAJmB,SAAG,GAAH,GAAG,CAAmC;QACtC,UAAI,GAAJ,IAAI,CAA6B;;IAGrD,CAAC;IAES,yCAAc,GAAxB;QACI,OAAO;YACH,IAAI,CAAC,GAAW;YAChB,IAAI,CAAC,IAAY;SACpB,CAAA;IACL,CAAC;IAEY,mCAAQ,GAArB,UAAsB,KAAY,EAAE,GAAQ,EAAE,GAAe;QAAf,oBAAA,EAAA,UAAe;;;;;;wBACrD,aAAa,GAAU,KAAK,CAAC;6BAC7B,CAAA,IAAI,CAAC,GAAG,YAAY,iCAAe,CAAA,EAAnC,wBAAmC;wBACnB,qBAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAA;;wBAA9D,aAAa,GAAG,SAA8C,CAAC;;4BAEpD,qBAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAA;;wBAAlD,MAAM,GAAG,SAAyC;wBAC3C,qBAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAA;;wBAA/C,IAAI,GAAG,SAAwC;6BACjD,CAAA,IAAI,YAAY,2BAAY,CAAA,EAA5B,wBAA4B;wBACpB,qBAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,EAAA;4BAApD,sBAAO,CAAC,SAAoD,CAAA,eAAI,MAAM,GAAE;4BAExE,sBAAO,IAAI,CAAC,IAAI,OAAT,IAAI,iBAAM,aAAa,CAAC,OAAO,IAAI,aAAa,GAAK,MAAM,IAAE;;;;KAE3E;IACL,uBAAC;AAAD,CAAC,AA5BD,CAA+C,WAAI,GA4BlD;AA5BY,4CAAgB"}
|
|
@@ -3,16 +3,15 @@ import { DOM } from "../DOM";
|
|
|
3
3
|
import { Tag } from "../Tag";
|
|
4
4
|
import { Token, TreeNode } from "../AST";
|
|
5
5
|
import { Node } from "./Node";
|
|
6
|
-
import {
|
|
7
|
-
import { RootScopeMemberNode } from "./RootScopeMemberNode";
|
|
8
|
-
import { ScopeMemberNode } from "./ScopeMemberNode";
|
|
6
|
+
import { BlockNode } from "./BlockNode";
|
|
9
7
|
export declare class FunctionNode extends Node implements TreeNode {
|
|
10
|
-
readonly name:
|
|
11
|
-
readonly
|
|
12
|
-
readonly block:
|
|
13
|
-
|
|
8
|
+
readonly name: string;
|
|
9
|
+
readonly args: string[];
|
|
10
|
+
readonly block: BlockNode;
|
|
11
|
+
protected requiresPrep: boolean;
|
|
12
|
+
constructor(name: string, args: string[], block: BlockNode);
|
|
14
13
|
protected _getChildNodes(): Node[];
|
|
15
14
|
prepare(scope: Scope, dom: DOM, tag?: Tag): Promise<void>;
|
|
16
|
-
evaluate(scope: Scope, dom: DOM, tag?: Tag): Promise<
|
|
15
|
+
evaluate(scope: Scope, dom: DOM, tag?: Tag): Promise<(...args: any[]) => Promise<any>>;
|
|
17
16
|
static parse(lastNode: any, token: any, tokens: Token[]): FunctionNode;
|
|
18
17
|
}
|
package/dist/AST/FunctionNode.js
CHANGED
|
@@ -52,14 +52,17 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
52
52
|
};
|
|
53
53
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
54
|
exports.FunctionNode = void 0;
|
|
55
|
+
var Scope_1 = require("../Scope");
|
|
56
|
+
var AST_1 = require("../AST");
|
|
55
57
|
var Node_1 = require("./Node");
|
|
56
58
|
var FunctionNode = /** @class */ (function (_super) {
|
|
57
59
|
__extends(FunctionNode, _super);
|
|
58
|
-
function FunctionNode(name,
|
|
60
|
+
function FunctionNode(name, args, block) {
|
|
59
61
|
var _this = _super.call(this) || this;
|
|
60
62
|
_this.name = name;
|
|
61
|
-
_this.
|
|
63
|
+
_this.args = args;
|
|
62
64
|
_this.block = block;
|
|
65
|
+
_this.requiresPrep = true;
|
|
63
66
|
return _this;
|
|
64
67
|
}
|
|
65
68
|
FunctionNode.prototype._getChildNodes = function () {
|
|
@@ -69,18 +72,59 @@ var FunctionNode = /** @class */ (function (_super) {
|
|
|
69
72
|
};
|
|
70
73
|
FunctionNode.prototype.prepare = function (scope, dom, tag) {
|
|
71
74
|
if (tag === void 0) { tag = null; }
|
|
72
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
73
|
-
return
|
|
74
|
-
|
|
75
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
76
|
+
return __generator(this, function (_a) {
|
|
77
|
+
switch (_a.label) {
|
|
78
|
+
case 0:
|
|
79
|
+
scope.set(this.name, this);
|
|
80
|
+
return [4 /*yield*/, _super.prototype.prepare.call(this, scope, dom, tag)];
|
|
81
|
+
case 1:
|
|
82
|
+
_a.sent();
|
|
83
|
+
return [2 /*return*/];
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
});
|
|
75
87
|
};
|
|
76
88
|
FunctionNode.prototype.evaluate = function (scope, dom, tag) {
|
|
77
89
|
if (tag === void 0) { tag = null; }
|
|
78
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
79
|
-
|
|
80
|
-
|
|
90
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
91
|
+
var _this = this;
|
|
92
|
+
return __generator(this, function (_a) {
|
|
93
|
+
return [2 /*return*/, function () {
|
|
94
|
+
var args = [];
|
|
95
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
96
|
+
args[_i] = arguments[_i];
|
|
97
|
+
}
|
|
98
|
+
return __awaiter(_this, void 0, void 0, function () {
|
|
99
|
+
var functionScope, _a, _b, arg;
|
|
100
|
+
return __generator(this, function (_c) {
|
|
101
|
+
switch (_c.label) {
|
|
102
|
+
case 0:
|
|
103
|
+
functionScope = new Scope_1.Scope(scope);
|
|
104
|
+
for (_a = 0, _b = this.args; _a < _b.length; _a++) {
|
|
105
|
+
arg = _b[_a];
|
|
106
|
+
functionScope.set(arg, args.shift());
|
|
107
|
+
}
|
|
108
|
+
return [4 /*yield*/, this.block.evaluate(functionScope, dom, tag)];
|
|
109
|
+
case 1: return [2 /*return*/, _c.sent()];
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
}];
|
|
114
|
+
});
|
|
115
|
+
});
|
|
81
116
|
};
|
|
82
117
|
FunctionNode.parse = function (lastNode, token, tokens) {
|
|
83
|
-
|
|
118
|
+
tokens.shift(); // skip 'func'
|
|
119
|
+
var name = tokens.shift();
|
|
120
|
+
var argTokens = AST_1.Tree.getBlockTokens(tokens);
|
|
121
|
+
var funcArgs = [];
|
|
122
|
+
for (var _i = 0, argTokens_1 = argTokens; _i < argTokens_1.length; _i++) {
|
|
123
|
+
var t = argTokens_1[_i];
|
|
124
|
+
funcArgs.push(t[0].value);
|
|
125
|
+
}
|
|
126
|
+
var block = AST_1.Tree.processTokens(AST_1.Tree.getBlockTokens(tokens, null)[0]);
|
|
127
|
+
return new FunctionNode(name.value, funcArgs, block);
|
|
84
128
|
};
|
|
85
129
|
return FunctionNode;
|
|
86
130
|
}(Node_1.Node));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FunctionNode.js","sourceRoot":"","sources":["../../src/AST/FunctionNode.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"FunctionNode.js","sourceRoot":"","sources":["../../src/AST/FunctionNode.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kCAA+B;AAG/B,8BAA6C;AAC7C,+BAA4B;AAG5B;IAAkC,gCAAI;IAGlC,sBACoB,IAAY,EACZ,IAAc,EACd,KAAgB;QAHpC,YAKI,iBAAO,SACV;QALmB,UAAI,GAAJ,IAAI,CAAQ;QACZ,UAAI,GAAJ,IAAI,CAAU;QACd,WAAK,GAAL,KAAK,CAAW;QAL1B,kBAAY,GAAY,IAAI,CAAC;;IAQvC,CAAC;IAES,qCAAc,GAAxB;QACI,OAAO;YACH,IAAI,CAAC,KAAK;SACb,CAAC;IACN,CAAC;IAEY,8BAAO,GAApB,UAAqB,KAAY,EAAE,GAAQ,EAAE,GAAe;QAAf,oBAAA,EAAA,UAAe;;;;;wBACxD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;wBAC3B,qBAAM,iBAAM,OAAO,YAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAA;;wBAApC,SAAoC,CAAC;;;;;KACxC;IAEY,+BAAQ,GAArB,UAAsB,KAAY,EAAE,GAAQ,EAAE,GAAe;QAAf,oBAAA,EAAA,UAAe;;;;gBACzD,sBAAO;wBAAO,cAAO;6BAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;4BAAP,yBAAO;;;;;;;wCACX,aAAa,GAAG,IAAI,aAAK,CAAC,KAAK,CAAC,CAAC;wCACvC,WAA2B,EAAT,KAAA,IAAI,CAAC,IAAI,EAAT,cAAS,EAAT,IAAS,EAAE;4CAAlB,GAAG;4CACV,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;yCACxC;wCACM,qBAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,EAAA;4CAAzD,sBAAO,SAAkD,EAAC;;;;qBAC7D,EAAA;;;KACJ;IAEa,kBAAK,GAAnB,UAAoB,QAAQ,EAAE,KAAK,EAAE,MAAe;QAChD,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,cAAc;QAC9B,IAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAM,SAAS,GAAG,UAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAgB,UAAS,EAAT,uBAAS,EAAT,uBAAS,EAAT,IAAS,EAAE;YAAtB,IAAM,CAAC,kBAAA;YACR,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SAC7B;QACD,IAAM,KAAK,GAAG,UAAI,CAAC,aAAa,CAAC,UAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IACL,mBAAC;AAAD,CAAC,AA3CD,CAAkC,WAAI,GA2CrC;AA3CY,oCAAY"}
|
package/dist/AST.d.ts
CHANGED
|
@@ -33,52 +33,53 @@ export declare enum TokenType {
|
|
|
33
33
|
IF = 11,
|
|
34
34
|
ELSE_IF = 12,
|
|
35
35
|
ELSE = 13,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
36
|
+
FUNC = 14,
|
|
37
|
+
NAME = 15,
|
|
38
|
+
L_BRACE = 16,
|
|
39
|
+
R_BRACE = 17,
|
|
40
|
+
L_BRACKET = 18,
|
|
41
|
+
R_BRACKET = 19,
|
|
42
|
+
L_PAREN = 20,
|
|
43
|
+
R_PAREN = 21,
|
|
44
|
+
TILDE = 22,
|
|
45
|
+
PERIOD = 23,
|
|
46
|
+
COMMA = 24,
|
|
47
|
+
COLON = 25,
|
|
48
|
+
SEMICOLON = 26,
|
|
49
|
+
STRING_FORMAT = 27,
|
|
50
|
+
STRING_LITERAL = 28,
|
|
51
|
+
NUMBER_LITERAL = 29,
|
|
52
|
+
BOOLEAN_LITERAL = 30,
|
|
53
|
+
NULL_LITERAL = 31,
|
|
54
|
+
STRICT_EQUALS = 32,
|
|
55
|
+
STRICT_NOT_EQUALS = 33,
|
|
56
|
+
EQUALS = 34,
|
|
57
|
+
NOT_EQUALS = 35,
|
|
58
|
+
GREATER_THAN_EQUAL = 36,
|
|
59
|
+
LESS_THAN_EQUAL = 37,
|
|
60
|
+
GREATER_THAN = 38,
|
|
61
|
+
LESS_THAN = 39,
|
|
62
|
+
ASSIGN = 40,
|
|
63
|
+
AND = 41,
|
|
64
|
+
OR = 42,
|
|
65
|
+
ADD = 43,
|
|
66
|
+
SUBTRACT = 44,
|
|
67
|
+
MULTIPLY = 45,
|
|
68
|
+
DIVIDE = 46,
|
|
69
|
+
ADD_ASSIGN = 47,
|
|
70
|
+
SUBTRACT_ASSIGN = 48,
|
|
71
|
+
MULTIPLY_ASSIGN = 49,
|
|
72
|
+
DIVIDE_ASSIGN = 50,
|
|
73
|
+
EXCLAMATION_POINT = 51,
|
|
74
|
+
ELEMENT_REFERENCE = 52,
|
|
75
|
+
ELEMENT_ATTRIBUTE = 53,
|
|
76
|
+
ELEMENT_STYLE = 54,
|
|
77
|
+
ELEMENT_QUERY = 55,
|
|
78
|
+
UNIT = 56,
|
|
79
|
+
XHR_GET = 57,
|
|
80
|
+
XHR_POST = 58,
|
|
81
|
+
XHR_PUT = 59,
|
|
82
|
+
XHR_DELETE = 60
|
|
82
83
|
}
|
|
83
84
|
export interface TreeNode<T = any> {
|
|
84
85
|
evaluate(scope: Scope, dom: DOM, tag?: Tag): any;
|
package/dist/AST.js
CHANGED
|
@@ -61,6 +61,7 @@ var BooleanLiteralNode_1 = require("./AST/BooleanLiteralNode");
|
|
|
61
61
|
var NotNode_1 = require("./AST/NotNode");
|
|
62
62
|
var XHRNode_1 = require("./AST/XHRNode");
|
|
63
63
|
var StringFormatNode_1 = require("./AST/StringFormatNode");
|
|
64
|
+
var FunctionNode_1 = require("./AST/FunctionNode");
|
|
64
65
|
function lower(str) {
|
|
65
66
|
return str ? str.toLowerCase() : null;
|
|
66
67
|
}
|
|
@@ -87,52 +88,53 @@ var TokenType;
|
|
|
87
88
|
TokenType[TokenType["IF"] = 11] = "IF";
|
|
88
89
|
TokenType[TokenType["ELSE_IF"] = 12] = "ELSE_IF";
|
|
89
90
|
TokenType[TokenType["ELSE"] = 13] = "ELSE";
|
|
90
|
-
TokenType[TokenType["
|
|
91
|
-
TokenType[TokenType["
|
|
92
|
-
TokenType[TokenType["
|
|
93
|
-
TokenType[TokenType["
|
|
94
|
-
TokenType[TokenType["
|
|
95
|
-
TokenType[TokenType["
|
|
96
|
-
TokenType[TokenType["
|
|
97
|
-
TokenType[TokenType["
|
|
98
|
-
TokenType[TokenType["
|
|
99
|
-
TokenType[TokenType["
|
|
100
|
-
TokenType[TokenType["
|
|
101
|
-
TokenType[TokenType["
|
|
102
|
-
TokenType[TokenType["
|
|
103
|
-
TokenType[TokenType["
|
|
104
|
-
TokenType[TokenType["
|
|
105
|
-
TokenType[TokenType["
|
|
106
|
-
TokenType[TokenType["
|
|
107
|
-
TokenType[TokenType["
|
|
108
|
-
TokenType[TokenType["
|
|
109
|
-
TokenType[TokenType["
|
|
110
|
-
TokenType[TokenType["
|
|
111
|
-
TokenType[TokenType["
|
|
112
|
-
TokenType[TokenType["
|
|
113
|
-
TokenType[TokenType["
|
|
114
|
-
TokenType[TokenType["
|
|
115
|
-
TokenType[TokenType["
|
|
116
|
-
TokenType[TokenType["
|
|
117
|
-
TokenType[TokenType["
|
|
118
|
-
TokenType[TokenType["
|
|
119
|
-
TokenType[TokenType["
|
|
120
|
-
TokenType[TokenType["
|
|
121
|
-
TokenType[TokenType["
|
|
122
|
-
TokenType[TokenType["
|
|
123
|
-
TokenType[TokenType["
|
|
124
|
-
TokenType[TokenType["
|
|
125
|
-
TokenType[TokenType["
|
|
126
|
-
TokenType[TokenType["
|
|
127
|
-
TokenType[TokenType["
|
|
128
|
-
TokenType[TokenType["
|
|
129
|
-
TokenType[TokenType["
|
|
130
|
-
TokenType[TokenType["
|
|
131
|
-
TokenType[TokenType["
|
|
132
|
-
TokenType[TokenType["
|
|
133
|
-
TokenType[TokenType["
|
|
134
|
-
TokenType[TokenType["
|
|
135
|
-
TokenType[TokenType["
|
|
91
|
+
TokenType[TokenType["FUNC"] = 14] = "FUNC";
|
|
92
|
+
TokenType[TokenType["NAME"] = 15] = "NAME";
|
|
93
|
+
TokenType[TokenType["L_BRACE"] = 16] = "L_BRACE";
|
|
94
|
+
TokenType[TokenType["R_BRACE"] = 17] = "R_BRACE";
|
|
95
|
+
TokenType[TokenType["L_BRACKET"] = 18] = "L_BRACKET";
|
|
96
|
+
TokenType[TokenType["R_BRACKET"] = 19] = "R_BRACKET";
|
|
97
|
+
TokenType[TokenType["L_PAREN"] = 20] = "L_PAREN";
|
|
98
|
+
TokenType[TokenType["R_PAREN"] = 21] = "R_PAREN";
|
|
99
|
+
TokenType[TokenType["TILDE"] = 22] = "TILDE";
|
|
100
|
+
TokenType[TokenType["PERIOD"] = 23] = "PERIOD";
|
|
101
|
+
TokenType[TokenType["COMMA"] = 24] = "COMMA";
|
|
102
|
+
TokenType[TokenType["COLON"] = 25] = "COLON";
|
|
103
|
+
TokenType[TokenType["SEMICOLON"] = 26] = "SEMICOLON";
|
|
104
|
+
TokenType[TokenType["STRING_FORMAT"] = 27] = "STRING_FORMAT";
|
|
105
|
+
TokenType[TokenType["STRING_LITERAL"] = 28] = "STRING_LITERAL";
|
|
106
|
+
TokenType[TokenType["NUMBER_LITERAL"] = 29] = "NUMBER_LITERAL";
|
|
107
|
+
TokenType[TokenType["BOOLEAN_LITERAL"] = 30] = "BOOLEAN_LITERAL";
|
|
108
|
+
TokenType[TokenType["NULL_LITERAL"] = 31] = "NULL_LITERAL";
|
|
109
|
+
TokenType[TokenType["STRICT_EQUALS"] = 32] = "STRICT_EQUALS";
|
|
110
|
+
TokenType[TokenType["STRICT_NOT_EQUALS"] = 33] = "STRICT_NOT_EQUALS";
|
|
111
|
+
TokenType[TokenType["EQUALS"] = 34] = "EQUALS";
|
|
112
|
+
TokenType[TokenType["NOT_EQUALS"] = 35] = "NOT_EQUALS";
|
|
113
|
+
TokenType[TokenType["GREATER_THAN_EQUAL"] = 36] = "GREATER_THAN_EQUAL";
|
|
114
|
+
TokenType[TokenType["LESS_THAN_EQUAL"] = 37] = "LESS_THAN_EQUAL";
|
|
115
|
+
TokenType[TokenType["GREATER_THAN"] = 38] = "GREATER_THAN";
|
|
116
|
+
TokenType[TokenType["LESS_THAN"] = 39] = "LESS_THAN";
|
|
117
|
+
TokenType[TokenType["ASSIGN"] = 40] = "ASSIGN";
|
|
118
|
+
TokenType[TokenType["AND"] = 41] = "AND";
|
|
119
|
+
TokenType[TokenType["OR"] = 42] = "OR";
|
|
120
|
+
TokenType[TokenType["ADD"] = 43] = "ADD";
|
|
121
|
+
TokenType[TokenType["SUBTRACT"] = 44] = "SUBTRACT";
|
|
122
|
+
TokenType[TokenType["MULTIPLY"] = 45] = "MULTIPLY";
|
|
123
|
+
TokenType[TokenType["DIVIDE"] = 46] = "DIVIDE";
|
|
124
|
+
TokenType[TokenType["ADD_ASSIGN"] = 47] = "ADD_ASSIGN";
|
|
125
|
+
TokenType[TokenType["SUBTRACT_ASSIGN"] = 48] = "SUBTRACT_ASSIGN";
|
|
126
|
+
TokenType[TokenType["MULTIPLY_ASSIGN"] = 49] = "MULTIPLY_ASSIGN";
|
|
127
|
+
TokenType[TokenType["DIVIDE_ASSIGN"] = 50] = "DIVIDE_ASSIGN";
|
|
128
|
+
TokenType[TokenType["EXCLAMATION_POINT"] = 51] = "EXCLAMATION_POINT";
|
|
129
|
+
TokenType[TokenType["ELEMENT_REFERENCE"] = 52] = "ELEMENT_REFERENCE";
|
|
130
|
+
TokenType[TokenType["ELEMENT_ATTRIBUTE"] = 53] = "ELEMENT_ATTRIBUTE";
|
|
131
|
+
TokenType[TokenType["ELEMENT_STYLE"] = 54] = "ELEMENT_STYLE";
|
|
132
|
+
TokenType[TokenType["ELEMENT_QUERY"] = 55] = "ELEMENT_QUERY";
|
|
133
|
+
TokenType[TokenType["UNIT"] = 56] = "UNIT";
|
|
134
|
+
TokenType[TokenType["XHR_GET"] = 57] = "XHR_GET";
|
|
135
|
+
TokenType[TokenType["XHR_POST"] = 58] = "XHR_POST";
|
|
136
|
+
TokenType[TokenType["XHR_PUT"] = 59] = "XHR_PUT";
|
|
137
|
+
TokenType[TokenType["XHR_DELETE"] = 60] = "XHR_DELETE";
|
|
136
138
|
})(TokenType = exports.TokenType || (exports.TokenType = {}));
|
|
137
139
|
var TOKEN_PATTERNS = [
|
|
138
140
|
{
|
|
@@ -215,6 +217,10 @@ var TOKEN_PATTERNS = [
|
|
|
215
217
|
type: TokenType.ELSE,
|
|
216
218
|
pattern: /^else\s?(?=\{)/
|
|
217
219
|
},
|
|
220
|
+
{
|
|
221
|
+
type: TokenType.FUNC,
|
|
222
|
+
pattern: /^func\s/
|
|
223
|
+
},
|
|
218
224
|
{
|
|
219
225
|
type: TokenType.ELEMENT_ATTRIBUTE,
|
|
220
226
|
pattern: /^\.?@[-_a-zA-Z0-9]*/
|
|
@@ -518,6 +524,11 @@ var Tree = /** @class */ (function () {
|
|
|
518
524
|
blockNodes.push(node);
|
|
519
525
|
node = null;
|
|
520
526
|
}
|
|
527
|
+
else if (token.type === TokenType.FUNC) {
|
|
528
|
+
node = FunctionNode_1.FunctionNode.parse(node, token, tokens);
|
|
529
|
+
blockNodes.push(node);
|
|
530
|
+
node = null;
|
|
531
|
+
}
|
|
521
532
|
else if (StringFormatNode_1.StringFormatNode.match(tokens)) {
|
|
522
533
|
node = StringFormatNode_1.StringFormatNode.parse(node, tokens[0], tokens);
|
|
523
534
|
}
|