diff --git a/packages/gasket-engine/lib/engine.d.ts b/packages/gasket-engine/lib/engine.d.ts index c2d3b4ca8..29cf64ba2 100644 --- a/packages/gasket-engine/lib/engine.d.ts +++ b/packages/gasket-engine/lib/engine.d.ts @@ -93,16 +93,18 @@ declare module '@gasket/engine' { ? { [K in keyof T]?: PartialRecursive } | undefined : T | undefined - export type GasketConfigFile = Omit & { - root?: string, - env?: string, - + type Plugins = { plugins?: { presets?: Array; add?: Array; remove?: Array; - }, + }; + }; + + export type GasketConfigFile = Omit & Plugins & { + root?: string, + env?: string, - environments?: Record> + environments?: Record> } } diff --git a/packages/gasket-typescript-tests/test/engine.spec.ts b/packages/gasket-typescript-tests/test/engine.spec.ts index df188129d..a85bd4bc7 100644 --- a/packages/gasket-typescript-tests/test/engine.spec.ts +++ b/packages/gasket-typescript-tests/test/engine.spec.ts @@ -1,4 +1,5 @@ -import Gasket, { MaybeAsync, Plugin } from '@gasket/engine'; +import Gasket from '@gasket/engine'; +import type { GasketConfigFile, MaybeAsync, Plugin } from '@gasket/engine'; declare module '@gasket/engine' { interface HookExecTypes { @@ -89,4 +90,8 @@ describe('@gasket/engine', () => { } }); }); + + it('allows environments to contain plugins', () => { + const config: GasketConfigFile = { environments: { dev: { plugins: { add: ['plugin-name'] } } } }; + }); });