@roots/sage
Version:
@roots/sage preset for @roots/bud
124 lines (109 loc) • 2.83 kB
text/typescript
// Copyright © Roots Software LLC
// Licensed under the MIT license.
/**
* @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}