53 lines
2.0 KiB
TypeScript
53 lines
2.0 KiB
TypeScript
export function env(name: keyof ImportMetaEnv): string {
|
|
const value = import.meta.env[name];
|
|
|
|
return typeof value === 'string' ? value : '';
|
|
}
|
|
|
|
const apiBaseUrl = env('VITE_API_BASE_URL');
|
|
|
|
export const config = {
|
|
api: {
|
|
baseUrl: apiBaseUrl,
|
|
rootUrl: apiBaseUrl.split('/api')[0]
|
|
},
|
|
|
|
shopFiatCurrency: env('VITE_SHOP_FIAT_CURRENCY'),
|
|
|
|
productThumb: {
|
|
accept: env('VITE_PRODUCT_THUMB_ALLOWED_MIMES'),
|
|
maxFileBytes: parseInt(env('VITE_PRODUCT_THUMB_MAX_FILE_BYTES'), 10)
|
|
},
|
|
|
|
shopLogo: {
|
|
accept: env('VITE_SHOP_LOGO_ALLOWED_MIMES'),
|
|
maxFileBytes: parseInt(env('VITE_SHOP_LOGO_MAX_FILE_BYTES'), 10)
|
|
},
|
|
|
|
shopFavicon: {
|
|
accept: env('VITE_SHOP_FAVICON_ALLOWED_MIMES'),
|
|
maxFileBytes: parseInt(env('VITE_SHOP_FAVICON_MAX_FILE_BYTES'), 10)
|
|
},
|
|
|
|
digitalStockAttachment: {
|
|
accept: env('VITE_DIGITAL_STOCK_ATTACHMENT_ALLOWED_MIMES'),
|
|
maxFileBytes: parseInt(env('VITE_DIGITAL_STOCK_ATTACHMENT_MAX_FILE_BYTES'), 10)
|
|
},
|
|
|
|
validation: {
|
|
productTitleMaxLength: parseInt(env('VITE_VALIDATION_PRODUCT_TITLE_MAX_LENGTH'), 10),
|
|
categoryNameMaxLength: parseInt(env('VITE_VALIDATION_CATEGORY_NAME_MAX_LENGTH'), 10),
|
|
discountCodeMaxLength: parseInt(env('VITE_VALIDATION_DISCOUNT_CODE_MAX_LENGTH'), 10),
|
|
variantImagesMax: parseInt(env('VITE_VALIDATION_VARIANT_IMAGES_MAX'), 10),
|
|
digitalStockAttachmentsMax: parseInt(env('VITE_VALIDATION_DIGITAL_STOCK_ATTACHMENTS_MAX'), 10),
|
|
shippingNoteMinLength: parseInt(env('VITE_VALIDATION_SHIPPING_NOTE_MIN_LENGTH'), 10),
|
|
shippingNoteMaxLength: parseInt(env('VITE_VALIDATION_SHIPPING_NOTE_MAX_LENGTH'), 10),
|
|
orderMessageMaxLength: parseInt(env('VITE_VALIDATION_ORDER_MESSAGE_MAX_LENGTH'), 10),
|
|
bitcoinWithdrawMaxFeeRateSatVbyte: parseInt(env('VITE_VALIDATION_BITCOIN_WITHDRAW_MAX_FEE_RATE_SAT_VBYTE'), 10)
|
|
},
|
|
|
|
orders: {
|
|
detailPollIntervalMs: parseInt(env('VITE_ORDERS_DETAIL_POLL_INTERVAL_MS'), 10)
|
|
}
|
|
};
|