filestack-js
Version:
Official JavaScript library for Filestack
86 lines (84 loc) • 10.7 kB
JavaScript
/*
* Copyright (c) 2018 by Filestack.
* Some rights reserved.
*
* 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.
*/
import { __assign } from "tslib";
import { Filelink } from './../filelink';
import { FilestackError } from './../../filestack_error';
import { getValidator, StoreParamsSchema } from './../../schema';
import { FsRequest, FsCancelToken } from '../request';
/**
* Store given url with options and
*
* @param session
* @param url
* @param storeOpts
* @param token
* @param security
* @param uploadTags
* @param workflowIds
*/
export var storeURL = function (_a) {
var session = _a.session, url = _a.url, storeParams = _a.storeParams, token = _a.token, security = _a.security, uploadTags = _a.uploadTags, headers = _a.headers, workflowIds = _a.workflowIds;
if (!url || typeof url !== 'string') {
return Promise.reject(new FilestackError('url is required for storeURL'));
}
var validateRes = getValidator(StoreParamsSchema)(storeParams);
if (validateRes.errors.length) {
return Promise.reject(new FilestackError("Invalid store params", validateRes.errors));
}
session.policy = security && security.policy || session.policy;
session.signature = security && security.signature || session.signature;
var filelink = new Filelink(url, session.apikey);
filelink.store(storeParams);
if (session.policy && session.signature) {
filelink.security({
policy: session.policy,
signature: session.signature,
});
}
var options = {};
if (token) {
var cancelToken = new FsCancelToken();
token.cancel = cancelToken.cancel.bind(cancelToken);
options.cancelToken = cancelToken;
}
var sources = [url];
if (headers) {
sources = [{
source: url,
headers: headers,
}];
}
if (workflowIds && workflowIds.length > 0) {
filelink.addTask('store', { workflows: workflowIds });
}
return FsRequest.post("".concat(session.urls.processUrl, "/process"), {
apikey: session.apikey,
sources: sources,
tasks: filelink.getTasks(),
upload_tags: uploadTags,
}, options).then(function (res) {
if (res.data && res.data.handle) {
if (res.data.upload_tags) {
res.data.uploadTags = res.data.upload_tags;
delete res.data.upload_tags;
}
return __assign(__assign({}, res.data), { mimetype: res.data.type });
}
throw new FilestackError("Invalid store response ".concat(JSON.stringify(res.data)));
});
};
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7QUFHSCxPQUFPLEVBQUUsUUFBUSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFjdEQ7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sQ0FBQyxJQUFNLFFBQVEsR0FBRyxVQUFDLEVBU1I7UUFSZixPQUFPLGFBQUEsRUFDUCxHQUFHLFNBQUEsRUFDSCxXQUFXLGlCQUFBLEVBQ1gsS0FBSyxXQUFBLEVBQ0wsUUFBUSxjQUFBLEVBQ1IsVUFBVSxnQkFBQSxFQUNWLE9BQU8sYUFBQSxFQUNQLFdBQVcsaUJBQUE7SUFFWCxJQUFJLENBQUMsR0FBRyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtRQUNuQyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsOEJBQThCLENBQUMsQ0FBQyxDQUFDO0tBQzNFO0lBRUQsSUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFakUsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUM3QixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsc0JBQXNCLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7S0FDdkY7SUFFRCxPQUFPLENBQUMsTUFBTSxHQUFHLFFBQVEsSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDL0QsT0FBTyxDQUFDLFNBQVMsR0FBRyxRQUFRLElBQUksUUFBUSxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDO0lBRXhFLElBQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkQsUUFBUSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUU1QixJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRTtRQUN2QyxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQ2hCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtZQUN0QixTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVM7U0FDN0IsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxJQUFJLE9BQU8sR0FBUSxFQUFFLENBQUM7SUFFdEIsSUFBSSxLQUFLLEVBQUU7UUFDVCxJQUFNLFdBQVcsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ3hDLEtBQUssQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEQsT0FBTyxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7S0FDbkM7SUFFRCxJQUFJLE9BQU8sR0FBUSxDQUFFLEdBQUcsQ0FBRSxDQUFDO0lBRTNCLElBQUksT0FBTyxFQUFFO1FBQ1gsT0FBTyxHQUFHLENBQUM7Z0JBQ1QsTUFBTSxFQUFFLEdBQUc7Z0JBQ1gsT0FBTyxTQUFBO2FBQ1IsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxJQUFJLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUN6QyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0tBQ3ZEO0lBRUQsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLGFBQVUsRUFBRTtRQUMxRCxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07UUFDdEIsT0FBTyxTQUFBO1FBQ1AsS0FBSyxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUU7UUFDMUIsV0FBVyxFQUFFLFVBQVU7S0FDeEIsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBQyxHQUFHO1FBQ25CLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUMvQixJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUN4QixHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztnQkFDM0MsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQzthQUM3QjtZQUVELDZCQUFZLEdBQUcsQ0FBQyxJQUFJLEtBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFHO1NBQ2pEO1FBRUQsTUFBTSxJQUFJLGNBQWMsQ0FBQyxpQ0FBMEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDIiwiZmlsZSI6ImxpYi9hcGkvc3RvcmUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IGJ5IEZpbGVzdGFjay5cbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBTZWN1cml0eSwgU2Vzc2lvbiB9IGZyb20gJy4uL2NsaWVudCc7XG5pbXBvcnQgeyBGaWxlbGluaywgU3RvcmVQYXJhbXMgfSBmcm9tICcuLy4uL2ZpbGVsaW5rJztcbmltcG9ydCB7IEZpbGVzdGFja0Vycm9yIH0gZnJvbSAnLi8uLi8uLi9maWxlc3RhY2tfZXJyb3InO1xuaW1wb3J0IHsgZ2V0VmFsaWRhdG9yLCBTdG9yZVBhcmFtc1NjaGVtYSB9IGZyb20gJy4vLi4vLi4vc2NoZW1hJztcbmltcG9ydCB7IEZzUmVxdWVzdCwgRnNDYW5jZWxUb2tlbiB9IGZyb20gJy4uL3JlcXVlc3QnO1xuaW1wb3J0IHsgVXBsb2FkVGFncyB9IGZyb20gJy4vdXBsb2FkL2ZpbGUnO1xuXG5leHBvcnQgdHlwZSBTdG9yZVVybFBhcmFtcyA9IHtcbiAgc2Vzc2lvbjogU2Vzc2lvbjtcbiAgdXJsPzogc3RyaW5nO1xuICBzdG9yZVBhcmFtcz86IFN0b3JlUGFyYW1zO1xuICB0b2tlbj86IGFueTtcbiAgc2VjdXJpdHk/OiBTZWN1cml0eTtcbiAgdXBsb2FkVGFncz86IFVwbG9hZFRhZ3M7XG4gIGhlYWRlcnM/OiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSxcbiAgd29ya2Zsb3dJZHM/OiBzdHJpbmdbXVxufTtcblxuLyoqXG4gKiBTdG9yZSBnaXZlbiB1cmwgd2l0aCBvcHRpb25zIGFuZFxuICpcbiAqIEBwYXJhbSBzZXNzaW9uXG4gKiBAcGFyYW0gdXJsXG4gKiBAcGFyYW0gc3RvcmVPcHRzXG4gKiBAcGFyYW0gdG9rZW5cbiAqIEBwYXJhbSBzZWN1cml0eVxuICogQHBhcmFtIHVwbG9hZFRhZ3NcbiAqIEBwYXJhbSB3b3JrZmxvd0lkc1xuICovXG5leHBvcnQgY29uc3Qgc3RvcmVVUkwgPSAoe1xuICBzZXNzaW9uLFxuICB1cmwsXG4gIHN0b3JlUGFyYW1zLFxuICB0b2tlbixcbiAgc2VjdXJpdHksXG4gIHVwbG9hZFRhZ3MsXG4gIGhlYWRlcnMsXG4gIHdvcmtmbG93SWRzLFxufTogU3RvcmVVcmxQYXJhbXMpOiBQcm9taXNlPGFueT4gPT4ge1xuICBpZiAoIXVybCB8fCB0eXBlb2YgdXJsICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRmlsZXN0YWNrRXJyb3IoJ3VybCBpcyByZXF1aXJlZCBmb3Igc3RvcmVVUkwnKSk7XG4gIH1cblxuICBjb25zdCB2YWxpZGF0ZVJlcyA9IGdldFZhbGlkYXRvcihTdG9yZVBhcmFtc1NjaGVtYSkoc3RvcmVQYXJhbXMpO1xuXG4gIGlmICh2YWxpZGF0ZVJlcy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBGaWxlc3RhY2tFcnJvcihgSW52YWxpZCBzdG9yZSBwYXJhbXNgLCB2YWxpZGF0ZVJlcy5lcnJvcnMpKTtcbiAgfVxuXG4gIHNlc3Npb24ucG9saWN5ID0gc2VjdXJpdHkgJiYgc2VjdXJpdHkucG9saWN5IHx8IHNlc3Npb24ucG9saWN5O1xuICBzZXNzaW9uLnNpZ25hdHVyZSA9IHNlY3VyaXR5ICYmIHNlY3VyaXR5LnNpZ25hdHVyZSB8fCBzZXNzaW9uLnNpZ25hdHVyZTtcblxuICBjb25zdCBmaWxlbGluayA9IG5ldyBGaWxlbGluayh1cmwsIHNlc3Npb24uYXBpa2V5KTtcbiAgZmlsZWxpbmsuc3RvcmUoc3RvcmVQYXJhbXMpO1xuXG4gIGlmIChzZXNzaW9uLnBvbGljeSAmJiBzZXNzaW9uLnNpZ25hdHVyZSkge1xuICAgIGZpbGVsaW5rLnNlY3VyaXR5KHtcbiAgICAgIHBvbGljeTogc2Vzc2lvbi5wb2xpY3ksXG4gICAgICBzaWduYXR1cmU6IHNlc3Npb24uc2lnbmF0dXJlLFxuICAgIH0pO1xuICB9XG5cbiAgbGV0IG9wdGlvbnM6IGFueSA9IHt9O1xuXG4gIGlmICh0b2tlbikge1xuICAgIGNvbnN0IGNhbmNlbFRva2VuID0gbmV3IEZzQ2FuY2VsVG9rZW4oKTtcbiAgICB0b2tlbi5jYW5jZWwgPSBjYW5jZWxUb2tlbi5jYW5jZWwuYmluZChjYW5jZWxUb2tlbik7XG4gICAgb3B0aW9ucy5jYW5jZWxUb2tlbiA9IGNhbmNlbFRva2VuO1xuICB9XG5cbiAgbGV0IHNvdXJjZXM6IGFueSA9IFsgdXJsIF07XG5cbiAgaWYgKGhlYWRlcnMpIHtcbiAgICBzb3VyY2VzID0gW3tcbiAgICAgIHNvdXJjZTogdXJsLFxuICAgICAgaGVhZGVycyxcbiAgICB9XTtcbiAgfVxuXG4gIGlmICh3b3JrZmxvd0lkcyAmJiB3b3JrZmxvd0lkcy5sZW5ndGggPiAwKSB7XG4gICAgZmlsZWxpbmsuYWRkVGFzaygnc3RvcmUnLCB7IHdvcmtmbG93czogd29ya2Zsb3dJZHMgfSk7XG4gIH1cblxuICByZXR1cm4gRnNSZXF1ZXN0LnBvc3QoYCR7c2Vzc2lvbi51cmxzLnByb2Nlc3NVcmx9L3Byb2Nlc3NgLCB7XG4gICAgYXBpa2V5OiBzZXNzaW9uLmFwaWtleSxcbiAgICBzb3VyY2VzLFxuICAgIHRhc2tzOiBmaWxlbGluay5nZXRUYXNrcygpLFxuICAgIHVwbG9hZF90YWdzOiB1cGxvYWRUYWdzLFxuICB9LCBvcHRpb25zKS50aGVuKChyZXMpID0+IHtcbiAgICBpZiAocmVzLmRhdGEgJiYgcmVzLmRhdGEuaGFuZGxlKSB7XG4gICAgICBpZiAocmVzLmRhdGEudXBsb2FkX3RhZ3MpIHtcbiAgICAgICAgcmVzLmRhdGEudXBsb2FkVGFncyA9IHJlcy5kYXRhLnVwbG9hZF90YWdzO1xuICAgICAgICBkZWxldGUgcmVzLmRhdGEudXBsb2FkX3RhZ3M7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7IC4uLnJlcy5kYXRhLCBtaW1ldHlwZTogcmVzLmRhdGEudHlwZSB9O1xuICAgIH1cblxuICAgIHRocm93IG5ldyBGaWxlc3RhY2tFcnJvcihgSW52YWxpZCBzdG9yZSByZXNwb25zZSAke0pTT04uc3RyaW5naWZ5KHJlcy5kYXRhKX1gKTtcbiAgfSk7XG59O1xuIl19