This commit is contained in:
154
node_modules/geotiff/dist-node/utils.js
generated
vendored
Normal file
154
node_modules/geotiff/dist-node/utils.js
generated
vendored
Normal file
@@ -0,0 +1,154 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.AggregateError = exports.CustomAggregateError = exports.AbortError = exports.zip = exports.wait = exports.parseContentRange = exports.toArrayRecursively = exports.toArray = exports.times = exports.range = exports.invert = exports.forEach = exports.endsWith = exports.chunk = exports.assign = void 0;
|
||||
function assign(target, source) {
|
||||
for (const key in source) {
|
||||
if (source.hasOwnProperty(key)) {
|
||||
target[key] = source[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.assign = assign;
|
||||
function chunk(iterable, length) {
|
||||
const results = [];
|
||||
const lengthOfIterable = iterable.length;
|
||||
for (let i = 0; i < lengthOfIterable; i += length) {
|
||||
const chunked = [];
|
||||
for (let ci = i; ci < i + length; ci++) {
|
||||
chunked.push(iterable[ci]);
|
||||
}
|
||||
results.push(chunked);
|
||||
}
|
||||
return results;
|
||||
}
|
||||
exports.chunk = chunk;
|
||||
function endsWith(string, expectedEnding) {
|
||||
if (string.length < expectedEnding.length) {
|
||||
return false;
|
||||
}
|
||||
const actualEnding = string.substr(string.length - expectedEnding.length);
|
||||
return actualEnding === expectedEnding;
|
||||
}
|
||||
exports.endsWith = endsWith;
|
||||
function forEach(iterable, func) {
|
||||
const { length } = iterable;
|
||||
for (let i = 0; i < length; i++) {
|
||||
func(iterable[i], i);
|
||||
}
|
||||
}
|
||||
exports.forEach = forEach;
|
||||
function invert(oldObj) {
|
||||
const newObj = {};
|
||||
for (const key in oldObj) {
|
||||
if (oldObj.hasOwnProperty(key)) {
|
||||
const value = oldObj[key];
|
||||
newObj[value] = key;
|
||||
}
|
||||
}
|
||||
return newObj;
|
||||
}
|
||||
exports.invert = invert;
|
||||
function range(n) {
|
||||
const results = [];
|
||||
for (let i = 0; i < n; i++) {
|
||||
results.push(i);
|
||||
}
|
||||
return results;
|
||||
}
|
||||
exports.range = range;
|
||||
function times(numTimes, func) {
|
||||
const results = [];
|
||||
for (let i = 0; i < numTimes; i++) {
|
||||
results.push(func(i));
|
||||
}
|
||||
return results;
|
||||
}
|
||||
exports.times = times;
|
||||
function toArray(iterable) {
|
||||
const results = [];
|
||||
const { length } = iterable;
|
||||
for (let i = 0; i < length; i++) {
|
||||
results.push(iterable[i]);
|
||||
}
|
||||
return results;
|
||||
}
|
||||
exports.toArray = toArray;
|
||||
function toArrayRecursively(input) {
|
||||
if (input.length) {
|
||||
return toArray(input).map(toArrayRecursively);
|
||||
}
|
||||
return input;
|
||||
}
|
||||
exports.toArrayRecursively = toArrayRecursively;
|
||||
// copied from https://github.com/academia-de-codigo/parse-content-range-header/blob/master/index.js
|
||||
function parseContentRange(headerValue) {
|
||||
if (!headerValue) {
|
||||
return null;
|
||||
}
|
||||
if (typeof headerValue !== 'string') {
|
||||
throw new Error('invalid argument');
|
||||
}
|
||||
const parseInt = (number) => Number.parseInt(number, 10);
|
||||
// Check for presence of unit
|
||||
let matches = headerValue.match(/^(\w*) /);
|
||||
const unit = matches && matches[1];
|
||||
// check for start-end/size header format
|
||||
matches = headerValue.match(/(\d+)-(\d+)\/(\d+|\*)/);
|
||||
if (matches) {
|
||||
return {
|
||||
unit,
|
||||
first: parseInt(matches[1]),
|
||||
last: parseInt(matches[2]),
|
||||
length: matches[3] === '*' ? null : parseInt(matches[3]),
|
||||
};
|
||||
}
|
||||
// check for size header format
|
||||
matches = headerValue.match(/(\d+|\*)/);
|
||||
if (matches) {
|
||||
return {
|
||||
unit,
|
||||
first: null,
|
||||
last: null,
|
||||
length: matches[1] === '*' ? null : parseInt(matches[1]),
|
||||
};
|
||||
}
|
||||
return null;
|
||||
}
|
||||
exports.parseContentRange = parseContentRange;
|
||||
/*
|
||||
* Promisified wrapper around 'setTimeout' to allow 'await'
|
||||
*/
|
||||
async function wait(milliseconds) {
|
||||
return new Promise((resolve) => setTimeout(resolve, milliseconds));
|
||||
}
|
||||
exports.wait = wait;
|
||||
function zip(a, b) {
|
||||
const A = Array.isArray(a) ? a : Array.from(a);
|
||||
const B = Array.isArray(b) ? b : Array.from(b);
|
||||
return A.map((k, i) => [k, B[i]]);
|
||||
}
|
||||
exports.zip = zip;
|
||||
// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error
|
||||
class AbortError extends Error {
|
||||
constructor(params) {
|
||||
// Pass remaining arguments (including vendor specific ones) to parent constructor
|
||||
super(params);
|
||||
// Maintains proper stack trace for where our error was thrown (only available on V8)
|
||||
if (Error.captureStackTrace) {
|
||||
Error.captureStackTrace(this, AbortError);
|
||||
}
|
||||
this.name = 'AbortError';
|
||||
}
|
||||
}
|
||||
exports.AbortError = AbortError;
|
||||
class CustomAggregateError extends Error {
|
||||
constructor(errors, message) {
|
||||
super(message);
|
||||
this.errors = errors;
|
||||
this.message = message;
|
||||
this.name = 'AggregateError';
|
||||
}
|
||||
}
|
||||
exports.CustomAggregateError = CustomAggregateError;
|
||||
exports.AggregateError = CustomAggregateError;
|
||||
//# sourceMappingURL=utils.js.map
|
||||
Reference in New Issue
Block a user