import registerComponent from '../mixins/register-component'; export default (options) => { const { init, data = () => ({}), converters = {}, handlers = {}, computed, methods, name, render, contextReady, template, mixins = [], props = {} } = options; const result = { ...options, props, data() { return { ...data(), converters, handlers }; }, mixins: [registerComponent, ...mixins], computed, methods: { ...methods, __initComponent: init, __contextReady: contextReady } }; if (!template && !render) { result.render = () => null; } result.install = Vue => Vue.use(name, result); return result; };