UNPKG

@esri/solution-common

Version:

Provides general helper functions for @esri/solution.js.

45 lines 2.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createMimeTypedFile = exports.copyDataIntoItem = void 0; const createCopyResults_1 = require("./createCopyResults"); const get_blob_1 = require("./get-blob"); const restHelpers_1 = require("../restHelpers"); // ------------------------------------------------------------------------------------------------------------------ // /** * Copies data into an AGO item. * * @param fileInfo Information about the source and destination of the file such as its URL, folder, filename * @param sourceAuthentication Credentials for the request to the source * @param destinationItemId Id of item to receive copy of resource/metadata/thumbnail * @param destinationAuthentication Credentials for the request to the storage * @returns A promise which resolves to the result of the copy */ function copyDataIntoItem(fileInfo, sourceAuthentication, destinationItemId, destinationAuthentication) { return new Promise((resolve) => { (0, get_blob_1.getBlob)(fileInfo.url, sourceAuthentication).then((blob) => { const update = { id: destinationItemId, data: createMimeTypedFile({ blob: blob, filename: fileInfo.filename, mimeType: fileInfo.mimeType || blob.type, }), }; (0, restHelpers_1.updateItem)(update, destinationAuthentication, fileInfo.folder).then(() => resolve((0, createCopyResults_1.createCopyResults)(fileInfo, true, true)), () => resolve((0, createCopyResults_1.createCopyResults)(fileInfo, true, false))); }, () => resolve((0, createCopyResults_1.createCopyResults)(fileInfo, false))); }); } exports.copyDataIntoItem = copyDataIntoItem; /** * Creates a file with a specified mime type. * * @param fileDescription Structure containing a file and the desired mime type * @returns Created file */ function createMimeTypedFile(fileDescription) { return new File([fileDescription.blob], fileDescription.filename, { type: fileDescription.mimeType, }); } exports.createMimeTypedFile = createMimeTypedFile; //# sourceMappingURL=copyDataIntoItem.js.map