Библиотека содержит функцию preview
, которая помогает обрабатывать URL для изображений, используя список доступных
рабочих серверов, а также параметры изменения размера и обрезки.
Функция preview
используется для генерации URL изображения с учетом следующих параметров:
- Список рабочих серверов (
workers
): массив строк, содержащий имена или адреса рабочих серверов. - Исходный URL (
url
): изначальный путь к изображению. - Размер (
resize
): (опциональный) строка, определяющая размер изображения. По умолчанию используется размер90x90
. - Обрезка (
crop
): (опционально) строка, определяющая параметры обрезки изображения.
Если список рабочих серверов пуст, функция просто возвращает исходный URL.
- Если
workers
пуст, возвращается исходныйurl
. - Выбирается случайный сервер из списка
workers
. - Формируется новый URL, содержащий параметры:
- Размер изображения (
resize
), - Обрезка (
crop
), если предоставлена.
- Размер изображения (
function preview(
workers: string[],
url: string,
resize?: string,
crop?: string
): string
import { preview } from '@retailcrm/processed-image-url'
const workers = ['server1.example.com', 'server2.example.com']
const url = 'path/to/image.jpg'
// Пример 1: использование только resize
console.log(preview(workers, url, '200x200'))
// Результат: //server1.example.com/r/200x200/path/to/image.jpg
// Пример 2: использование resize и crop
console.log(preview(workers, url, '300x300', 'center'))
// Результат: //server2.example.com/r/300x300/c/center/path/to/image.jpg
// Пример 3: пустой список рабочих серверов
console.log(preview([], url))
// Результат: path/to/image.jpg
workers
(обязательный): список строк, идентифицирующих доступные рабочие серверы.url
(обязательный): строка, представляющая путь к исходному изображению.resize
(опциональный): строка для указания нового размера изображения. Например,90x90
,300x300
.crop
(опциональный): строка для указания метода или области обрезки, например,'center'
.
Функция возвращает:
- Формированный URL с рабочим сервером и параметрами (resize, crop),
- Или исходный
url
, если список рабочих серверов пуст.
Для использования функции в своем проекте установите зависимости и импортируйте модуль:
npm i --save @retailcrm/image-preview
Или, если используется yarn
:
yarn add @retailcrm/image-preview