UNPKG

marko-widgets

Version:

<h1 align="center"> <!-- Logo --> <br/> marko-widgets@8 <br/>

78 lines (77 loc) 2.75 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var migrate_exports = {}; __export(migrate_exports, { default: () => migrate_default }); module.exports = __toCommonJS(migrate_exports); var import_compiler = require("@marko/compiler"); var import_babel_utils = require("@marko/babel-utils"); var import_compat_utils = require("@marko/compat-utils"); var migrate_default = { exit(tag) { const { node, hub: { file } } = tag; const name = (0, import_compat_utils.getAttributeValue)(tag, "name"); if (!name || !name.isStringLiteral()) { (0, import_babel_utils.diagnosticError)(tag, { label: "The <layout-placeholder> tag requires a 'name' attribute that is a string literal." }); tag.remove(); return; } if (node.attributes.length > 1) { (0, import_babel_utils.diagnosticError)(tag, { label: "The <layout-placeholder> tag only supports the 'name' attribute." }); tag.remove(); return; } const memberProperty = import_compiler.types.identifier(toCamelCase(name.node.value)); const nameStart = (0, import_babel_utils.getStart)(file, node.name); if (nameStart != null) { (0, import_babel_utils.withLoc)( tag.hub.file, memberProperty, nameStart + 1, nameStart + name.node.value.length ); } (0, import_babel_utils.diagnosticDeprecate)(tag, { label: "The <layout-placeholder> tag is deprecated. Please use the <${dynamic}> tag instead. See: https://github.com/marko-js/marko/wiki/Deprecation:-layout-tag", fix() { tag.replaceWith( import_compiler.types.markoTag( import_compiler.types.memberExpression(import_compiler.types.identifier("input"), memberProperty), [], node.body ) ); } }); } }; function toCamelCase(str) { return str.replace(/-([a-z])/g, matchToUpperCase); } function matchToUpperCase(_, str) { return str.toUpperCase(); }