UNPKG

lit-html

Version:

HTML template literals in JavaScript

44 lines 1.41 kB
/** * @license * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. * This code may only be used under the BSD style license found at * http://polymer.github.io/LICENSE.txt * The complete set of authors may be found at * http://polymer.github.io/AUTHORS.txt * The complete set of contributors may be found at * http://polymer.github.io/CONTRIBUTORS.txt * Code distributed by Google as part of the polymer project is also * subject to an additional IP rights grant found at * http://polymer.github.io/PATENTS.txt */ const directives = new WeakMap(); /** * Brands a function as a directive so that lit-html will call the function * during template rendering, rather than passing as a value. * * @param f The directive factory function. Must be a function that returns a * function of the signature `(part: Part) => void`. The returned function will * be called with the part object * * @example * * ``` * import {directive, html} from 'lit-html'; * * const immutable = directive((v) => (part) => { * if (part.value !== v) { * part.setValue(v) * } * }); * ``` */ // tslint:disable-next-line:no-any export const directive = (f) => ((...args) => { const d = f(...args); directives.set(d, true); return d; }); export const isDirective = (o) => { return typeof o === 'function' && directives.has(o); }; //# sourceMappingURL=directive.js.map