UNPKG

@builder.io/mitosis

Version:

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

45 lines (43 loc) 1.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.contextToSvelte = void 0; const get_state_object_string_1 = require("../../helpers/get-state-object-string"); const standalone_1 = require("prettier/standalone"); /** * TO-DO: support types */ const contextToSvelte = (options) => ({ context }) => { const isReactive = context.type === 'reactive'; let str = ` const key = Symbol(); ${isReactive ? 'import {writable} from "svelte/store";' : ''} export default { ${context.name}: ${[ isReactive && 'writable(', (0, get_state_object_string_1.stringifyContextValue)(context.value), isReactive && ')', ] .filter(Boolean) .join('')}, key } `; if (options.prettier !== false) { try { str = (0, standalone_1.format)(str, { parser: 'typescript', plugins: [ require('prettier/parser-typescript'), // To support running in browsers ], }); } catch (err) { if (process.env.NODE_ENV !== 'test') { console.error('Format error for file:', str); } throw err; } } return str; }; exports.contextToSvelte = contextToSvelte;