Skip to content

Commit

Permalink
feat(core): add configResolved hook
Browse files Browse the repository at this point in the history
  • Loading branch information
antfu committed Apr 8, 2023
1 parent c4ebf70 commit 1529d6c
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 1 deletion.
8 changes: 7 additions & 1 deletion packages/core/src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ export function resolveConfig<Theme extends {} = {}>(
if (!separators.length)
separators = [':', '-']

return {
const resolved: ResolvedConfig<any> = {
mergeSelectors: true,
warn: true,
blocklist: [],
Expand All @@ -125,4 +125,10 @@ export function resolveConfig<Theme extends {} = {}>(
safelist: mergePresets('safelist'),
separators,
}

for (const p of sortedPresets)
p?.configResolved?.(resolved)
userConfig?.configResolved?.(resolved)

return resolved
}
8 changes: 8 additions & 0 deletions packages/core/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -401,6 +401,11 @@ export interface ConfigBase<Theme extends {} = {}> {
extractors?: Arrayable<AutoCompleteExtractor>
}

/**
* A function to mutate the config object.
*/
configResolved?: (config: ResolvedConfig<Theme>) => void

/**
* Expose internal details for debugging / inspecting
*
Expand Down Expand Up @@ -470,6 +475,9 @@ export interface AutoCompleteExtractor {

export interface Preset<Theme extends {} = {}> extends ConfigBase<Theme> {
name: string
/**
* Enforce the preset to be applied before or after other presets
*/
enforce?: 'pre' | 'post'
/**
* Preset options for other tools like IDE to consume
Expand Down

0 comments on commit 1529d6c

Please sign in to comment.