Run integration config hook on astro sync
(#6238)
* refactor: move sync to core * fix: runHookConfigSetup in CLI * chore: changeset * fix: sync import on test-utils * fix: use syncCli in check
This commit is contained in:
parent
e00e934140
commit
deacd5443a
6 changed files with 31 additions and 11 deletions
5
.changeset/cold-spoons-battle.md
Normal file
5
.changeset/cold-spoons-battle.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
'astro': patch
|
||||
---
|
||||
|
||||
Fix: run integration setup hooks during `astro sync`
|
|
@ -21,8 +21,8 @@ interface Result {
|
|||
export async function check(settings: AstroSettings, { logging }: { logging: LogOptions }) {
|
||||
console.log(bold('astro check'));
|
||||
|
||||
const { sync } = await import('../sync/index.js');
|
||||
const syncRet = await sync(settings, { logging, fs });
|
||||
const { syncCli } = await import('../../core/sync/index.js');
|
||||
const syncRet = await syncCli(settings, { logging, fs });
|
||||
// early exit on sync failure
|
||||
if (syncRet === 1) return syncRet;
|
||||
|
||||
|
|
|
@ -212,9 +212,9 @@ async function runCommand(cmd: string, flags: yargs.Arguments) {
|
|||
}
|
||||
|
||||
case 'sync': {
|
||||
const { sync } = await import('./sync/index.js');
|
||||
const { syncCli } = await import('../core/sync/index.js');
|
||||
|
||||
const ret = await sync(settings, { logging, fs });
|
||||
const ret = await syncCli(settings, { logging, fs });
|
||||
return process.exit(ret);
|
||||
}
|
||||
|
||||
|
|
|
@ -81,7 +81,7 @@ class AstroBuilder {
|
|||
);
|
||||
await runHookConfigDone({ settings: this.settings, logging });
|
||||
|
||||
const { sync } = await import('../../cli/sync/index.js');
|
||||
const { sync } = await import('../sync/index.js');
|
||||
const syncRet = await sync(this.settings, { logging, fs });
|
||||
if (syncRet !== 0) {
|
||||
return process.exit(syncRet);
|
||||
|
|
|
@ -5,16 +5,31 @@ import { createServer } from 'vite';
|
|||
import type { AstroSettings } from '../../@types/astro';
|
||||
import { createContentTypesGenerator } from '../../content/index.js';
|
||||
import { globalContentConfigObserver } from '../../content/utils.js';
|
||||
import { getTimeStat } from '../../core/build/util.js';
|
||||
import { createVite } from '../../core/create-vite.js';
|
||||
import { AstroError, AstroErrorData } from '../../core/errors/index.js';
|
||||
import { info, LogOptions } from '../../core/logger/core.js';
|
||||
import { getTimeStat } from '../build/util.js';
|
||||
import { createVite } from '../create-vite.js';
|
||||
import { runHookConfigSetup } from '../../integrations/index.js';
|
||||
import { AstroError, AstroErrorData } from '../errors/index.js';
|
||||
import { info, LogOptions } from '../logger/core.js';
|
||||
import { setUpEnvTs } from '../../vite-plugin-inject-env-ts/index.js';
|
||||
|
||||
type ProcessExit = 0 | 1;
|
||||
|
||||
export async function syncCli(
|
||||
settings: AstroSettings,
|
||||
{ logging, fs }: { logging: LogOptions; fs: typeof fsMod }
|
||||
): Promise<ProcessExit> {
|
||||
const resolvedSettings = await runHookConfigSetup({
|
||||
settings,
|
||||
logging,
|
||||
command: 'build',
|
||||
});
|
||||
return sync(resolvedSettings, { logging, fs });
|
||||
}
|
||||
|
||||
export async function sync(
|
||||
settings: AstroSettings,
|
||||
{ logging, fs }: { logging: LogOptions; fs: typeof fsMod }
|
||||
): Promise<0 | 1> {
|
||||
): Promise<ProcessExit> {
|
||||
const timerStart = performance.now();
|
||||
// Needed to load content config
|
||||
const tempViteServer = await createServer(
|
|
@ -5,7 +5,7 @@ import fs from 'fs';
|
|||
import os from 'os';
|
||||
import stripAnsi from 'strip-ansi';
|
||||
import { fileURLToPath } from 'url';
|
||||
import { sync } from '../dist/cli/sync/index.js';
|
||||
import { sync } from '../dist/core/sync/index.js';
|
||||
import build from '../dist/core/build/index.js';
|
||||
import { openConfig } from '../dist/core/config/config.js';
|
||||
import { createSettings } from '../dist/core/config/index.js';
|
||||
|
|
Loading…
Reference in a new issue