imgproxy
Version:
NodeJS client library to generate imgproxy urls
35 lines (32 loc) • 1.01 kB
JavaScript
import {
isSecureConfig,
sign,
urlSafeEncode
} from "./chunk-X7NDVT4E.mjs";
// src/base-builder.ts
var BaseBuilder = class {
constructor(config) {
this.config = config;
this.config = config;
}
/**
* Generates a URL based on the set options.
*
* @param uri The uri of the image
* @param extension optional string to append as extension
*/
generateUrl(uri, extension) {
const options = this.serializeOptions();
const config = this.config;
const encode = config.encode !== false;
uri = encode ? urlSafeEncode(uri) : `plain/${uri}`;
uri = extension ? `${uri}${encode ? "." : "@"}${extension}` : uri;
uri = `/${options ? `${options}/` : ""}${uri}`;
const signature = isSecureConfig(config) ? sign(config.key, config.salt, uri, config.signatureSize || 32) : typeof config.insecure === "string" ? config.insecure : "insecure";
const url = new URL(`${signature}${uri}`, config.baseUrl);
return url.toString();
}
};
export {
BaseBuilder
};