@surface/custom-element
Version:
Provides support of directives and data binding on custom elements.
15 lines (14 loc) • 560 B
JavaScript
export const TEMPLATE_METADATA = Symbol("custom-element:template-metadata");
export default class TemplateMetadata {
constructor() {
this.defaults = new Map();
this.injections = new Map();
this.placeholders = new Map();
}
static from(target) {
if (!Reflect.has(target, TEMPLATE_METADATA)) {
Reflect.defineProperty(target, TEMPLATE_METADATA, { configurable: false, enumerable: false, value: new TemplateMetadata() });
}
return Reflect.get(target, TEMPLATE_METADATA);
}
}