@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
JavaScript
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;
;