summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar tony-sull <tony-sull@users.noreply.github.com> 2022-07-08 21:40:22 +0000
committerGravatar fredkbot <fred+astrobot@astro.build> 2022-07-08 21:40:22 +0000
commitd2f68345f97eb5b55bc323d633017069398727b2 (patch)
treeac30ce5325e58b84094df1d256df9167acb4ab9d
parent89d76753a0dc50b2967d1fa9d36e34bde2722b83 (diff)
downloadastro-d2f68345f97eb5b55bc323d633017069398727b2.tar.gz
astro-d2f68345f97eb5b55bc323d633017069398727b2.tar.zst
astro-d2f68345f97eb5b55bc323d633017069398727b2.zip
[ci] format
-rw-r--r--packages/integrations/image/src/get-image.ts29
-rw-r--r--packages/integrations/image/src/get-picture.ts35
-rw-r--r--packages/integrations/image/src/index.ts4
-rw-r--r--packages/integrations/image/src/types.ts3
-rw-r--r--packages/integrations/image/test/image-ssg.test.js2
-rw-r--r--packages/integrations/image/test/picture-ssg.test.js12
-rw-r--r--packages/integrations/image/test/picture-ssr.test.js12
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