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 }) {
|
export async function check(settings: AstroSettings, { logging }: { logging: LogOptions }) {
|
||||||
console.log(bold('astro check'));
|
console.log(bold('astro check'));
|
||||||
|
|
||||||
const { sync } = await import('../sync/index.js');
|
const { syncCli } = await import('../../core/sync/index.js');
|
||||||
const syncRet = await sync(settings, { logging, fs });
|
const syncRet = await syncCli(settings, { logging, fs });
|
||||||
// early exit on sync failure
|
// early exit on sync failure
|
||||||
if (syncRet === 1) return syncRet;
|
if (syncRet === 1) return syncRet;
|
||||||
|
|
||||||
|
|
|
@ -212,9 +212,9 @@ async function runCommand(cmd: string, flags: yargs.Arguments) {
|
||||||
}
|
}
|
||||||
|
|
||||||
case 'sync': {
|
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);
|
return process.exit(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -81,7 +81,7 @@ class AstroBuilder {
|
||||||
);
|
);
|
||||||
await runHookConfigDone({ settings: this.settings, logging });
|
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 });
|
const syncRet = await sync(this.settings, { logging, fs });
|
||||||
if (syncRet !== 0) {
|
if (syncRet !== 0) {
|
||||||
return process.exit(syncRet);
|
return process.exit(syncRet);
|
||||||
|
|
|
@ -5,16 +5,31 @@ import { createServer } from 'vite';
|
||||||
import type { AstroSettings } from '../../@types/astro';
|
import type { AstroSettings } from '../../@types/astro';
|
||||||
import { createContentTypesGenerator } from '../../content/index.js';
|
import { createContentTypesGenerator } from '../../content/index.js';
|
||||||
import { globalContentConfigObserver } from '../../content/utils.js';
|
import { globalContentConfigObserver } from '../../content/utils.js';
|
||||||
import { getTimeStat } from '../../core/build/util.js';
|
import { getTimeStat } from '../build/util.js';
|
||||||
import { createVite } from '../../core/create-vite.js';
|
import { createVite } from '../create-vite.js';
|
||||||
import { AstroError, AstroErrorData } from '../../core/errors/index.js';
|
import { runHookConfigSetup } from '../../integrations/index.js';
|
||||||
import { info, LogOptions } from '../../core/logger/core.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';
|
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(
|
export async function sync(
|
||||||
settings: AstroSettings,
|
settings: AstroSettings,
|
||||||
{ logging, fs }: { logging: LogOptions; fs: typeof fsMod }
|
{ logging, fs }: { logging: LogOptions; fs: typeof fsMod }
|
||||||
): Promise<0 | 1> {
|
): Promise<ProcessExit> {
|
||||||
const timerStart = performance.now();
|
const timerStart = performance.now();
|
||||||
// Needed to load content config
|
// Needed to load content config
|
||||||
const tempViteServer = await createServer(
|
const tempViteServer = await createServer(
|
|
@ -5,7 +5,7 @@ import fs from 'fs';
|
||||||
import os from 'os';
|
import os from 'os';
|
||||||
import stripAnsi from 'strip-ansi';
|
import stripAnsi from 'strip-ansi';
|
||||||
import { fileURLToPath } from 'url';
|
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 build from '../dist/core/build/index.js';
|
||||||
import { openConfig } from '../dist/core/config/config.js';
|
import { openConfig } from '../dist/core/config/config.js';
|
||||||
import { createSettings } from '../dist/core/config/index.js';
|
import { createSettings } from '../dist/core/config/index.js';
|
||||||
|
|
Loading…
Reference in a new issue