1 | "use strict";
|
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
|
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
|
4 | };
|
5 | Object.defineProperty(exports, "__esModule", { value: true });
|
6 | const crypto_1 = __importDefault(require("crypto"));
|
7 | function joinURI(...arr) {
|
8 | const first = arr[0] || '';
|
9 | const join = arr.join('/');
|
10 | return normalizeURI(join[0] === '/' && first[0] !== '/' ? join.substring(1) : join);
|
11 | }
|
12 | exports.joinURI = joinURI;
|
13 | function normalizeURI(uri) {
|
14 | return uri.replace(/(:\/\/)|(\\+|\/{2,})+/g, match => (match === '://' ? '://' : '/'));
|
15 | }
|
16 | function generateFingerprint(input) {
|
17 | return crypto_1.default
|
18 | .createHash('md5')
|
19 | .update(input)
|
20 | .digest('hex');
|
21 | }
|
22 | exports.generateFingerprint = generateFingerprint;
|
23 | exports.toNumber = (value) => {
|
24 | if (typeof value === 'string') {
|
25 | return parseInt(value);
|
26 | }
|
27 | return value;
|
28 | };
|
29 | function toSize(size) {
|
30 | let width;
|
31 | let height;
|
32 | if (Array.isArray(size)) {
|
33 | if (size.length) {
|
34 |
|
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 |
|
44 | width = size;
|
45 | height = size;
|
46 | }
|
47 | else if (typeof size === 'string') {
|
48 |
|
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 | }
|
62 | exports.toSize = toSize;
|
63 | function toArray(i) {
|
64 | if (i == null)
|
65 | return [];
|
66 | return i && !Array.isArray(i) ? [i] : i;
|
67 | }
|
68 | exports.toArray = toArray;
|
69 |
|
\ | No newline at end of file |