UNPKG

2.09 kBJavaScriptView Raw
1"use strict";
2var __importDefault = (this && this.__importDefault) || function (mod) {
3 return (mod && mod.__esModule) ? mod : { "default": mod };
4};
5Object.defineProperty(exports, "__esModule", { value: true });
6const crypto_1 = __importDefault(require("crypto"));
7function joinURI(...arr) {
8 const first = arr[0] || '';
9 const join = arr.join('/');
10 return normalizeURI(join[0] === '/' && first[0] !== '/' ? join.substring(1) : join);
11}
12exports.joinURI = joinURI;
13function normalizeURI(uri) {
14 return uri.replace(/(:\/\/)|(\\+|\/{2,})+/g, match => (match === '://' ? '://' : '/'));
15}
16function generateFingerprint(input) {
17 return crypto_1.default
18 .createHash('md5')
19 .update(input)
20 .digest('hex');
21}
22exports.generateFingerprint = generateFingerprint;
23exports.toNumber = (value) => {
24 if (typeof value === 'string') {
25 return parseInt(value);
26 }
27 return value;
28};
29function toSize(size) {
30 let width;
31 let height;
32 if (Array.isArray(size)) {
33 if (size.length) {
34 // [0, 0] || [0]
35 width = exports.toNumber(size[0]);
36 height = size.length > 1 ? exports.toNumber(size[1]) : width;
37 }
38 else {
39 throw new Error('Failed to parse size: ' + size);
40 }
41 }
42 else if (typeof size === 'number') {
43 // 0
44 width = size;
45 height = size;
46 }
47 else if (typeof size === 'string') {
48 // '0x0'
49 const dimensions = size.split('x');
50 width = exports.toNumber(dimensions[0]);
51 height = exports.toNumber(dimensions[1]);
52 }
53 else if (typeof size.width !== 'undefined' && typeof size.height !== 'undefined') {
54 width = exports.toNumber(size.width);
55 height = exports.toNumber(size.height);
56 }
57 else {
58 throw new Error('Failed to parse size: ' + size);
59 }
60 return { width, height };
61}
62exports.toSize = toSize;
63function toArray(i) {
64 if (i == null)
65 return [];
66 return i && !Array.isArray(i) ? [i] : i;
67}
68exports.toArray = toArray;
69//# sourceMappingURL=utils.js.map
\No newline at end of file