diff options
author | 2022-07-08 21:40:22 +0000 | |
---|---|---|
committer | 2022-07-08 21:40:22 +0000 | |
commit | d2f68345f97eb5b55bc323d633017069398727b2 (patch) | |
tree | ac30ce5325e58b84094df1d256df9167acb4ab9d | |
parent | 89d76753a0dc50b2967d1fa9d36e34bde2722b83 (diff) | |
download | astro-d2f68345f97eb5b55bc323d633017069398727b2.tar.gz astro-d2f68345f97eb5b55bc323d633017069398727b2.tar.zst astro-d2f68345f97eb5b55bc323d633017069398727b2.zip |
[ci] format
-rw-r--r-- | packages/integrations/image/src/get-image.ts | 29 | ||||
-rw-r--r-- | packages/integrations/image/src/get-picture.ts | 35 | ||||
-rw-r--r-- | packages/integrations/image/src/index.ts | 4 | ||||
-rw-r--r-- | packages/integrations/image/src/types.ts | 3 | ||||
-rw-r--r-- | packages/integrations/image/test/image-ssg.test.js | 2 | ||||
-rw-r--r-- | packages/integrations/image/test/picture-ssg.test.js | 12 | ||||
-rw-r--r-- | packages/integrations/image/test/picture-ssr.test.js | 12 |
7 files changed, 59 insertions, 38 deletions
diff --git a/packages/integrations/image/src/get-image.ts b/packages/integrations/image/src/get-image.ts index ae423c3de..5eb41cf73 100644 --- a/packages/integrations/image/src/get-image.ts +++ b/packages/integrations/image/src/get-image.ts @@ -1,6 +1,13 @@ import slash from 'slash'; import { ROUTE_PATTERN } from './constants.js'; -import { ImageAttributes, ImageMetadata, ImageService, isSSRService, OutputFormat, TransformOptions } from './types.js'; +import { + ImageAttributes, + ImageMetadata, + ImageService, + isSSRService, + OutputFormat, + TransformOptions, +} from './types.js'; import { parseAspectRatio } from './utils.js'; export interface GetImageTransform extends Omit<TransformOptions, 'src'> { @@ -18,7 +25,9 @@ function resolveSize(transform: TransformOptions): TransformOptions { } if (!transform.aspectRatio) { - throw new Error(`"aspectRatio" must be included if only "${transform.width ? "width": "height"}" is provided`) + throw new Error( + `"aspectRatio" must be included if only "${transform.width ? 'width' : 'height'}" is provided` + ); } let aspectRatio: number; @@ -32,18 +41,18 @@ function resolveSize(transform: TransformOptions): TransformOptions { } if (transform.width) { - // only width was provided, calculate height + // only width was provided, calculate height return { ...transform, width: transform.width, - height: Math.round(transform.width / aspectRatio) + height: Math.round(transform.width / aspectRatio), } as TransformOptions; } else if (transform.height) { - // only height was provided, calculate width + // only height was provided, calculate width return { ...transform, width: Math.round(transform.height * aspectRatio), - height: transform.height + height: transform.height, }; } @@ -57,9 +66,7 @@ async function resolveTransform(input: GetImageTransform): Promise<TransformOpti } // resolve the metadata promise, usually when the ESM import is inlined - const metadata = 'then' in input.src - ? (await input.src).default - : input.src; + const metadata = 'then' in input.src ? (await input.src).default : input.src; let { width, height, aspectRatio, format = metadata.format, ...rest } = input; @@ -84,7 +91,7 @@ async function resolveTransform(input: GetImageTransform): Promise<TransformOpti height, aspectRatio, format: format as OutputFormat, - } + }; } /** @@ -94,7 +101,7 @@ async function resolveTransform(input: GetImageTransform): Promise<TransformOpti * @param transform @type {TransformOptions} The transformations requested for the optimized image. * @returns @type {ImageAttributes} The HTML attributes to be included on the built `<img />` element. */ - export async function getImage( +export async function getImage( loader: ImageService, transform: GetImageTransform ): Promise<ImageAttributes> { diff --git a/packages/integrations/image/src/get-picture.ts b/packages/integrations/image/src/get-picture.ts index 370da0678..f8ca694ad 100644 --- a/packages/integrations/image/src/get-picture.ts +++ b/packages/integrations/image/src/get-picture.ts @@ -1,7 +1,13 @@ import { lookup } from 'mrmime'; import { extname } from 'path'; import { getImage } from './get-image.js'; -import { ImageAttributes, ImageMetadata, ImageService, OutputFormat, TransformOptions } from './types.js'; +import { + ImageAttributes, + ImageMetadata, + ImageService, + OutputFormat, + TransformOptions, +} from './types.js'; import { parseAspectRatio } from './utils.js'; export interface GetPictureParams { @@ -14,7 +20,7 @@ export interface GetPictureParams { export interface GetPictureResult { image: ImageAttributes; - sources: { type: string; srcset: string; }[]; + sources: { type: string; srcset: string }[]; } async function resolveAspectRatio({ src, aspectRatio }: GetPictureParams) { @@ -49,14 +55,21 @@ export async function getPicture(params: GetPictureParams): Promise<GetPictureRe } async function getSource(format: OutputFormat) { - const imgs = await Promise.all(widths.map(async (width) => { - const img = await getImage(loader, { src, format, width, height: Math.round(width / aspectRatio!) }); - return `${img.src} ${width}w`; - })) + const imgs = await Promise.all( + widths.map(async (width) => { + const img = await getImage(loader, { + src, + format, + width, + height: Math.round(width / aspectRatio!), + }); + return `${img.src} ${width}w`; + }) + ); return { type: lookup(format) || format, - srcset: imgs.join(',') + srcset: imgs.join(','), }; } @@ -67,13 +80,13 @@ export async function getPicture(params: GetPictureParams): Promise<GetPictureRe src, width: Math.max(...widths), aspectRatio, - format: allFormats[allFormats.length - 1] + format: allFormats[allFormats.length - 1], }); - const sources = await Promise.all(allFormats.map(format => getSource(format))); + const sources = await Promise.all(allFormats.map((format) => getSource(format))); return { sources, - image - } + image, + }; } diff --git a/packages/integrations/image/src/index.ts b/packages/integrations/image/src/index.ts index 8b06484e7..3721f9667 100644 --- a/packages/integrations/image/src/index.ts +++ b/packages/integrations/image/src/index.ts @@ -3,8 +3,6 @@ import fs from 'fs/promises'; import path from 'path'; import { fileURLToPath } from 'url'; import { OUTPUT_DIR, PKG_NAME, ROUTE_PATTERN } from './constants.js'; -export * from './get-image.js'; -export * from './get-picture.js'; import { IntegrationOptions, TransformOptions } from './types.js'; import { ensureDir, @@ -14,6 +12,8 @@ import { propsToFilename, } from './utils.js'; import { createPlugin } from './vite-plugin-astro-image.js'; +export * from './get-image.js'; +export * from './get-picture.js'; const createIntegration = (options: IntegrationOptions = {}): AstroIntegration => { const resolvedOptions = { diff --git a/packages/integrations/image/src/types.ts b/packages/integrations/image/src/types.ts index 427aaf7cf..96067e828 100644 --- a/packages/integrations/image/src/types.ts +++ b/packages/integrations/image/src/types.ts @@ -83,7 +83,8 @@ export interface HostedImageService<T extends TransformOptions = TransformOption getImageAttributes(transform: T): Promise<ImageAttributes>; } -export interface SSRImageService<T extends TransformOptions = TransformOptions> extends HostedImageService<T> { +export interface SSRImageService<T extends TransformOptions = TransformOptions> + extends HostedImageService<T> { /** * Gets tthe HTML attributes needed for the server rendered `<img />` element. */ diff --git a/packages/integrations/image/test/image-ssg.test.js b/packages/integrations/image/test/image-ssg.test.js index b314844b6..b0d12908c 100644 --- a/packages/integrations/image/test/image-ssg.test.js +++ b/packages/integrations/image/test/image-ssg.test.js @@ -40,7 +40,7 @@ describe('SSG images', function () { }); describe('Inline imports', () => { - it ('includes src, width, and height attributes', () => { + it('includes src, width, and height attributes', () => { const image = $('#inline'); expect(image.attr('src')).to.equal('/_image/assets/social_506x253.jpg'); diff --git a/packages/integrations/image/test/picture-ssg.test.js b/packages/integrations/image/test/picture-ssg.test.js index 084c4d95b..7740ad055 100644 --- a/packages/integrations/image/test/picture-ssg.test.js +++ b/packages/integrations/image/test/picture-ssg.test.js @@ -39,7 +39,7 @@ describe('SSG pictures', function () { describe('Local images', () => { it('includes sources', () => { const sources = $('#social-jpg source'); - + expect(sources.length).to.equal(3); // TODO: better coverage to verify source props @@ -66,7 +66,7 @@ describe('SSG pictures', function () { describe('Inline imports', () => { it('includes sources', () => { const sources = $('#inline source'); - + expect(sources.length).to.equal(3); // TODO: better coverage to verify source props @@ -93,7 +93,7 @@ describe('SSG pictures', function () { describe('Remote images', () => { it('includes sources', () => { const sources = $('#google source'); - + expect(sources.length).to.equal(3); // TODO: better coverage to verify source props @@ -159,7 +159,7 @@ describe('SSG pictures', function () { describe('Local images', () => { it('includes sources', () => { const sources = $('#social-jpg source'); - + expect(sources.length).to.equal(3); // TODO: better coverage to verify source props @@ -197,7 +197,7 @@ describe('SSG pictures', function () { describe('Local images with inline imports', () => { it('includes sources', () => { const sources = $('#inline source'); - + expect(sources.length).to.equal(3); // TODO: better coverage to verify source props @@ -235,7 +235,7 @@ describe('SSG pictures', function () { describe('Remote images', () => { it('includes sources', () => { const sources = $('#google source'); - + expect(sources.length).to.equal(3); // TODO: better coverage to verify source props diff --git a/packages/integrations/image/test/picture-ssr.test.js b/packages/integrations/image/test/picture-ssr.test.js index ebef4249b..5bdc6f04c 100644 --- a/packages/integrations/image/test/picture-ssr.test.js +++ b/packages/integrations/image/test/picture-ssr.test.js @@ -27,7 +27,7 @@ describe('SSR pictures - build', function () { const $ = cheerio.load(html); const sources = $('#social-jpg source'); - + expect(sources.length).to.equal(3); // TODO: better coverage to verify source props @@ -87,7 +87,7 @@ describe('SSR pictures - build', function () { const $ = cheerio.load(html); const sources = $('#inline source'); - + expect(sources.length).to.equal(3); // TODO: better coverage to verify source props @@ -128,7 +128,7 @@ describe('SSR pictures - build', function () { const $ = cheerio.load(html); const sources = $('#google source'); - + expect(sources.length).to.equal(3); // TODO: better coverage to verify source props @@ -186,7 +186,7 @@ describe('SSR images - dev', function () { describe('Local images', () => { it('includes sources', () => { const sources = $('#social-jpg source'); - + expect(sources.length).to.equal(3); // TODO: better coverage to verify source props @@ -224,7 +224,7 @@ describe('SSR images - dev', function () { describe('Inline imports', () => { it('includes sources', () => { const sources = $('#inline source'); - + expect(sources.length).to.equal(3); // TODO: better coverage to verify source props @@ -251,7 +251,7 @@ describe('SSR images - dev', function () { describe('Remote images', () => { it('includes sources', () => { const sources = $('#google source'); - + expect(sources.length).to.equal(3); // TODO: better coverage to verify source props |