File: D:/HostingSpaces/SBogers10/shop.komma.nl/node_modules/@vue/cli-ui/apollo-server/api/widget.js
const { createSchema, validateSync } = require('@vue/cli-shared-utils')
const schema = createSchema(joi => ({
id: joi.string().required(),
// General
title: joi.string().required(),
description: joi.string(),
longDescription: joi.string(),
icon: joi.string(),
screenshot: joi.string(),
link: joi.string(),
// Components
component: joi.string().required(),
detailsComponent: joi.string(),
// Maximum number of instances
maxCount: joi.number(),
// Size
minWidth: joi.number().required(),
minHeight: joi.number().required(),
maxWidth: joi.number().required(),
maxHeight: joi.number().required(),
defaultWidth: joi.number(),
defaultHeight: joi.number(),
// Config
defaultConfig: joi.func(),
needsUserConfig: joi.boolean(),
// UI
openDetailsButton: joi.boolean(),
// Hooks
onAdded: joi.func(),
onRemoved: joi.func(),
onConfigOpen: joi.func(),
onConfigChanged: joi.func()
}))
exports.validateWidget = (options) => {
validateSync(options, schema)
}