UNPKG

@inkline/paper

Version:

Paper is a unified interface for defining components for Vue and React using a single code base.

50 lines (42 loc) 1.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.defineComponent = void 0; const defineComponent = definition => { return props => { const slot = (name = "default") => { console.log(`slot(${name})`); return []; }; const hasSlot = (name = "default") => { return slot(name).length > 0; }; const emit = (eventName, ...args) => { console.log(`emit(${event})`, ...args); }; const provide = (identifier, value) => { console.log(`provide(${identifier.toString()}, ${value})`); return value; }; const inject = (identifier, defaultValue) => { console.log(`inject(${identifier.toString()}, ${defaultValue})`); return defaultValue; }; const setupContext = { emit, provide, inject, hasSlot }; const state = definition.setup ? { ...props, ...definition.setup(props, setupContext) } : props; const renderContext = { slot, hasSlot }; return definition.render(state, renderContext); }; }; exports.defineComponent = defineComponent;