| 12345678910111213141516171819202122 |
- import { REQUEST_CONTEXT_KEY } from '@vendure/core/dist/common/constants';
- import { Request } from 'express';
- import { AssetServerOptions } from './types';
- export function getAssetUrlPrefixFn(options: AssetServerOptions) {
- const { assetUrlPrefix, route } = options;
- if (assetUrlPrefix == null) {
- return (request: Request, identifier: string) =>
- `${request.protocol}://${request.get('host')}/${route}/`;
- }
- if (typeof assetUrlPrefix === 'string') {
- return (...args: any[]) => assetUrlPrefix;
- }
- if (typeof assetUrlPrefix === 'function') {
- return (request: Request, identifier: string) => {
- const ctx = (request as any)[REQUEST_CONTEXT_KEY];
- return assetUrlPrefix(ctx, identifier);
- };
- }
- throw new Error(`The assetUrlPrefix option was of an unexpected type: ${JSON.stringify(assetUrlPrefix)}`);
- }
|