vsn 0.1.120 → 0.1.122
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 +0 -33
- package/demo/examples/component-slots.html +5 -1
- package/demo/named-stack.html +34 -0
- package/demo/silly-animations.html +39 -0
- package/demo/vsn.js +2 -2
- package/dist/AST/{ArithmeticAssignmentNode.d.ts → AssignmentNode.d.ts} +2 -2
- package/dist/AST/{ArithmeticAssignmentNode.js → AssignmentNode.js} +21 -18
- package/dist/AST/AssignmentNode.js.map +1 -0
- package/dist/AST/ElementStyleNode.js +9 -7
- package/dist/AST/ElementStyleNode.js.map +1 -1
- package/dist/AST/ModifierNode.js +3 -1
- package/dist/AST/ModifierNode.js.map +1 -1
- package/dist/AST/NamedStackNode.d.ts +28 -0
- package/dist/AST/NamedStackNode.js +137 -0
- package/dist/AST/NamedStackNode.js.map +1 -0
- package/dist/AST/Node.d.ts +3 -1
- package/dist/AST/Node.js +9 -0
- package/dist/AST/Node.js.map +1 -1
- package/dist/AST/WithNode.d.ts +1 -0
- package/dist/AST/WithNode.js +51 -10
- package/dist/AST/WithNode.js.map +1 -1
- package/dist/AST.d.ts +57 -56
- package/dist/AST.js +85 -62
- package/dist/AST.js.map +1 -1
- package/dist/Scope.d.ts +2 -0
- package/dist/Scope.js +14 -2
- package/dist/Scope.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/{ArithmeticAssignmentNode.ts → AssignmentNode.ts} +7 -3
- package/src/AST/ElementStyleNode.ts +1 -0
- package/src/AST/ModifierNode.ts +3 -1
- package/src/AST/NamedStackNode.ts +80 -0
- package/src/AST/Node.ts +11 -1
- package/src/AST/WithNode.ts +27 -4
- package/src/AST.ts +27 -7
- package/src/Scope.ts +12 -2
- package/src/version.ts +1 -1
- package/dist/AST/ArithmeticAssignmentNode.js.map +0 -1
|
@@ -36,6 +36,7 @@ export class ElementStyleNode extends Node implements TreeNode {
|
|
|
36
36
|
|
|
37
37
|
async evaluate(scope: Scope, dom: DOM, tag: Tag = null) {
|
|
38
38
|
let tags: TagList;
|
|
39
|
+
await this.prepare(scope, dom, tag);
|
|
39
40
|
if (this.elementRef) {
|
|
40
41
|
tags = await this.elementRef.evaluate(scope, dom, tag, true);
|
|
41
42
|
} else if (tag) {
|
package/src/AST/ModifierNode.ts
CHANGED
|
@@ -24,7 +24,9 @@ export class ModifierNode extends Node implements TreeNode {
|
|
|
24
24
|
|
|
25
25
|
public static parse(lastNode, token, tokens: Token[]): Node {
|
|
26
26
|
const modifier = tokens.shift().value.substr(1);
|
|
27
|
-
lastNode
|
|
27
|
+
if (lastNode) {
|
|
28
|
+
lastNode.modifiers.push(modifier);
|
|
29
|
+
}
|
|
28
30
|
return lastNode;
|
|
29
31
|
}
|
|
30
32
|
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import {Scope} from "../Scope";
|
|
2
|
+
import {DOM} from "../DOM";
|
|
3
|
+
import {Tag} from "../Tag";
|
|
4
|
+
import {Token, Tree, TreeNode} from "../AST";
|
|
5
|
+
import {Node} from "./Node";
|
|
6
|
+
import {BlockNode} from "./BlockNode";
|
|
7
|
+
import {LiteralNode} from "./LiteralNode";
|
|
8
|
+
|
|
9
|
+
type StackContext = {
|
|
10
|
+
block: BlockNode;
|
|
11
|
+
scope: Scope;
|
|
12
|
+
dom: DOM;
|
|
13
|
+
tag: Tag;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export class NamedStackNode extends Node implements TreeNode {
|
|
17
|
+
protected requiresPrep: boolean = true;
|
|
18
|
+
protected static stacks: { [key: string]: StackContext[] } = {};
|
|
19
|
+
protected static executions: string[] = [];
|
|
20
|
+
|
|
21
|
+
constructor(
|
|
22
|
+
public readonly stackName: LiteralNode<string>,
|
|
23
|
+
public readonly statements: BlockNode
|
|
24
|
+
) {
|
|
25
|
+
super();
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
protected _getChildNodes(): Node[] {
|
|
29
|
+
return [
|
|
30
|
+
this.stackName,
|
|
31
|
+
this.statements
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
public async evaluate(scope: Scope, dom: DOM, tag: Tag = null) {
|
|
36
|
+
const stackName = await this.stackName.evaluate(scope, dom, tag);
|
|
37
|
+
let execute = false;
|
|
38
|
+
if (!NamedStackNode.stacks[stackName]) {
|
|
39
|
+
NamedStackNode.stacks[stackName] = [];
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (NamedStackNode.executions.indexOf(stackName) === -1)
|
|
43
|
+
execute = true;
|
|
44
|
+
|
|
45
|
+
NamedStackNode.stacks[stackName].push({
|
|
46
|
+
block: this.statements,
|
|
47
|
+
scope: scope,
|
|
48
|
+
dom: dom,
|
|
49
|
+
tag: tag
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
if (execute) {
|
|
53
|
+
NamedStackNode.execute(stackName);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
public static async execute(stackName: string): Promise<boolean> {
|
|
58
|
+
if (NamedStackNode.stacks[stackName].length > 0) {
|
|
59
|
+
const stack = NamedStackNode.stacks[stackName].shift();
|
|
60
|
+
if (NamedStackNode.executions.indexOf(stackName) === -1)
|
|
61
|
+
NamedStackNode.executions.push(stackName);
|
|
62
|
+
|
|
63
|
+
await stack.block.evaluate(stack.scope, stack.dom, stack.tag);
|
|
64
|
+
if (!(await NamedStackNode.execute(stackName))) {
|
|
65
|
+
NamedStackNode.executions.splice(NamedStackNode.executions.indexOf(stackName), 1);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return true;
|
|
69
|
+
} else {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
public static parse(lastNode, token, tokens: Token[]) {
|
|
75
|
+
tokens.shift(); // Consume stack
|
|
76
|
+
const stackName = tokens.shift();
|
|
77
|
+
const statementTokens = Tree.getNextStatementTokens(tokens);
|
|
78
|
+
return new NamedStackNode(new LiteralNode<string>(stackName.value), Tree.processTokens(statementTokens));
|
|
79
|
+
}
|
|
80
|
+
}
|
package/src/AST/Node.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {Scope} from "../Scope";
|
|
2
2
|
import {DOM} from "../DOM";
|
|
3
3
|
import {Tag} from "../Tag";
|
|
4
|
-
import {TreeNode} from "../AST";
|
|
4
|
+
import {Token, TokenType, TreeNode} from "../AST";
|
|
5
5
|
|
|
6
6
|
export interface INodeMeta {
|
|
7
7
|
[key: string]: string | number | boolean | null;
|
|
@@ -78,5 +78,15 @@ export abstract class Node implements TreeNode {
|
|
|
78
78
|
|
|
79
79
|
return nodes;
|
|
80
80
|
}
|
|
81
|
+
|
|
82
|
+
hasModifier(modifier: string): boolean {
|
|
83
|
+
return this.modifiers.indexOf(modifier) !== -1;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
public static moveModifiers(from: Token[], to: Token[]) {
|
|
87
|
+
while (from[0].type == TokenType.MODIFIER) {
|
|
88
|
+
to.unshift(from.shift());
|
|
89
|
+
}
|
|
90
|
+
}
|
|
81
91
|
}
|
|
82
92
|
|
package/src/AST/WithNode.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import {Scope} from "../Scope";
|
|
2
2
|
import {DOM} from "../DOM";
|
|
3
3
|
import {Tag} from "../Tag";
|
|
4
|
-
import {
|
|
4
|
+
import {Token, TokenType, Tree, TreeNode} from "../AST";
|
|
5
5
|
import {Node} from "./Node";
|
|
6
6
|
import {BlockNode} from "./BlockNode";
|
|
7
7
|
import {TagList} from "../Tag/TagList";
|
|
8
8
|
|
|
9
9
|
export class WithNode extends Node implements TreeNode {
|
|
10
|
+
protected requiresPrep: boolean = true;
|
|
11
|
+
|
|
10
12
|
constructor(
|
|
11
13
|
public readonly context: Node,
|
|
12
14
|
public readonly statements: BlockNode
|
|
@@ -23,15 +25,35 @@ export class WithNode extends Node implements TreeNode {
|
|
|
23
25
|
|
|
24
26
|
public async evaluate(scope: Scope, dom: DOM, tag: Tag = null) {
|
|
25
27
|
const context = await this.context.evaluate(scope, dom, tag);
|
|
26
|
-
let tags;
|
|
28
|
+
let tags = [];
|
|
27
29
|
if (context instanceof TagList) {
|
|
28
30
|
tags = context;
|
|
29
31
|
} else if (context instanceof Tag) {
|
|
30
32
|
tags = [context];
|
|
31
33
|
}
|
|
32
34
|
let ret = [];
|
|
33
|
-
|
|
34
|
-
|
|
35
|
+
if (tags.length) {
|
|
36
|
+
if (this.hasModifier('sequential')) { // More like a for loop, needed?
|
|
37
|
+
for (const _tag of tags) {
|
|
38
|
+
await this.statements.prepare(_tag.scope, dom, _tag);
|
|
39
|
+
ret.push(await this.statements.evaluate(_tag.scope, dom, _tag));
|
|
40
|
+
}
|
|
41
|
+
} else {
|
|
42
|
+
const promises = [];
|
|
43
|
+
for (const _tag of tags) {
|
|
44
|
+
await this.statements.prepare(_tag.scope, dom, _tag);
|
|
45
|
+
promises.push(this.statements.evaluate(_tag.scope, dom, _tag));
|
|
46
|
+
}
|
|
47
|
+
ret = await Promise.all(promises);
|
|
48
|
+
}
|
|
49
|
+
} else {
|
|
50
|
+
let _scope;
|
|
51
|
+
if (context instanceof Scope) {
|
|
52
|
+
_scope = context;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
if (_scope)
|
|
56
|
+
ret.push(await this.statements.evaluate(_scope, dom, tag))
|
|
35
57
|
}
|
|
36
58
|
return ret.length === 1 ? ret[0] : ret;
|
|
37
59
|
}
|
|
@@ -40,6 +62,7 @@ export class WithNode extends Node implements TreeNode {
|
|
|
40
62
|
tokens.shift(); // Consume with
|
|
41
63
|
const contextTokens = Tree.getTokensUntil(tokens, TokenType.L_BRACE, false, false, true);
|
|
42
64
|
const statementTokens = Tree.getNextStatementTokens(tokens);
|
|
65
|
+
this.moveModifiers(contextTokens, tokens);
|
|
43
66
|
return new WithNode(Tree.processTokens(contextTokens), Tree.processTokens(statementTokens));
|
|
44
67
|
}
|
|
45
68
|
}
|
package/src/AST.ts
CHANGED
|
@@ -20,7 +20,7 @@ import {FunctionArgumentNode} from "./AST/FunctionArgumentNode";
|
|
|
20
20
|
import {InNode} from "./AST/InNode";
|
|
21
21
|
import {ComparisonNode} from "./AST/ComparisonNode";
|
|
22
22
|
import {ArithmeticNode} from "./AST/ArithmeticNode";
|
|
23
|
-
import {
|
|
23
|
+
import {AssignmentNode} from "./AST/AssignmentNode";
|
|
24
24
|
import {UnitLiteralNode} from "./AST/UnitLiteralNode";
|
|
25
25
|
import {BooleanLiteralNode} from "./AST/BooleanLiteralNode";
|
|
26
26
|
import {NotNode} from "./AST/NotNode";
|
|
@@ -33,6 +33,7 @@ import {ModifierNode} from "./AST/ModifierNode";
|
|
|
33
33
|
import {DispatchEventNode} from "./AST/DispatchEventNode";
|
|
34
34
|
import {WithNode} from "./AST/WithNode";
|
|
35
35
|
import {AsNode} from "./AST/AsNode";
|
|
36
|
+
import {NamedStackNode} from "./AST/NamedStackNode";
|
|
36
37
|
|
|
37
38
|
function lower(str: string): string {
|
|
38
39
|
return str ? str.toLowerCase() : null;
|
|
@@ -70,6 +71,7 @@ export enum TokenType {
|
|
|
70
71
|
AS,
|
|
71
72
|
IN,
|
|
72
73
|
WITH,
|
|
74
|
+
NAMED_STACK,
|
|
73
75
|
FOR,
|
|
74
76
|
IF,
|
|
75
77
|
ELSE_IF,
|
|
@@ -202,7 +204,11 @@ const TOKEN_PATTERNS: TokenPattern[] = [
|
|
|
202
204
|
},
|
|
203
205
|
{
|
|
204
206
|
type: TokenType.WITH,
|
|
205
|
-
pattern: /^with
|
|
207
|
+
pattern: /^with(?=\||\s)?/ // Allows with|sequential
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
type: TokenType.NAMED_STACK,
|
|
211
|
+
pattern: /^stack(?=\||\s)?/
|
|
206
212
|
},
|
|
207
213
|
{
|
|
208
214
|
type: TokenType.FOR,
|
|
@@ -495,9 +501,10 @@ export class Tree {
|
|
|
495
501
|
return tokens;
|
|
496
502
|
}
|
|
497
503
|
|
|
498
|
-
public static processTokens(tokens: Token[]): BlockNode {
|
|
504
|
+
public static processTokens(tokens: Token[], _node: Node=null, _lastBlock: Node=null): BlockNode {
|
|
499
505
|
let blockNodes: Node[] = [];
|
|
500
|
-
let
|
|
506
|
+
let lastBlock: Node = _lastBlock;
|
|
507
|
+
let node: Node = _node;
|
|
501
508
|
let count: number = 0;
|
|
502
509
|
|
|
503
510
|
Tree.stripWhiteSpace(tokens);
|
|
@@ -521,26 +528,39 @@ export class Tree {
|
|
|
521
528
|
node = DispatchEventNode.parse(node, tokens[0], tokens);
|
|
522
529
|
} else if (token.type === TokenType.WITH) {
|
|
523
530
|
node = WithNode.parse(node, tokens[0], tokens);
|
|
531
|
+
lastBlock = node;
|
|
532
|
+
blockNodes.push(node);
|
|
533
|
+
node = null;
|
|
534
|
+
} else if (token.type === TokenType.NAMED_STACK) {
|
|
535
|
+
node = NamedStackNode.parse(node, tokens[0], tokens);
|
|
536
|
+
lastBlock = node;
|
|
537
|
+
blockNodes.push(node);
|
|
538
|
+
node = null;
|
|
524
539
|
} else if (token.type === TokenType.AS) {
|
|
525
540
|
node = AsNode.parse(node, tokens[0], tokens);
|
|
526
541
|
} else if (token.type === TokenType.IF) {
|
|
527
542
|
node = IfStatementNode.parse(node, token, tokens);
|
|
543
|
+
lastBlock = node;
|
|
528
544
|
blockNodes.push(node);
|
|
529
545
|
node = null;
|
|
530
546
|
} else if (token.type === TokenType.FOR) {
|
|
531
547
|
node = ForStatementNode.parse(node, token, tokens);
|
|
548
|
+
lastBlock = node;
|
|
532
549
|
blockNodes.push(node);
|
|
533
550
|
node = null;
|
|
534
551
|
} else if (token.type === TokenType.FUNC) {
|
|
535
552
|
node = FunctionNode.parse(node, token, tokens);
|
|
553
|
+
lastBlock = node;
|
|
536
554
|
blockNodes.push(node);
|
|
537
555
|
node = null;
|
|
538
556
|
} else if (token.type === TokenType.ON) {
|
|
539
557
|
node = OnNode.parse(node, token, tokens);
|
|
558
|
+
lastBlock = node;
|
|
540
559
|
blockNodes.push(node);
|
|
541
560
|
node = null;
|
|
542
561
|
} else if (token.type === TokenType.CLASS) {
|
|
543
562
|
node = ClassNode.parse(node, token, tokens);
|
|
563
|
+
lastBlock = node;
|
|
544
564
|
blockNodes.push(node);
|
|
545
565
|
node = null;
|
|
546
566
|
} else if (StringFormatNode.match(tokens)) {
|
|
@@ -602,8 +622,8 @@ export class Tree {
|
|
|
602
622
|
node = ComparisonNode.parse(node, token, tokens);
|
|
603
623
|
} else if (ArithmeticNode.match(tokens)) {
|
|
604
624
|
node = ArithmeticNode.parse(node, token, tokens);
|
|
605
|
-
} else if (
|
|
606
|
-
node =
|
|
625
|
+
} else if (AssignmentNode.match(tokens)) {
|
|
626
|
+
node = AssignmentNode.parse(node, token, tokens);
|
|
607
627
|
} else if (tokens[0].type === TokenType.WHITESPACE) {
|
|
608
628
|
tokens.shift()
|
|
609
629
|
} else if (tokens[0].type === TokenType.UNIT) {
|
|
@@ -618,7 +638,7 @@ export class Tree {
|
|
|
618
638
|
} else if (tokens[0].type === TokenType.EXCLAMATION_POINT) {
|
|
619
639
|
node = NotNode.parse(node, tokens[0], tokens);
|
|
620
640
|
} else if (tokens[0].type === TokenType.MODIFIER) {
|
|
621
|
-
|
|
641
|
+
ModifierNode.parse(node ? node : lastBlock, tokens[0], tokens);
|
|
622
642
|
} else {
|
|
623
643
|
let code: string = Tree.toCode(tokens, 10);
|
|
624
644
|
throw Error(`Syntax Error. Near ${code}`);
|
package/src/Scope.ts
CHANGED
|
@@ -4,6 +4,7 @@ import {QueryReference} from "./Scope/QueryReference";
|
|
|
4
4
|
import {WrappedArray} from "./Scope/WrappedArray";
|
|
5
5
|
import {ScopeData} from "./Scope/ScopeData";
|
|
6
6
|
import {DynamicScopeData} from "./Scope/DynamicScopeData";
|
|
7
|
+
import {DOM} from "./DOM";
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
export class Scope extends EventDispatcher {
|
|
@@ -11,6 +12,7 @@ export class Scope extends EventDispatcher {
|
|
|
11
12
|
protected _data: ScopeData;
|
|
12
13
|
protected children: Scope[];
|
|
13
14
|
protected _parentScope: Scope;
|
|
15
|
+
protected _isGarbage: boolean = false;
|
|
14
16
|
|
|
15
17
|
constructor(
|
|
16
18
|
parent?: Scope
|
|
@@ -28,7 +30,11 @@ export class Scope extends EventDispatcher {
|
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
public get parentScope(): Scope {
|
|
31
|
-
|
|
33
|
+
if (this._parentScope)
|
|
34
|
+
return this._parentScope;
|
|
35
|
+
|
|
36
|
+
const rootScope = DOM.instance.root.scope;
|
|
37
|
+
return this == rootScope ? null : rootScope;
|
|
32
38
|
}
|
|
33
39
|
|
|
34
40
|
public set parentScope(scope: Scope) {
|
|
@@ -154,7 +160,12 @@ export class Scope extends EventDispatcher {
|
|
|
154
160
|
this.parentScope = null;
|
|
155
161
|
}
|
|
156
162
|
|
|
163
|
+
public get isGarbage(): boolean {
|
|
164
|
+
return this._isGarbage;
|
|
165
|
+
}
|
|
166
|
+
|
|
157
167
|
collectGarbage(force: boolean = false) {
|
|
168
|
+
this._isGarbage = true;
|
|
158
169
|
for (const child of this.children) {
|
|
159
170
|
child.collectGarbage(force);
|
|
160
171
|
}
|
|
@@ -284,6 +295,5 @@ export class FunctionScope extends Scope {
|
|
|
284
295
|
|
|
285
296
|
collectGarbage(force: boolean = true) {
|
|
286
297
|
super.collectGarbage(true);
|
|
287
|
-
this.cleanup();
|
|
288
298
|
}
|
|
289
299
|
}
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = '0.1.
|
|
1
|
+
export const VERSION = '0.1.122';
|
|
2
2
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ArithmeticAssignmentNode.js","sourceRoot":"","sources":["../../src/AST/ArithmeticAssignmentNode.ts"],"names":[],"mappings":"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"}
|