summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar matthewp <matthewp@users.noreply.github.com> 2022-08-25 19:23:09 +0000
committerGravatar fredkbot <fred+astrobot@astro.build> 2022-08-25 19:23:09 +0000
commitb680c3eb97b3bdd271dd5e0e848e3dba4221f140 (patch)
tree1f3d2b06d1546c1dfb96fb1e66609a6c2a406315
parentcd154e447ba7883531d484deea2fd046898d749b (diff)
downloadastro-b680c3eb97b3bdd271dd5e0e848e3dba4221f140.tar.gz
astro-b680c3eb97b3bdd271dd5e0e848e3dba4221f140.tar.zst
astro-b680c3eb97b3bdd271dd5e0e848e3dba4221f140.zip
[ci] format
-rw-r--r--packages/astro/src/@types/astro.ts10
-rw-r--r--packages/astro/src/core/build/generate.ts24
-rw-r--r--packages/astro/test/page-format.test.js74
3 files changed, 60 insertions, 48 deletions
diff --git a/packages/astro/src/@types/astro.ts b/packages/astro/src/@types/astro.ts
index ce0c3e4cb..8958605ce 100644
--- a/packages/astro/src/@types/astro.ts
+++ b/packages/astro/src/@types/astro.ts
@@ -517,13 +517,13 @@ export interface AstroUserConfig {
* }
* }
* ```
- *
+ *
* #### Effect on Astro.url
* Setting `build.format` controls what `Astro.url` is set to during the build. When it is:
- * - `directory` - The `Astro.url.pathname` will include a trailing slash to mimic folder behavior; ie `/foo/`.
- * - `file` - The `Astro.url.pathname` will include `.html`; ie `/foo.html`.
- *
- * This means that when you create relative URLs using `new URL('./relative', Astro.url)`, you will get consistent behavior between dev and build.
+ * - `directory` - The `Astro.url.pathname` will include a trailing slash to mimic folder behavior; ie `/foo/`.
+ * - `file` - The `Astro.url.pathname` will include `.html`; ie `/foo.html`.
+ *
+ * This means that when you create relative URLs using `new URL('./relative', Astro.url)`, you will get consistent behavior between dev and build.
*/
format?: 'file' | 'directory';
};
diff --git a/packages/astro/src/core/build/generate.ts b/packages/astro/src/core/build/generate.ts
index 218f1bab3..d59b650b4 100644
--- a/packages/astro/src/core/build/generate.ts
+++ b/packages/astro/src/core/build/generate.ts
@@ -244,7 +244,13 @@ function addPageName(pathname: string, opts: StaticBuildOptions): void {
opts.pageNames.push(pathname.replace(/^\//, ''));
}
-function getUrlForPath(pathname: string, base: string, origin: string, format: 'directory' | 'file', routeType: RouteType): URL {
+function getUrlForPath(
+ pathname: string,
+ base: string,
+ origin: string,
+ format: 'directory' | 'file',
+ routeType: RouteType
+): URL {
/**
* Examples:
* pathname: /, /foo
@@ -252,13 +258,14 @@ function getUrlForPath(pathname: string, base: string, origin: string, format: '
*/
const ending = format === 'directory' ? '/' : '.html';
let buildPathname: string;
- if(pathname === '/' || pathname === '') {
+ if (pathname === '/' || pathname === '') {
buildPathname = base;
- } else if(routeType === 'endpoint') {
+ } else if (routeType === 'endpoint') {
const buildPathRelative = removeLeadingForwardSlash(pathname);
buildPathname = base + buildPathRelative;
} else {
- const buildPathRelative = removeTrailingForwardSlash(removeLeadingForwardSlash(pathname)) + ending;
+ const buildPathRelative =
+ removeTrailingForwardSlash(removeLeadingForwardSlash(pathname)) + ending;
buildPathname = base + buildPathRelative;
}
const url = new URL(buildPathname, origin);
@@ -312,8 +319,13 @@ async function generatePath(
}
const ssr = opts.astroConfig.output === 'server';
- const url = getUrlForPath(pathname, opts.astroConfig.base, origin,
- opts.astroConfig.build.format, pageData.route.type);
+ const url = getUrlForPath(
+ pathname,
+ opts.astroConfig.base,
+ origin,
+ opts.astroConfig.build.format,
+ pageData.route.type
+ );
const options: RenderOptions = {
adapterName: undefined,
links,
diff --git a/packages/astro/test/page-format.test.js b/packages/astro/test/page-format.test.js
index cc31d49d3..2143bf09b 100644
--- a/packages/astro/test/page-format.test.js
+++ b/packages/astro/test/page-format.test.js
@@ -3,50 +3,50 @@ import * as cheerio from 'cheerio';
import { loadFixture } from './test-utils.js';
describe('build.format', () => {
- describe('directory', () => {
- /** @type {import('./test-utils').Fixture} */
- let fixture;
- before(async () => {
- fixture = await loadFixture({
- root: './fixtures/page-format/',
- });
- });
+ describe('directory', () => {
+ /** @type {import('./test-utils').Fixture} */
+ let fixture;
+ before(async () => {
+ fixture = await loadFixture({
+ root: './fixtures/page-format/',
+ });
+ });
- describe('Build', () => {
- before(async () => {
- await fixture.build();
- });
+ describe('Build', () => {
+ before(async () => {
+ await fixture.build();
+ });
- it('relative urls created point to sibling folders', async () => {
- let html = await fixture.readFile('/nested/page/index.html');
- let $ = cheerio.load(html);
- expect($('#another').attr('href')).to.equal('/nested/page/another/');
- });
- });
- });
+ it('relative urls created point to sibling folders', async () => {
+ let html = await fixture.readFile('/nested/page/index.html');
+ let $ = cheerio.load(html);
+ expect($('#another').attr('href')).to.equal('/nested/page/another/');
+ });
+ });
+ });
describe('file', () => {
- /** @type {import('./test-utils').Fixture} */
- let fixture;
- before(async () => {
- fixture = await loadFixture({
- root: './fixtures/page-format/',
+ /** @type {import('./test-utils').Fixture} */
+ let fixture;
+ before(async () => {
+ fixture = await loadFixture({
+ root: './fixtures/page-format/',
build: {
format: 'file',
},
- });
- });
+ });
+ });
- describe('Build', () => {
- before(async () => {
- await fixture.build();
- });
+ describe('Build', () => {
+ before(async () => {
+ await fixture.build();
+ });
- it('relative urls created point to sibling folders', async () => {
- let html = await fixture.readFile('/nested/page.html');
- let $ = cheerio.load(html);
- expect($('#another').attr('href')).to.equal('/nested/another/');
- });
- });
- });
+ it('relative urls created point to sibling folders', async () => {
+ let html = await fixture.readFile('/nested/page.html');
+ let $ = cheerio.load(html);
+ expect($('#another').attr('href')).to.equal('/nested/another/');
+ });
+ });
+ });
});