UNPKG

@anvilco/anvil

Version:
44 lines (28 loc) 1.26 kB
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.graphQLUploadSchemaIsValid = graphQLUploadSchemaIsValid;exports.isFile = isFile;var _fs = _interopRequireDefault(require("fs")); var _UploadWithOptions = _interopRequireDefault(require("./UploadWithOptions"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} function isFile(value) { return value instanceof _UploadWithOptions.default || value instanceof _fs.default.ReadStream || value instanceof Buffer; } function graphQLUploadSchemaIsValid(schema, parent, key) { if (schema == null) { return true; } if (key !== 'file') { if (schema instanceof Array) { return schema.every((subSchema) => graphQLUploadSchemaIsValid(subSchema, schema)); } if (schema.constructor.name === 'Object') { return Object.entries(schema).every(([key, subSchema]) => graphQLUploadSchemaIsValid(subSchema, schema, key)); } return !isFile(schema); } if (!(parent && parent.file === schema)) { return false; } if (schema.data) { return ( typeof schema.data === 'string' && ['filename', 'mimetype'].every((requiredKey) => schema[requiredKey])); } return isFile(schema); }