diff --git a/packages/common/src/directives/ng_optimized_image/image_loaders/cloudinary_loader.ts b/packages/common/src/directives/ng_optimized_image/image_loaders/cloudinary_loader.ts index 60a02d27e3e..ee310f41ffd 100644 --- a/packages/common/src/directives/ng_optimized_image/image_loaders/cloudinary_loader.ts +++ b/packages/common/src/directives/ng_optimized_image/image_loaders/cloudinary_loader.ts @@ -10,9 +10,9 @@ import {Provider, ɵRuntimeError as RuntimeError} from '@angular/core'; import {RuntimeErrorCode} from '../../../errors'; import {PRECONNECT_CHECK_BLOCKLIST} from '../preconnect_link_checker'; +import {isValidPath, normalizePath, normalizeSrc} from '../util'; import {IMAGE_LOADER, ImageLoaderConfig} from './image_loader'; -import {isValidPath, normalizePath, normalizeSrc} from './loader_utils'; /** * Function that generates a built-in ImageLoader for Cloudinary diff --git a/packages/common/src/directives/ng_optimized_image/image_loaders/imagekit_loader.ts b/packages/common/src/directives/ng_optimized_image/image_loaders/imagekit_loader.ts index 86d511dba1f..323ec462bfb 100644 --- a/packages/common/src/directives/ng_optimized_image/image_loaders/imagekit_loader.ts +++ b/packages/common/src/directives/ng_optimized_image/image_loaders/imagekit_loader.ts @@ -10,9 +10,9 @@ import {Provider, ɵRuntimeError as RuntimeError} from '@angular/core'; import {RuntimeErrorCode} from '../../../errors'; import {PRECONNECT_CHECK_BLOCKLIST} from '../preconnect_link_checker'; +import {isValidPath, normalizePath, normalizeSrc} from '../util'; import {IMAGE_LOADER, ImageLoaderConfig} from './image_loader'; -import {isValidPath, normalizePath, normalizeSrc} from './loader_utils'; /** * Function that generates a built-in ImageLoader for ImageKit @@ -44,7 +44,7 @@ export function provideImageKitLoader(path: string, options: {ensurePreconnect?: let params = `tr:q-auto`; // applies the "auto quality" transformation if (config.width) { params += `,w-${config.width?.toString()}`; - }; + } const url = `${path}/${params}/${normalizeSrc(config.src)}`; return url; } diff --git a/packages/common/src/directives/ng_optimized_image/image_loaders/imgix_loader.ts b/packages/common/src/directives/ng_optimized_image/image_loaders/imgix_loader.ts index 35b26bd3cfb..9dca13529e8 100644 --- a/packages/common/src/directives/ng_optimized_image/image_loaders/imgix_loader.ts +++ b/packages/common/src/directives/ng_optimized_image/image_loaders/imgix_loader.ts @@ -10,9 +10,9 @@ import {Provider, ɵRuntimeError as RuntimeError} from '@angular/core'; import {RuntimeErrorCode} from '../../../errors'; import {PRECONNECT_CHECK_BLOCKLIST} from '../preconnect_link_checker'; +import {isValidPath, normalizePath, normalizeSrc} from '../util'; import {IMAGE_LOADER, ImageLoaderConfig} from './image_loader'; -import {isValidPath, normalizePath, normalizeSrc} from './loader_utils'; /** * Function that generates a built-in ImageLoader for Imgix and turns it diff --git a/packages/common/src/directives/ng_optimized_image/image_loaders/loader_utils.ts b/packages/common/src/directives/ng_optimized_image/image_loaders/loader_utils.ts deleted file mode 100644 index 070b6f39a12..00000000000 --- a/packages/common/src/directives/ng_optimized_image/image_loaders/loader_utils.ts +++ /dev/null @@ -1,22 +0,0 @@ -export function isValidPath(path: unknown) { - const isString = typeof path === 'string'; - - if (!isString || path.trim() === '') { - return false; - } - - try { - const url = new URL(path); - return true; - } catch { - return false; - } -} - -export function normalizePath(path: string) { - return path.endsWith('/') ? path.slice(0, -1) : path; -} - -export function normalizeSrc(src: string) { - return src.startsWith('/') ? src.slice(1) : src; -} \ No newline at end of file diff --git a/packages/common/src/directives/ng_optimized_image/util.ts b/packages/common/src/directives/ng_optimized_image/util.ts index 0b9af3e4d62..f00d8d38187 100644 --- a/packages/common/src/directives/ng_optimized_image/util.ts +++ b/packages/common/src/directives/ng_optimized_image/util.ts @@ -38,3 +38,26 @@ export function extractHostname(url: string): string { } return url; } + +export function isValidPath(path: unknown): boolean { + const isString = typeof path === 'string'; + + if (!isString || path.trim() === '') { + return false; + } + + try { + const url = new URL(path); + return true; + } catch { + return false; + } +} + +export function normalizePath(path: string): string { + return path.endsWith('/') ? path.slice(0, -1) : path; +} + +export function normalizeSrc(src: string): string { + return src.startsWith('/') ? src.slice(1) : src; +} diff --git a/packages/common/test/image_loaders/image_loader_spec.ts b/packages/common/test/image_loaders/image_loader_spec.ts index 0cc23acbb10..046f19f2221 100644 --- a/packages/common/test/image_loaders/image_loader_spec.ts +++ b/packages/common/test/image_loaders/image_loader_spec.ts @@ -10,7 +10,7 @@ import {IMAGE_LOADER, ImageLoader, PRECONNECT_CHECK_BLOCKLIST} from '@angular/co import {provideCloudinaryLoader} from '@angular/common/src/directives/ng_optimized_image/image_loaders/cloudinary_loader'; import {provideImageKitLoader} from '@angular/common/src/directives/ng_optimized_image/image_loaders/imagekit_loader'; import {provideImgixLoader} from '@angular/common/src/directives/ng_optimized_image/image_loaders/imgix_loader'; -import {isValidPath} from '@angular/common/src/directives/ng_optimized_image/image_loaders/loader_utils'; +import {isValidPath} from '@angular/common/src/directives/ng_optimized_image/util'; import {createEnvironmentInjector, ValueProvider} from '@angular/core'; describe('Built-in image directive loaders', () => {