UNPKG

@sprucelabs/spruce-cli

Version:

Command line interface for building Spruce skills.

25 lines (21 loc) 846 B
import { validateSchema } from '@sprucelabs/schema' import cloneDeep from 'lodash/cloneDeep' import SpruceError from '../../../errors/SpruceError' import ImportService from '../../../services/ImportService' export default class SchemaService extends ImportService { public async importSchema(file: string) { const definitionProxy = await this.importDefault(file) try { validateSchema(definitionProxy) } catch (err: any) { throw new SpruceError({ code: 'SCHEMA_FAILED_TO_IMPORT', file, originalError: err, friendlyMessage: 'The definition imported is not valid. Make sure it is "export default build[Schema|Error|Field]Definition"', }) } return cloneDeep(definitionProxy) } }