UNPKG

@builder.io/mitosis

Version:

Write components once, run everywhere. Compiles to Vue, React, Solid, and Liquid. Import code from Figma and Builder.io

33 lines (32 loc) 1.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseAfterUpdate = exports.parseOnDestroy = exports.parseOnMount = void 0; const astring_1 = require("astring"); function parseHookBody(node, stripCurlyBraces = true) { var _a; const arguments_ = (_a = node.expression) === null || _a === void 0 ? void 0 : _a.arguments; let code = (0, astring_1.generate)(arguments_[0].body); if (stripCurlyBraces && (code === null || code === void 0 ? void 0 : code.trim().length) && code[0] === '{' && code[code.length - 1] === '}') code = code.slice(1, -1); return code; } function parseOnMount(json, node) { json.hooks.onMount.push({ code: parseHookBody(node), }); } exports.parseOnMount = parseOnMount; function parseOnDestroy(json, node) { json.hooks.onUnMount = { code: parseHookBody(node), }; } exports.parseOnDestroy = parseOnDestroy; function parseAfterUpdate(json, node) { json.hooks.onUpdate = [ { code: parseHookBody(node), }, ]; } exports.parseAfterUpdate = parseAfterUpdate;