@player-ui/view
Advanced tools
Comparing version 0.0.1-next.13 to 0.0.1-next.14
@@ -141,3 +141,3 @@ 'use strict'; | ||
localValue.forEach((template) => { | ||
var _a2; | ||
var _a2, _b; | ||
const templateAST = this.hooks.onCreateASTNode.call({ | ||
@@ -147,3 +147,4 @@ type: exports.NodeType.Template, | ||
data: template.data, | ||
template: template.value | ||
template: template.value, | ||
dynamic: (_b = template.dynamic) != null ? _b : false | ||
}, template); | ||
@@ -362,3 +363,4 @@ if (templateAST) { | ||
}), | ||
evaluate: (exp) => this.options.evaluator.evaluate(exp, { model: depModelWithParser }) | ||
evaluate: (exp) => this.options.evaluator.evaluate(exp, { model: depModelWithParser }), | ||
node | ||
}), node); | ||
@@ -402,2 +404,3 @@ const previousResult = this.getPreviousResult(node); | ||
}; | ||
resolveOptions.node = resolvedAST; | ||
this.ASTMap.set(resolvedAST, node); | ||
@@ -469,5 +472,5 @@ let resolved = this.hooks.resolve.call(void 0, resolvedAST, resolveOptions); | ||
} | ||
parseTemplate(parser, node) { | ||
parseTemplate(parseObject, node, options) { | ||
const { template, depth } = node; | ||
const data = this.options.data.model.get(node.data); | ||
const data = options.data.model.get(node.data); | ||
if (!data) { | ||
@@ -499,3 +502,5 @@ return null; | ||
} | ||
const parsed = parser.parseObject(JSON.parse(templateStr), exports.NodeType.Value, { templateDepth: node.depth + 1 }); | ||
const parsed = parseObject(JSON.parse(templateStr), exports.NodeType.Value, { | ||
templateDepth: node.depth + 1 | ||
}); | ||
if (parsed) { | ||
@@ -517,4 +522,4 @@ values.push(parsed); | ||
parser.hooks.onCreateASTNode.tap("template", (node) => { | ||
if (node && node.type === exports.NodeType.Template) { | ||
return this.parseTemplate(parser, node); | ||
if (node && node.type === exports.NodeType.Template && !node.dynamic) { | ||
return this.parseTemplate(parser.parseObject.bind(parser), node, this.options); | ||
} | ||
@@ -524,4 +529,13 @@ return node; | ||
} | ||
applyResolverHooks(resolver) { | ||
resolver.hooks.beforeResolve.tap("template", (node, options) => { | ||
if (node && node.type === exports.NodeType.Template && node.dynamic) { | ||
return this.parseTemplate(options.parseNode, node, options); | ||
} | ||
return node; | ||
}); | ||
} | ||
apply(view) { | ||
view.hooks.parser.tap("template", this.applyParserHooks.bind(this)); | ||
view.hooks.resolver.tap("template", this.applyResolverHooks.bind(this)); | ||
} | ||
@@ -528,0 +542,0 @@ } |
@@ -66,2 +66,4 @@ import * as _player_ui_types from '@player-ui/types'; | ||
depth: number; | ||
/** should the template recomputed when data changes */ | ||
dynamic?: boolean; | ||
} | ||
@@ -207,2 +209,4 @@ interface Value extends BaseWithChildren<NodeType.Value>, PluginOptions { | ||
getDependencies?(scope?: 'core' | 'children'): Set<BindingInstance>; | ||
/** original node */ | ||
node?: Node.Node; | ||
}; | ||
@@ -357,2 +361,3 @@ type ResolverOptions = BaseOptions & { | ||
applyParserHooks(parser: Parser): void; | ||
applyResolverHooks(resolver: Resolver): void; | ||
apply(view: View): void; | ||
@@ -359,0 +364,0 @@ } |
@@ -133,3 +133,3 @@ import { SyncWaterfallHook, SyncHook } from 'tapable-ts'; | ||
localValue.forEach((template) => { | ||
var _a2; | ||
var _a2, _b; | ||
const templateAST = this.hooks.onCreateASTNode.call({ | ||
@@ -139,3 +139,4 @@ type: NodeType.Template, | ||
data: template.data, | ||
template: template.value | ||
template: template.value, | ||
dynamic: (_b = template.dynamic) != null ? _b : false | ||
}, template); | ||
@@ -354,3 +355,4 @@ if (templateAST) { | ||
}), | ||
evaluate: (exp) => this.options.evaluator.evaluate(exp, { model: depModelWithParser }) | ||
evaluate: (exp) => this.options.evaluator.evaluate(exp, { model: depModelWithParser }), | ||
node | ||
}), node); | ||
@@ -394,2 +396,3 @@ const previousResult = this.getPreviousResult(node); | ||
}; | ||
resolveOptions.node = resolvedAST; | ||
this.ASTMap.set(resolvedAST, node); | ||
@@ -461,5 +464,5 @@ let resolved = this.hooks.resolve.call(void 0, resolvedAST, resolveOptions); | ||
} | ||
parseTemplate(parser, node) { | ||
parseTemplate(parseObject, node, options) { | ||
const { template, depth } = node; | ||
const data = this.options.data.model.get(node.data); | ||
const data = options.data.model.get(node.data); | ||
if (!data) { | ||
@@ -491,3 +494,5 @@ return null; | ||
} | ||
const parsed = parser.parseObject(JSON.parse(templateStr), NodeType.Value, { templateDepth: node.depth + 1 }); | ||
const parsed = parseObject(JSON.parse(templateStr), NodeType.Value, { | ||
templateDepth: node.depth + 1 | ||
}); | ||
if (parsed) { | ||
@@ -509,4 +514,4 @@ values.push(parsed); | ||
parser.hooks.onCreateASTNode.tap("template", (node) => { | ||
if (node && node.type === NodeType.Template) { | ||
return this.parseTemplate(parser, node); | ||
if (node && node.type === NodeType.Template && !node.dynamic) { | ||
return this.parseTemplate(parser.parseObject.bind(parser), node, this.options); | ||
} | ||
@@ -516,4 +521,13 @@ return node; | ||
} | ||
applyResolverHooks(resolver) { | ||
resolver.hooks.beforeResolve.tap("template", (node, options) => { | ||
if (node && node.type === NodeType.Template && node.dynamic) { | ||
return this.parseTemplate(options.parseNode, node, options); | ||
} | ||
return node; | ||
}); | ||
} | ||
apply(view) { | ||
view.hooks.parser.tap("template", this.applyParserHooks.bind(this)); | ||
view.hooks.resolver.tap("template", this.applyResolverHooks.bind(this)); | ||
} | ||
@@ -520,0 +534,0 @@ } |
{ | ||
"name": "@player-ui/view", | ||
"version": "0.0.1-next.13", | ||
"version": "0.0.1-next.14", | ||
"private": false, | ||
@@ -10,12 +10,12 @@ "publishConfig": { | ||
"dependencies": { | ||
"@player-ui/binding": "0.0.1-next.13", | ||
"@player-ui/constants": "0.0.1-next.13", | ||
"@player-ui/data": "0.0.1-next.13", | ||
"@player-ui/expressions": "0.0.1-next.13", | ||
"@player-ui/flow": "0.0.1-next.13", | ||
"@player-ui/types": "0.0.1-next.13", | ||
"@player-ui/schema": "0.0.1-next.13", | ||
"@player-ui/logger": "0.0.1-next.13", | ||
"@player-ui/string-resolver": "0.0.1-next.13", | ||
"@player-ui/validator": "0.0.1-next.13", | ||
"@player-ui/binding": "0.0.1-next.14", | ||
"@player-ui/constants": "0.0.1-next.14", | ||
"@player-ui/data": "0.0.1-next.14", | ||
"@player-ui/expressions": "0.0.1-next.14", | ||
"@player-ui/flow": "0.0.1-next.14", | ||
"@player-ui/types": "0.0.1-next.14", | ||
"@player-ui/schema": "0.0.1-next.14", | ||
"@player-ui/logger": "0.0.1-next.14", | ||
"@player-ui/string-resolver": "0.0.1-next.14", | ||
"@player-ui/validator": "0.0.1-next.14", | ||
"tapable-ts": "^0.1.0", | ||
@@ -22,0 +22,0 @@ "timm": "^1.6.2", |
@@ -187,2 +187,3 @@ import { omit, setIn } from 'timm'; | ||
template: template.value, | ||
dynamic: template.dynamic ?? false, | ||
}, | ||
@@ -189,0 +190,0 @@ template |
@@ -75,2 +75,5 @@ import type { Asset as AssetType, Expression, Binding } from '@player-ui/types'; | ||
depth: number; | ||
/** should the template recomputed when data changes */ | ||
dynamic?: boolean; | ||
} | ||
@@ -77,0 +80,0 @@ |
@@ -7,2 +7,3 @@ import { SyncWaterfallHook } from 'tapable-ts'; | ||
import type { Options } from './options'; | ||
import type { Resolver } from '../resolver'; | ||
@@ -44,5 +45,9 @@ export interface TemplateItemInfo { | ||
private parseTemplate(parser: Parser, node: Node.Template): Node.Node | null { | ||
private parseTemplate( | ||
parseObject: any, | ||
node: Node.Template, | ||
options: Options | ||
): Node.Node | null { | ||
const { template, depth } = node; | ||
const data = this.options.data.model.get(node.data); | ||
const data = options.data.model.get(node.data); | ||
@@ -85,7 +90,5 @@ if (!data) { | ||
const parsed = parser.parseObject( | ||
JSON.parse(templateStr), | ||
NodeType.Value, | ||
{ templateDepth: node.depth + 1 } | ||
); | ||
const parsed = parseObject(JSON.parse(templateStr), NodeType.Value, { | ||
templateDepth: node.depth + 1, | ||
}); | ||
@@ -113,4 +116,8 @@ if (parsed) { | ||
parser.hooks.onCreateASTNode.tap('template', (node) => { | ||
if (node && node.type === NodeType.Template) { | ||
return this.parseTemplate(parser, node); | ||
if (node && node.type === NodeType.Template && !node.dynamic) { | ||
return this.parseTemplate( | ||
parser.parseObject.bind(parser), | ||
node, | ||
this.options | ||
); | ||
} | ||
@@ -122,5 +129,16 @@ | ||
applyResolverHooks(resolver: Resolver) { | ||
resolver.hooks.beforeResolve.tap('template', (node, options) => { | ||
if (node && node.type === NodeType.Template && node.dynamic) { | ||
return this.parseTemplate(options.parseNode, node, options); | ||
} | ||
return node; | ||
}); | ||
} | ||
apply(view: View) { | ||
view.hooks.parser.tap('template', this.applyParserHooks.bind(this)); | ||
view.hooks.resolver.tap('template', this.applyResolverHooks.bind(this)); | ||
} | ||
} |
@@ -232,2 +232,3 @@ import { SyncWaterfallHook, SyncHook } from 'tapable-ts'; | ||
this.options.evaluator.evaluate(exp, { model: depModelWithParser }), | ||
node, | ||
}, | ||
@@ -294,2 +295,4 @@ node | ||
resolveOptions.node = resolvedAST; | ||
this.ASTMap.set(resolvedAST, node); | ||
@@ -296,0 +299,0 @@ |
@@ -107,2 +107,5 @@ import type { | ||
getDependencies?(scope?: 'core' | 'children'): Set<BindingInstance>; | ||
/** original node */ | ||
node?: Node.Node; | ||
}; | ||
@@ -109,0 +112,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
126523
3437
+ Added@player-ui/binding@0.0.1-next.14(transitive)
+ Added@player-ui/binding-grammar@0.0.1-next.14(transitive)
+ Added@player-ui/constants@0.0.1-next.14(transitive)
+ Added@player-ui/data@0.0.1-next.14(transitive)
+ Added@player-ui/expressions@0.0.1-next.14(transitive)
+ Added@player-ui/flow@0.0.1-next.14(transitive)
+ Added@player-ui/logger@0.0.1-next.14(transitive)
+ Added@player-ui/schema@0.0.1-next.14(transitive)
+ Added@player-ui/string-resolver@0.0.1-next.14(transitive)
+ Added@player-ui/types@0.0.1-next.14(transitive)
+ Added@player-ui/validator@0.0.1-next.14(transitive)
- Removed@player-ui/binding@0.0.1-next.13(transitive)
- Removed@player-ui/binding-grammar@0.0.1-next.13(transitive)
- Removed@player-ui/constants@0.0.1-next.13(transitive)
- Removed@player-ui/data@0.0.1-next.13(transitive)
- Removed@player-ui/expressions@0.0.1-next.13(transitive)
- Removed@player-ui/flow@0.0.1-next.13(transitive)
- Removed@player-ui/logger@0.0.1-next.13(transitive)
- Removed@player-ui/schema@0.0.1-next.13(transitive)
- Removed@player-ui/string-resolver@0.0.1-next.13(transitive)
- Removed@player-ui/types@0.0.1-next.13(transitive)
- Removed@player-ui/validator@0.0.1-next.13(transitive)