UNPKG

@esri/solution-common

Version:

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

74 lines 3.16 kB
"use strict"; /** @license * Copyright 2021 Esri * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.copyResourceIntoZipFromInfo = exports.copyResourceIntoZip = void 0; const createCopyResults_1 = require("./createCopyResults"); const restHelpersGet_1 = require("../restHelpersGet"); // ------------------------------------------------------------------------------------------------------------------ // /** * Copies a resource into a zipfile. * * @param file Information about the source and destination of the file such as its URL, folder, filename * @param zipInfo Information about a zipfile such as its name and its zip object * @returns The result of the copy */ function copyResourceIntoZip(file, zipInfo) { // Add it to the zip if (file.folder) { zipInfo.zip.folder(file.folder).file(file.filename, file.file, { binary: true }); } else { zipInfo.zip.file(file.filename, file.file, { binary: true }); } zipInfo.filelist.push(file); return (0, createCopyResults_1.createCopyResults)(file, true); } exports.copyResourceIntoZip = copyResourceIntoZip; /** * Copies a resource into a zipfile. * * @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 zipInfo Information about a zipfile such as its name and its zip object * @returns A promise which resolves to the result of the copy */ function copyResourceIntoZipFromInfo(fileInfo, sourceAuthentication, zipInfo) { return new Promise((resolve) => { let filePromise; if (fileInfo.file) { filePromise = Promise.resolve(fileInfo.file); } else { filePromise = (0, restHelpersGet_1.getBlobAsFile)(fileInfo.url, fileInfo.filename, sourceAuthentication); } filePromise.then((file) => { // And add it to the zip if (fileInfo.folder) { zipInfo.zip.folder(fileInfo.folder).file(fileInfo.filename, file, { binary: true }); } else { zipInfo.zip.file(fileInfo.filename, file, { binary: true }); } zipInfo.filelist.push(fileInfo); resolve((0, createCopyResults_1.createCopyResults)(fileInfo, true)); }, () => resolve( // unable to get resource (0, createCopyResults_1.createCopyResults)(fileInfo, false))); }); } exports.copyResourceIntoZipFromInfo = copyResourceIntoZipFromInfo; //# sourceMappingURL=copyResourceIntoZip.js.map