UNPKG

@tririga/tri-polymer-upgrade

Version:

A tool for converting TRIRIGA UX views from Polymer 1 to Polymer 3

34 lines (28 loc) 1.19 kB
"use strict"; const utils = require("../util/utils"); const jsc = require("jscodeshift"); const Serializer = require("./serializer.js"); class ElementSerializer extends Serializer { constructor(outputDir) { super(outputDir); } async serialize(scannedElement) { this._serializeTemplate(scannedElement); const serializedElement = this._serializeJS(scannedElement); await this._writeFile(scannedElement, serializedElement); } _serializeTemplate(scannedElement) { if (!scannedElement.template) { return; } // convert template to string, wrapped a template literal. (ex: `template as string`) const serializedTemplate = utils.serializeTemplate(scannedElement); // `template as string` to html`template as string` const templateExpression = jsc.taggedTemplateExpression(jsc.identifier("html"), serializedTemplate); // html`template as string` to _template: html`template as string` const templateProperty = jsc.property("init", jsc.identifier("_template"), templateExpression); const elementDefinition = utils.getPolymerElementDefinition(scannedElement.js); elementDefinition.properties.unshift(templateProperty); } }; module.exports = ElementSerializer;