UNPKG

@esri/arcgis-rest-request

Version:

Common methods and utilities for @esri/arcgis-rest-js packages.

45 lines 1.59 kB
"use strict"; /* Copyright (c) 2017-2018 Environmental Systems Research Institute, Inc. * Apache-2.0 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.appendCustomParams = void 0; /** * Helper for methods with lots of first order request options to pass through as request parameters. */ function appendCustomParams(customOptions, keys, baseOptions) { // NOTE: this must be kept in sync with the keys in IRequestOptions const requestOptionsKeys = [ "params", "httpMethod", "rawResponse", "authentication", "hideToken", "portal", "credentials", "maxUrlLength", "headers", "signal", "suppressWarnings", "request" ]; const options = Object.assign(Object.assign({ params: {} }, baseOptions), customOptions); // merge all keys in customOptions into options.params options.params = keys.reduce((value, key) => { if (customOptions[key] || typeof customOptions[key] === "boolean" || (typeof customOptions[key] === "number" && customOptions[key] === 0)) { value[key] = customOptions[key]; } return value; }, options.params); // now remove all properties in options that don't exist in IRequestOptions return requestOptionsKeys.reduce((value, key) => { if (options[key]) { value[key] = options[key]; } return value; }, {}); } exports.appendCustomParams = appendCustomParams; //# sourceMappingURL=append-custom-params.js.map