@escapenavigator/utils 2.0.7 → 2.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/image-url.d.ts +18 -0
- package/dist/image-url.js +45 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare const IMAGE_CDN_HOST_COM = "d2z3luly8bezbw.cloudfront.net";
|
|
2
|
+
export declare const IMAGE_CDN_HOST_RU = "picture.escapenavigator.ru";
|
|
3
|
+
export declare const imageResizeSizes: {
|
|
4
|
+
readonly xs: "300x300";
|
|
5
|
+
readonly s: "300x300";
|
|
6
|
+
readonly m: "300x300";
|
|
7
|
+
readonly l: "300x300";
|
|
8
|
+
readonly xl: "300x300";
|
|
9
|
+
readonly xxl: "640x640";
|
|
10
|
+
readonly auto: "640x640";
|
|
11
|
+
};
|
|
12
|
+
export type ImageResizeSize = keyof typeof imageResizeSizes | (string & {});
|
|
13
|
+
export declare const GALLERY_IMAGE_SIZE = "1280x1280";
|
|
14
|
+
export declare const getImageCdnHost: () => string;
|
|
15
|
+
export declare const extractStoragePath: (src: string) => string | null;
|
|
16
|
+
export declare const isEscapenavigatorImage: (src: string) => boolean;
|
|
17
|
+
/** @see en-ui/src/image/utils.ts — keep logic in sync */
|
|
18
|
+
export declare const getImageUrl: (src?: string, size?: ImageResizeSize) => string | undefined;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getImageUrl = exports.isEscapenavigatorImage = exports.extractStoragePath = exports.getImageCdnHost = exports.GALLERY_IMAGE_SIZE = exports.imageResizeSizes = exports.IMAGE_CDN_HOST_RU = exports.IMAGE_CDN_HOST_COM = void 0;
|
|
4
|
+
const is_ru_1 = require("./is-ru");
|
|
5
|
+
exports.IMAGE_CDN_HOST_COM = 'd2z3luly8bezbw.cloudfront.net';
|
|
6
|
+
exports.IMAGE_CDN_HOST_RU = 'picture.escapenavigator.ru';
|
|
7
|
+
const S3_BUCKET_MARKER = 'escapenavigator-images.s3';
|
|
8
|
+
const CDN_HOSTS = [exports.IMAGE_CDN_HOST_COM, exports.IMAGE_CDN_HOST_RU];
|
|
9
|
+
exports.imageResizeSizes = {
|
|
10
|
+
xs: '300x300',
|
|
11
|
+
s: '300x300',
|
|
12
|
+
m: '300x300',
|
|
13
|
+
l: '300x300',
|
|
14
|
+
xl: '300x300',
|
|
15
|
+
xxl: '640x640',
|
|
16
|
+
auto: '640x640',
|
|
17
|
+
};
|
|
18
|
+
exports.GALLERY_IMAGE_SIZE = '1280x1280';
|
|
19
|
+
const getImageCdnHost = () => ((0, is_ru_1.isRu)() ? exports.IMAGE_CDN_HOST_RU : exports.IMAGE_CDN_HOST_COM);
|
|
20
|
+
exports.getImageCdnHost = getImageCdnHost;
|
|
21
|
+
const extractStoragePath = (src) => {
|
|
22
|
+
if (src.includes('amazonaws.com/')) {
|
|
23
|
+
return src.split('amazonaws.com/')[1]?.split('?')[0] ?? null;
|
|
24
|
+
}
|
|
25
|
+
const match = src.match(/fit-in\/\d+x\d+\/(.+?)(?:\?|$)/);
|
|
26
|
+
return match?.[1] ?? null;
|
|
27
|
+
};
|
|
28
|
+
exports.extractStoragePath = extractStoragePath;
|
|
29
|
+
const isEscapenavigatorImage = (src) => src.includes(S3_BUCKET_MARKER) || CDN_HOSTS.some((host) => src.includes(host));
|
|
30
|
+
exports.isEscapenavigatorImage = isEscapenavigatorImage;
|
|
31
|
+
/** @see en-ui/src/image/utils.ts — keep logic in sync */
|
|
32
|
+
const getImageUrl = (src, size = 'm') => {
|
|
33
|
+
if (!src || src.startsWith('data:'))
|
|
34
|
+
return src;
|
|
35
|
+
const dimensions = size in exports.imageResizeSizes
|
|
36
|
+
? exports.imageResizeSizes[size]
|
|
37
|
+
: size;
|
|
38
|
+
if (!(0, exports.isEscapenavigatorImage)(src))
|
|
39
|
+
return src;
|
|
40
|
+
const path = (0, exports.extractStoragePath)(src);
|
|
41
|
+
if (!path)
|
|
42
|
+
return src;
|
|
43
|
+
return `https://${(0, exports.getImageCdnHost)()}/fit-in/${dimensions}/${path}`;
|
|
44
|
+
};
|
|
45
|
+
exports.getImageUrl = getImageUrl;
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -50,3 +50,4 @@ __exportStar(require("./utm-touchpoints"), exports);
|
|
|
50
50
|
__exportStar(require("./validate-by-dto"), exports);
|
|
51
51
|
__exportStar(require("./validate-promocode"), exports);
|
|
52
52
|
__exportStar(require("./widget-chat-attention"), exports);
|
|
53
|
+
__exportStar(require("./image-url"), exports);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@escapenavigator/utils",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.9",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"test": "jest"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@escapenavigator/types": "^2.0.
|
|
17
|
+
"@escapenavigator/types": "^2.0.9",
|
|
18
18
|
"axios": "^0.21.4",
|
|
19
19
|
"class-transformer": "^0.5.1",
|
|
20
20
|
"class-validator": "^0.13.2",
|
|
@@ -29,5 +29,5 @@
|
|
|
29
29
|
"ts-jest": "^29.1.1",
|
|
30
30
|
"typescript": "^5.6"
|
|
31
31
|
},
|
|
32
|
-
"gitHead": "
|
|
32
|
+
"gitHead": "eb29688633048e8011bc07e280dcaa84a2c61244"
|
|
33
33
|
}
|