@roots/sage
Version:
@roots/sage preset for @roots/bud
104 lines (103 loc) • 2.96 kB
TypeScript
/**
* @roots/sage
*
* @see https://github.com/roots/bud
* @see https://github.com/roots/sage
*/
import type { Item, Loader, Rule } from '@roots/bud-build';
import type { ExtensionApi } from '@roots/bud-framework/extension';
import type BudPresetWordPress from '@roots/bud-preset-wordpress/extension';
import type Acorn from '@roots/sage/acorn';
import type AcornV2PublicPath from '@roots/sage/acorn-v2-public-path';
import type BladeLoader from '@roots/sage/blade-loader';
import Sage from '@roots/sage/sage';
interface SagePublicAPI extends ExtensionApi<{
acorn: Acorn;
blade: BladeLoader;
processBladeTemplates: Sage[`processBladeTemplates`];
setAcornVersion: Sage[`setAcornVersion`];
}, Sage> {
/**
* ## Configure Acorn concerns
*
* @see {@link Acorn}
* @see {@link https://bud.js.org/extensions/sage#acorn-compatibility}
*/
acorn: Acorn;
/**
* ## Configure handling of Blade template modules
*
* @see {@link BladeLoader}
* @see {@link https://bud.js.org/extensions/sage/blade-assets}
*/
blade: BladeLoader;
/**
* ## Enable or disable Blade template processing
*
* @remarks
* This method is a convenience wrapper for the {@link BladeLoader.enable} method.
*
* @example
* ```js
* bud.sage.processBladeTemplates()
* ```
*
* @example
* ```js
* bud.sage.processBladeTemplates(false)
* ```
*
* @example
* ```js
* bud.when(bud.isProduction, bud.sage.processBladeTemplates)
* ```
*
* @see {@link https://bud.js.org/extensions/sage/blade-assets}
*/
processBladeTemplates: Sage[`processBladeTemplates`];
/**
* This function should be removed from your configuration file.
* It doesn't do anything and will be removed in a future release.
*
* @deprecated
*/
setAcornVersion: Sage[`setAcornVersion`];
}
declare module '@roots/bud-framework' {
interface Bud {
/**
* ## Sage configuration
*
* @see {@link https://bud.js.org/extensions/sage}
* @see {@link https://docs.roots.io/sage/10.x/compiling-assets}
*/
sage: SagePublicAPI;
}
interface Modules {
'@roots/bud-preset-wordpress': BudPresetWordPress;
'@roots/sage': Sage;
'@roots/sage/acorn': Acorn;
'@roots/sage/acorn-v2-public-path'?: AcornV2PublicPath;
'@roots/sage/blade-loader': BladeLoader;
}
interface Locations {
'@fonts': string;
'@images': string;
'@public': string;
'@resources': string;
'@scripts': string;
'@styles': string;
'@views': string;
}
interface Loaders {
'@roots/blade-loader': Loader;
}
interface Items {
'@roots/blade-loader': Item;
}
interface Rules {
blade: Rule;
}
}
export { Sage as default };
export type { SagePublicAPI };