HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
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)
}