Skip to content

Commit

Permalink
feat: improve config
Browse files Browse the repository at this point in the history
  • Loading branch information
florian-lefebvre committed Oct 17, 2024
1 parent dd8d059 commit eac4c72
Show file tree
Hide file tree
Showing 6 changed files with 40 additions and 71 deletions.
44 changes: 0 additions & 44 deletions packages/astro/config.d.ts

This file was deleted.

16 changes: 0 additions & 16 deletions packages/astro/config.mjs

This file was deleted.

7 changes: 1 addition & 6 deletions packages/astro/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,7 @@
},
"./compiler-runtime": "./dist/runtime/compiler/index.js",
"./runtime/*": "./dist/runtime/*",
"./config": {
"types": "./config.d.ts",
"default": "./config.mjs"
},
"./config": "./dist/config/entrypoint.js",
"./container": {
"types": "./dist/container/index.d.ts",
"default": "./dist/container/index.js"
Expand Down Expand Up @@ -93,8 +90,6 @@
"types",
"astro.js",
"index.d.ts",
"config.d.ts",
"config.mjs",
"zod.d.ts",
"zod.mjs",
"env.d.ts",
Expand Down
19 changes: 19 additions & 0 deletions packages/astro/src/config/entrypoint.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import type { SharpImageServiceConfig } from '../assets/services/sharp.js';
import type { ImageServiceConfig } from '../types/public/index.js';

export { defineConfig, getViteConfig } from './index.js';
export { envField } from '../env/config.js';

export function sharpImageService(config: SharpImageServiceConfig = {}): ImageServiceConfig {
return {
entrypoint: 'astro/assets/services/sharp',
config,
};
}

export function passthroughImageService(): ImageServiceConfig {
return {
entrypoint: 'astro/assets/services/noop',
config: {},
};
}
23 changes: 19 additions & 4 deletions packages/astro/src/config/index.ts
Original file line number Diff line number Diff line change
@@ -1,21 +1,28 @@
import type { UserConfig as ViteUserConfig } from 'vite';
import type { UserConfig as ViteUserConfig, UserConfigFn as ViteUserConfigFn } from 'vite';
import { Logger } from '../core/logger/core.js';
import { createRouteManifest } from '../core/routing/index.js';
import type { AstroInlineConfig, AstroUserDefineConfig, Locales } from '../types/public/config.js';
import { createDevelopmentManifest } from '../vite-plugin-astro-server/plugin.js';

/**
* See the full Astro Configuration API Documentation
* https://astro.build/config
*/
export function defineConfig<const TLocales extends Locales = never>(
config: AstroUserDefineConfig<TLocales>,
) {
return config;
}

/**
* Use Astro to generate a fully resolved Vite config
*/
export function getViteConfig(
userViteConfig: ViteUserConfig,
inlineAstroConfig: AstroInlineConfig = {},
) {
): ViteUserConfigFn {
// Return an async Vite config getter which exposes a resolved `mode` and `command`
return async ({ mode, command }: { mode: 'dev'; command: 'serve' | 'build' }) => {
return async ({ mode, command }) => {
// Vite `command` is `serve | build`, but Astro uses `dev | build`
const cmd = command === 'serve' ? 'dev' : command;

Expand Down Expand Up @@ -54,7 +61,15 @@ export function getViteConfig(
astroContentListenPlugin({ settings, logger, fs }),
],
},
{ settings, logger, mode, sync: false, manifest, ssrManifest: devSSRManifest },
{
settings,
logger,
// TODO: can the custom mode solve that?
mode: mode as 'dev' | 'build',
sync: false,
manifest,
ssrManifest: devSSRManifest,
},
);
await runHookConfigDone({ settings, logger });
return mergeConfig(viteConfig, userViteConfig);
Expand Down
2 changes: 1 addition & 1 deletion packages/astro/src/env/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import type {
} from './schema.js';

/**
* Return a valid env field to use in this Astro config for `experimental.env.schema`.
* Return a valid env field to use in this Astro config for `env.schema`.
*/
export const envField = {
string: (options: StringFieldInput): StringField => ({
Expand Down

0 comments on commit eac4c72

Please sign in to comment.