vsn 0.1.66 → 0.1.69

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.
Files changed (54) hide show
  1. package/demo/demo.html +15 -0
  2. package/demo/vsn.js +2 -2
  3. package/demo/xhr.html +9 -2
  4. package/dist/AST/ClassNode.d.ts +1 -0
  5. package/dist/AST/ClassNode.js +38 -26
  6. package/dist/AST/ClassNode.js.map +1 -1
  7. package/dist/AST/FunctionCallNode.js +46 -24
  8. package/dist/AST/FunctionCallNode.js.map +1 -1
  9. package/dist/AST/FunctionNode.d.ts +4 -2
  10. package/dist/AST/FunctionNode.js +25 -2
  11. package/dist/AST/FunctionNode.js.map +1 -1
  12. package/dist/AST/ModifierNode.d.ts +14 -0
  13. package/dist/AST/ModifierNode.js +88 -0
  14. package/dist/AST/ModifierNode.js.map +1 -0
  15. package/dist/AST/Node.d.ts +2 -0
  16. package/dist/AST/Node.js +24 -0
  17. package/dist/AST/Node.js.map +1 -1
  18. package/dist/AST/OnNode.js +26 -8
  19. package/dist/AST/OnNode.js.map +1 -1
  20. package/dist/AST/RootScopeMemberNode.d.ts +2 -1
  21. package/dist/AST/RootScopeMemberNode.js +5 -2
  22. package/dist/AST/RootScopeMemberNode.js.map +1 -1
  23. package/dist/AST/ScopeMemberNode.d.ts +2 -1
  24. package/dist/AST/ScopeMemberNode.js +9 -6
  25. package/dist/AST/ScopeMemberNode.js.map +1 -1
  26. package/dist/AST/ScopeNodeAbstract.d.ts +8 -0
  27. package/dist/AST/ScopeNodeAbstract.js +82 -0
  28. package/dist/AST/ScopeNodeAbstract.js.map +1 -0
  29. package/dist/AST.d.ts +2 -1
  30. package/dist/AST.js +9 -0
  31. package/dist/AST.js.map +1 -1
  32. package/dist/Scope.d.ts +4 -0
  33. package/dist/Scope.js +32 -3
  34. package/dist/Scope.js.map +1 -1
  35. package/dist/Tag.d.ts +1 -1
  36. package/dist/Tag.js +5 -5
  37. package/dist/Tag.js.map +1 -1
  38. package/dist/helpers/ElementHelper.js +2 -1
  39. package/dist/helpers/ElementHelper.js.map +1 -1
  40. package/package.json +1 -1
  41. package/src/AST/ClassNode.ts +15 -14
  42. package/src/AST/FunctionCallNode.ts +9 -2
  43. package/src/AST/FunctionNode.ts +17 -2
  44. package/src/AST/ModifierNode.ts +30 -0
  45. package/src/AST/Node.ts +7 -0
  46. package/src/AST/OnNode.ts +7 -2
  47. package/src/AST/RootScopeMemberNode.ts +3 -1
  48. package/src/AST/ScopeMemberNode.ts +3 -1
  49. package/src/AST/ScopeNodeAbstract.ts +20 -0
  50. package/src/AST.ts +8 -0
  51. package/src/Scope.ts +32 -3
  52. package/src/Tag.ts +4 -5
  53. package/src/helpers/ElementHelper.ts +2 -1
  54. package/dist/vsn.min.js +0 -2
package/dist/Tag.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Tag.js","sourceRoot":"","sources":["../src/Tag.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tag.js","sourceRoot":"","sources":["../src/Tag.ts"],"names":[],"mappings":"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"}
@@ -17,8 +17,9 @@ var ElementHelper = /** @class */ (function () {
17
17
  }
18
18
  for (var _i = 0, _a = Array.from(element.classList); _i < _a.length; _i++) {
19
19
  var cls = _a[_i];
20
- if (ClassNode_1.ClassNode.isClass(cls))
20
+ if (ClassNode_1.ClassNode.isClass(cls)) {
21
21
  return true;
22
+ }
22
23
  }
23
24
  return false;
24
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ElementHelper.js","sourceRoot":"","sources":["../../src/helpers/ElementHelper.ts"],"names":[],"mappings":";;;AAAA,8CAA2C;AAE3C;IAAA;IAsBA,CAAC;IArBiB,gCAAkB,GAAhC,UAAiC,OAA8B,EAAE,QAAyB;QAAzB,yBAAA,EAAA,iBAAyB;QACtF,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACxE,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxD,IAAM,IAAI,GAAS,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAClC;gBACI,OAAO,IAAI,CAAC;aACf;SACJ;QAED,KAAkB,UAA6B,EAA7B,KAAA,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAA7B,cAA6B,EAA7B,IAA6B,EAAE;YAA5C,IAAM,GAAG,SAAA;YACV,IAAI,qBAAS,CAAC,OAAO,CAAC,GAAG,CAAC;gBACtB,OAAO,IAAI,CAAC;SACnB;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAEa,gCAAkB,GAAhC,UAAiC,EAAU;QACvC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,iBAAiB,EAAE,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClG,CAAC;IACL,oBAAC;AAAD,CAAC,AAtBD,IAsBC;AAtBY,sCAAa"}
1
+ {"version":3,"file":"ElementHelper.js","sourceRoot":"","sources":["../../src/helpers/ElementHelper.ts"],"names":[],"mappings":";;;AAAA,8CAA2C;AAE3C;IAAA;IAuBA,CAAC;IAtBiB,gCAAkB,GAAhC,UAAiC,OAA8B,EAAE,QAAyB;QAAzB,yBAAA,EAAA,iBAAyB;QACtF,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACxE,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxD,IAAM,IAAI,GAAS,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAClC;gBACI,OAAO,IAAI,CAAC;aACf;SACJ;QAED,KAAkB,UAA6B,EAA7B,KAAA,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAA7B,cAA6B,EAA7B,IAA6B,EAAE;YAA5C,IAAM,GAAG,SAAA;YACV,IAAI,qBAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACxB,OAAO,IAAI,CAAC;aACf;SACJ;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAEa,gCAAkB,GAAhC,UAAiC,EAAU;QACvC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,iBAAiB,EAAE,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClG,CAAC;IACL,oBAAC;AAAD,CAAC,AAvBD,IAuBC;AAvBY,sCAAa"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vsn",
3
- "version": "0.1.66",
3
+ "version": "0.1.69",
4
4
  "description": "SEO Friendly Javascript/Typescript Framework",
5
5
  "keywords": [
6
6
  "framework",
@@ -6,11 +6,13 @@ import {Node} from "./Node";
6
6
  import {BlockNode} from "./BlockNode";
7
7
  import {Registry} from "../Registry";
8
8
  import {OnNode} from "./OnNode";
9
+ import {FunctionNode} from "./FunctionNode";
9
10
 
10
11
  export class ClassNode extends Node implements TreeNode {
11
12
  public static readonly classes: {[name: string]: ClassNode} = {};
12
13
  protected requiresPrep: boolean = true;
13
14
  public readonly classScope: Scope = new Scope();
15
+ protected _ready: boolean = false;
14
16
 
15
17
  constructor(
16
18
  public readonly name: string,
@@ -32,6 +34,10 @@ export class ClassNode extends Node implements TreeNode {
32
34
  ClassNode.classes[this.name] = this;
33
35
  await this.block.prepare(this.classScope, dom, tag, meta);
34
36
  Registry.class(this);
37
+
38
+ for (const element of Array.from(dom.querySelectorAll(`.${this.name}`))) {
39
+ await ClassNode.checkForClassChanges(element as HTMLElement, dom, element[Tag.TaggedVariable] || null);
40
+ }
35
41
  }
36
42
 
37
43
  public async prepareTag(tag: Tag, dom: DOM, hasConstructor: boolean | null = null) {
@@ -42,17 +48,10 @@ export class ClassNode extends Node implements TreeNode {
42
48
  const meta = this.updateMeta();
43
49
  await this.block.prepare(tag.scope, dom, tag, meta);
44
50
  if (hasConstructor) {
45
- const fnc = this.classScope.get('construct');
46
- (await fnc.evaluate(tag.scope, dom, tag))();
47
- }
48
- /*
49
- for (const key of this.classScope.keys) {
50
- if (this.classScope.get(key) instanceof OnNode) {
51
- const on = this.classScope.get(key) as OnNode;
52
- tag.addEventHandler(on.name, [], await on.getFunction(tag.scope, dom, tag), on);
53
- }
51
+ const fncCls: FunctionNode = this.classScope.get('construct') as FunctionNode;
52
+ const fnc = await fncCls.getFunction(tag.scope, dom, tag, false);
53
+ await fnc();
54
54
  }
55
- */
56
55
  tag.preppedClasses.push(this.name);
57
56
  }
58
57
 
@@ -61,8 +60,9 @@ export class ClassNode extends Node implements TreeNode {
61
60
  hasDeconstructor = this.classScope.has('deconstruct');
62
61
 
63
62
  if (hasDeconstructor) {
64
- const fnc = this.classScope.get('deconstruct');
65
- (await fnc.evaluate(tag.scope, dom, tag))();
63
+ const fncCls: FunctionNode = this.classScope.get('deconstruct') as FunctionNode;
64
+ const fnc = await fncCls.getFunction(tag.scope, dom, tag, false);
65
+ await fnc();
66
66
  }
67
67
  for (const key of this.classScope.keys) {
68
68
  if (this.classScope.get(key) instanceof OnNode) {
@@ -93,7 +93,8 @@ export class ClassNode extends Node implements TreeNode {
93
93
  public static async checkForClassChanges(element: HTMLElement, dom: DOM, tag: Tag = null) {
94
94
  const classes: string[] = Array.from(element.classList);
95
95
  let addedClasses: string[] = classes.filter(c => Registry.instance.classes.has(c));
96
- let removedClasses: string[] = [];
96
+ let removedClasses: string[];
97
+
97
98
  if (!tag) {
98
99
  tag = await dom.getTagForElement(element, true);
99
100
  }
@@ -116,6 +117,6 @@ export class ClassNode extends Node implements TreeNode {
116
117
  }
117
118
 
118
119
  public static isClass(cls: string): boolean {
119
- return this.classes[cls] instanceof ClassNode;
120
+ return !!this.classes[cls];
120
121
  }
121
122
  }
@@ -34,17 +34,22 @@ export class FunctionCallNode<T = any> extends Node implements TreeNode {
34
34
  if (!func) {
35
35
  const functionName = await (this.fnc as any).name.evaluate(scope, dom, tag);
36
36
  const returnValues = [];
37
+ const toCleanup = [];
37
38
  let calls = 0;
38
39
  for (const className of tag.preppedClasses) {
39
40
  const cls = Registry.instance.classes.getSynchronous(className);
40
41
  if (cls) {
41
42
  if (cls.classScope.has(functionName)) {
42
43
  const fnc = cls.classScope.get(functionName);
43
- returnValues.push((await fnc.evaluate(functionScope, dom, tag))(...values));
44
+ toCleanup.push(fnc);
45
+ returnValues.push(await (await fnc.evaluate(functionScope, dom, tag))(...values));
44
46
  calls++;
45
47
  }
46
48
  }
47
49
  }
50
+ for (const fnc of toCleanup) {
51
+ await fnc.collectGarbage();
52
+ }
48
53
  if (calls === 1) {
49
54
  return returnValues[0];
50
55
  } else if (calls === 0) {
@@ -53,7 +58,9 @@ export class FunctionCallNode<T = any> extends Node implements TreeNode {
53
58
  return returnValues;
54
59
  }
55
60
  } else if (func instanceof FunctionNode) {
56
- return (await func.evaluate(functionScope, dom, tag) as any)(...values);
61
+ const r = await (await func.evaluate(functionScope, dom, tag) as any)(...values);
62
+ await func.collectGarbage();
63
+ return r;
57
64
  } else {
58
65
  return func.call(functionScope.wrapped || functionScope, ...values);
59
66
  }
@@ -7,6 +7,7 @@ import {BlockNode} from "./BlockNode";
7
7
 
8
8
  export class FunctionNode extends Node implements TreeNode {
9
9
  protected requiresPrep: boolean = true;
10
+ protected garbage: FunctionScope[] = [];
10
11
 
11
12
  constructor(
12
13
  public readonly name: string,
@@ -32,9 +33,23 @@ export class FunctionNode extends Node implements TreeNode {
32
33
  return await this.getFunction(scope, dom, tag);
33
34
  }
34
35
 
35
- public async getFunction(scope: Scope, dom: DOM, tag: Tag = null) {
36
+ public async collectGarbage() {
37
+ for (const f of this.garbage) {
38
+ f.collectGarbage();
39
+ }
40
+ this.garbage = [];
41
+ }
42
+
43
+ public async getFunction(scope: Scope, dom: DOM, tag: Tag = null, createFunctionScope: boolean = true) {
44
+ const self = this;
36
45
  return async (...args) => {
37
- const functionScope = new FunctionScope(scope);
46
+ let functionScope;
47
+ if (createFunctionScope && !(scope instanceof FunctionScope)) {
48
+ functionScope = new FunctionScope(scope);
49
+ self.garbage.push(functionScope);
50
+ } else {
51
+ functionScope = scope;
52
+ }
38
53
  for (const arg of this.args) {
39
54
  functionScope.set(arg, args.shift());
40
55
  }
@@ -0,0 +1,30 @@
1
+ import {Scope} from "../Scope";
2
+ import {DOM} from "../DOM";
3
+ import {Tag} from "../Tag";
4
+ import {Token, TreeNode} from "../AST";
5
+ import {Node} from "./Node";
6
+ import {BlockNode} from "./BlockNode";
7
+
8
+
9
+ export class ModifierNode extends Node implements TreeNode {
10
+ constructor(
11
+ public readonly name: string,
12
+ public readonly block: BlockNode
13
+ ) {
14
+ super();
15
+ }
16
+
17
+ public async prepare(scope: Scope, dom: DOM, tag: Tag = null, meta?: any): Promise<void> {
18
+ return null;
19
+ }
20
+
21
+ public async evaluate(scope: Scope, dom: DOM, tag: Tag = null) {
22
+ return null;
23
+ }
24
+
25
+ public static parse(lastNode, token, tokens: Token[]): Node {
26
+ const modifier = tokens.shift().value.substr(1);
27
+ lastNode.modifiers.push(modifier);
28
+ return lastNode;
29
+ }
30
+ }
package/src/AST/Node.ts CHANGED
@@ -8,6 +8,7 @@ export abstract class Node implements TreeNode {
8
8
  protected _isPreparationRequired: boolean;
9
9
  protected childNodes: Node[];
10
10
  protected nodeCache: {[key: string]: Node[]} = {};
11
+ public readonly modifiers: string[] = [];
11
12
  abstract evaluate(scope: Scope, dom: DOM, tag?: Tag);
12
13
 
13
14
  isPreparationRequired(): boolean {
@@ -33,6 +34,12 @@ export abstract class Node implements TreeNode {
33
34
  }
34
35
  }
35
36
 
37
+ async cleanup(scope: Scope, dom: DOM, tag: Tag) {
38
+ for (const node of this.getChildNodes()) {
39
+ await node.cleanup(scope, dom, tag);
40
+ }
41
+ }
42
+
36
43
  protected _getChildNodes(): Node[] {
37
44
  return [];
38
45
  }
package/src/AST/OnNode.ts CHANGED
@@ -7,8 +7,13 @@ import {Tag} from "../Tag";
7
7
  export class OnNode extends FunctionNode implements TreeNode {
8
8
  public async prepare(scope: Scope, dom: DOM, tag: Tag = null, meta): Promise<void> {
9
9
  const classPrep = meta?.ClassNodePrepare; // Don't add event handler if we're in class prep
10
- if (tag && !classPrep)
11
- tag.addEventHandler(this.name, [], await this.getFunction(scope, dom, tag), this);
10
+ if (tag && !classPrep) {
11
+ const func = await this.getFunction(scope, dom, tag);
12
+ tag.addEventHandler(this.name, [], async (...args) => {
13
+ await func(...args);
14
+ await this.collectGarbage();
15
+ }, this);
16
+ }
12
17
  await super.prepare(scope, dom, tag, meta);
13
18
  }
14
19
 
@@ -3,8 +3,9 @@ import {DOM} from "../DOM";
3
3
  import {Tag} from "../Tag";
4
4
  import {TreeNode} from "../AST";
5
5
  import {Node} from "./Node";
6
+ import {ScopeNodeAbstract} from "./ScopeNodeAbstract";
6
7
 
7
- export class RootScopeMemberNode<T = any> extends Node implements TreeNode {
8
+ export class RootScopeMemberNode<T = any> extends ScopeNodeAbstract implements TreeNode {
8
9
  constructor(
9
10
  public readonly name: TreeNode<string>
10
11
  ) {
@@ -19,6 +20,7 @@ export class RootScopeMemberNode<T = any> extends Node implements TreeNode {
19
20
 
20
21
  async evaluate(scope: Scope, dom: DOM, tag: Tag = null) {
21
22
  const name = await this.name.evaluate(scope, dom, tag);
23
+ await this.applyModifiers(name, scope, dom, tag);
22
24
  const value = scope.get(name);
23
25
  return value instanceof Scope && value.wrapped || value;
24
26
  }
@@ -6,8 +6,9 @@ import {DOMObject} from "../DOM/DOMObject";
6
6
  import {TreeNode} from "../AST";
7
7
  import {Node} from "./Node";
8
8
  import {ElementQueryNode} from "./ElementQueryNode";
9
+ import {ScopeNodeAbstract} from "./ScopeNodeAbstract";
9
10
 
10
- export class ScopeMemberNode extends Node implements TreeNode {
11
+ export class ScopeMemberNode extends ScopeNodeAbstract implements TreeNode {
11
12
  constructor(
12
13
  public readonly scope: TreeNode<Scope>,
13
14
  public readonly name: TreeNode<string>
@@ -50,6 +51,7 @@ export class ScopeMemberNode extends Node implements TreeNode {
50
51
  throw Error(`Cannot access "${await this.name.evaluate(scope, dom, tag)}" of undefined.`);
51
52
  }
52
53
  const name = await this.name.evaluate(scope, dom, tag);
54
+ await this.applyModifiers(name, parent, dom, tag);
53
55
  const value: any = parent.get(name, false);
54
56
  values.push(value instanceof Scope && value.wrapped || value);
55
57
  }
@@ -0,0 +1,20 @@
1
+ import {Node} from "./Node";
2
+ import {TreeNode} from "../AST";
3
+ import {Scope} from "../Scope";
4
+ import {DOM} from "../DOM";
5
+ import {Tag} from "../Tag";
6
+ import {Registry} from "../Registry";
7
+
8
+ export abstract class ScopeNodeAbstract extends Node implements TreeNode {
9
+ async applyModifiers(name: string, scope: Scope, dom: DOM, tag: Tag) {
10
+ let type: string;
11
+ for (const modifier of this.modifiers) {
12
+ if (Registry.instance.types.has(modifier)) {
13
+ type = modifier;
14
+ break;
15
+ }
16
+ }
17
+ if (type)
18
+ scope.setType(name, type);
19
+ }
20
+ }
package/src/AST.ts CHANGED
@@ -29,6 +29,7 @@ import {StringFormatNode} from "./AST/StringFormatNode";
29
29
  import {FunctionNode} from "./AST/FunctionNode";
30
30
  import {ClassNode} from "./AST/ClassNode";
31
31
  import {OnNode} from "./AST/OnNode";
32
+ import {ModifierNode} from "./AST/ModifierNode";
32
33
 
33
34
  function lower(str: string): string {
34
35
  return str ? str.toLowerCase() : null;
@@ -117,6 +118,7 @@ export enum TokenType {
117
118
  XHR_POST,
118
119
  XHR_PUT,
119
120
  XHR_DELETE,
121
+ MODIFIER,
120
122
  }
121
123
 
122
124
  const TOKEN_PATTERNS: TokenPattern[] = [
@@ -363,6 +365,10 @@ const TOKEN_PATTERNS: TokenPattern[] = [
363
365
  {
364
366
  type: TokenType.EXCLAMATION_POINT,
365
367
  pattern: /^!/
368
+ },
369
+ {
370
+ type: TokenType.MODIFIER,
371
+ pattern: /^\|\S+/
366
372
  }
367
373
  ];
368
374
 
@@ -585,6 +591,8 @@ export class Tree {
585
591
  tokens.shift()
586
592
  } else if (tokens[0].type === TokenType.EXCLAMATION_POINT) {
587
593
  node = NotNode.parse(node, tokens[0], tokens);
594
+ } else if (tokens[0].type === TokenType.MODIFIER) {
595
+ node = ModifierNode.parse(node, tokens[0], tokens);
588
596
  } else {
589
597
  let code: string = Tree.toCode(tokens, 10);
590
598
  throw Error(`Syntax Error. Near ${code}`);
package/src/Scope.ts CHANGED
@@ -32,14 +32,25 @@ export class Scope extends EventDispatcher {
32
32
  }
33
33
 
34
34
  public set parentScope(scope: Scope) {
35
- this._parentScope = scope;
36
- scope.addChild(this);
35
+ if (scope) {
36
+ this._parentScope = scope;
37
+ scope.addChild(this);
38
+ } else if (this._parentScope){
39
+ this._parentScope.removeChild(this);
40
+ this._parentScope = null;
41
+ }
37
42
  }
38
43
 
39
44
  public addChild(scope: Scope) {
40
45
  this.children.push(scope);
41
46
  }
42
47
 
48
+ public removeChild(scope: Scope) {
49
+ const index = this.children.indexOf(scope);
50
+ if (index > -1)
51
+ this.children.splice(index, 1);
52
+ }
53
+
43
54
  getReference(path: string, createIfNotFound: boolean = true): ScopeReference {
44
55
  const scopePath: string[] = path.split('.');
45
56
  let key: string = scopePath[0];
@@ -127,6 +138,19 @@ export class Scope extends EventDispatcher {
127
138
  this.parentScope = null;
128
139
  }
129
140
 
141
+ collectGarbage(force: boolean = false) {
142
+ for (const child of this.children) {
143
+ child.collectGarbage(force);
144
+ }
145
+ if (force)
146
+ this.cleanup();
147
+ }
148
+
149
+ deconstruct() {
150
+ super.deconstruct();
151
+ this.collectGarbage(true);
152
+ }
153
+
130
154
  public wrap(toWrap: any, triggerUpdates: boolean = false, updateFromWrapped: boolean = true) {
131
155
  if (toWrap instanceof ScopeData) {
132
156
  if (this._data instanceof EventDispatcher) {
@@ -235,10 +259,15 @@ export class FunctionScope extends Scope {
235
259
  }
236
260
 
237
261
  set(key: string, value: any) {
238
- if (this.parentScope.has(key) || ['$', '@'].indexOf(key[0]) > -1) {
262
+ if (this.parentScope && (this.parentScope.has(key) || ['$', '@'].indexOf(key[0]) > -1)) {
239
263
  this.parentScope.set(key, value);
240
264
  } else {
241
265
  super.set(key, value);
242
266
  }
243
267
  }
268
+
269
+ collectGarbage(force: boolean = true) {
270
+ super.collectGarbage(true);
271
+ this.cleanup();
272
+ }
244
273
  }
package/src/Tag.ts CHANGED
@@ -21,9 +21,8 @@ export enum TagState {
21
21
  Built,
22
22
  }
23
23
 
24
- export const TaggedVariable:string = '_vsn_tag';
25
-
26
24
  export class Tag extends DOMObject {
25
+ public static readonly TaggedVariable: string = '_vsn_tag';
27
26
  public readonly rawAttributes: { [key: string]: string; };
28
27
  public readonly parsedAttributes: { [key: string]: string[]; };
29
28
  public readonly deferredAttributes: Attribute[] = [];
@@ -58,7 +57,7 @@ export class Tag extends DOMObject {
58
57
  ...props
59
58
  ) {
60
59
  super(element, props);
61
- element[TaggedVariable] = this;
60
+ element[Tag.TaggedVariable] = this;
62
61
  this.rawAttributes = {};
63
62
  this.parsedAttributes = {};
64
63
  this.attributes = [];
@@ -240,9 +239,9 @@ export class Tag extends DOMObject {
240
239
  let parentElement: HTMLElement = this.element.parentElement as HTMLElement;
241
240
  let foundParent = false;
242
241
  while (parentElement) {
243
- if (parentElement[TaggedVariable]) {
242
+ if (parentElement[Tag.TaggedVariable]) {
244
243
  foundParent = true;
245
- this.parentTag = parentElement[TaggedVariable];
244
+ this.parentTag = parentElement[Tag.TaggedVariable];
246
245
  break;
247
246
  }
248
247
 
@@ -12,8 +12,9 @@ export class ElementHelper {
12
12
  }
13
13
 
14
14
  for (const cls of Array.from(element.classList)) {
15
- if (ClassNode.isClass(cls))
15
+ if (ClassNode.isClass(cls)) {
16
16
  return true;
17
+ }
17
18
  }
18
19
 
19
20
  return false;