UNPKG

@merkur/create-widget

Version:

CLI for creating merkur widget easily.

59 lines (53 loc) 1.32 kB
/* eslint-disable no-unused-vars */ import { defineWidget } from '@merkur/core'; import { componentPlugin, createViewFactory, createSlotFactory, } from '@merkur/plugin-component'; import { errorPlugin } from '@merkur/plugin-error'; import { eventEmitterPlugin } from '@merkur/plugin-event-emitter'; import HeadlineSlot from './slots/HeadlineSlot'; import ErrorView from './views/ErrorView'; import View from './views/View'; import pkg from '../package.json'; import './style.css'; export default defineWidget({ name: pkg.name, version: pkg.version, viewFactory: createViewFactory((widget) => ({ View, ErrorView, slotFactories: [ createSlotFactory((widget) => ({ name: 'headline', View: HeadlineSlot, })), ], })), $plugins: [componentPlugin, eventEmitterPlugin, errorPlugin], assets: [ { name: 'widget.js', type: 'script', }, { name: 'widget.css', type: 'stylesheet', }, ], onClick(widget) { widget.setState({ counter: widget.state.counter + 1 }); }, onReset(widget) { widget.setState({ counter: 0 }); }, load(widget) { // We don't want to set environment into app state const { environment, ...restProps } = widget.props; return { counter: 0, ...restProps, }; }, });