UNPKG

7.31 kBSource Map (JSON)View Raw
1{"version":3,"sources":["AssemblyOptions.js"],"names":["validateParams","params","Error","JSON","parse","err","message","auth","key","AssemblyOptions","files","opts","_normalizeAssemblyOptions","file","assemblyOptions","Array","isArray","fields","fieldNames","forEach","fieldName","meta","_getAssemblyOptions","options","Promise","resolve","then","getAssemblyOptions","fileIDs","id","_dedupe","list","dedupeMap","Object","create","stringify","push","keys","map","build","length","all","alwaysRunAssembly","module","exports"],"mappings":"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","sourcesContent":["/**\n * Check that Assembly parameters are present and include all required fields.\n */\nfunction validateParams (params) {\n if (!params) {\n throw new Error('Transloadit: The `params` option is required.')\n }\n\n if (typeof params === 'string') {\n try {\n params = JSON.parse(params)\n } catch (err) {\n // Tell the user that this is not an Uppy bug!\n err.message = 'Transloadit: The `params` option is a malformed JSON string: ' +\n err.message\n throw err\n }\n }\n\n if (!params.auth || !params.auth.key) {\n throw new Error('Transloadit: The `params.auth.key` option is required. ' +\n 'You can find your Transloadit API key at https://transloadit.com/account/api-settings.')\n }\n}\n\n/**\n * Turn Transloadit plugin options and a list of files into a list of Assembly\n * options.\n */\nclass AssemblyOptions {\n constructor (files, opts) {\n this.files = files\n this.opts = opts\n }\n\n /**\n * Normalize Uppy-specific Assembly option features to a Transloadit-\n * compatible object.\n */\n _normalizeAssemblyOptions (file, assemblyOptions) {\n if (Array.isArray(assemblyOptions.fields)) {\n const fieldNames = assemblyOptions.fields\n assemblyOptions.fields = {}\n fieldNames.forEach((fieldName) => {\n assemblyOptions.fields[fieldName] = file.meta[fieldName]\n })\n }\n\n if (!assemblyOptions.fields) {\n assemblyOptions.fields = {}\n }\n\n return assemblyOptions\n }\n\n /**\n * Get Assembly options for a file.\n */\n _getAssemblyOptions (file) {\n const options = this.opts\n\n return Promise.resolve()\n .then(() => {\n return options.getAssemblyOptions(file, options)\n })\n .then((assemblyOptions) => {\n return this._normalizeAssemblyOptions(file, assemblyOptions)\n })\n .then((assemblyOptions) => {\n validateParams(assemblyOptions.params)\n\n return {\n fileIDs: [file.id],\n options: assemblyOptions\n }\n })\n }\n\n /**\n * Combine Assemblies with the same options into a single Assembly for all the\n * relevant files.\n */\n _dedupe (list) {\n const dedupeMap = Object.create(null)\n list.forEach(({ fileIDs, options }) => {\n const id = JSON.stringify(options)\n if (dedupeMap[id]) {\n dedupeMap[id].fileIDs.push(...fileIDs)\n } else {\n dedupeMap[id] = {\n options,\n fileIDs: [...fileIDs]\n }\n }\n })\n\n return Object.keys(dedupeMap).map((id) => dedupeMap[id])\n }\n\n /**\n * Generate a set of Assemblies that will handle the upload.\n * Returns a Promise for an object with keys:\n * - fileIDs - an array of file IDs to add to this Assembly\n * - options - Assembly options\n */\n build () {\n const options = this.opts\n\n if (this.files.length > 0) {\n return Promise.all(\n this.files.map((file) => this._getAssemblyOptions(file))\n ).then((list) => {\n return this._dedupe(list)\n })\n }\n\n if (options.alwaysRunAssembly) {\n // No files, just generate one Assembly\n return Promise.resolve(\n options.getAssemblyOptions(null, options)\n ).then((assemblyOptions) => {\n validateParams(assemblyOptions.params)\n return [{\n fileIDs: this.files.map((file) => file.id),\n options: assemblyOptions\n }]\n })\n }\n\n // If there are no files and we do not `alwaysRunAssembly`,\n // don't do anything.\n return Promise.resolve([])\n }\n}\n\nmodule.exports = AssemblyOptions\nmodule.exports.validateParams = validateParams\n"]}
\No newline at end of file