66 lines
2.0 KiB
TypeScript
66 lines
2.0 KiB
TypeScript
// based on @types/postcss-load-config@2.0.1
|
|
// Type definitions for postcss-load-config 2.1
|
|
import Processor from 'postcss/lib/processor'
|
|
import { Plugin, ProcessOptions, Transformer } from 'postcss'
|
|
import { Options as ConfigOptions } from 'lilconfig'
|
|
|
|
declare function postcssrc(
|
|
ctx?: postcssrc.ConfigContext,
|
|
path?: string,
|
|
options?: ConfigOptions
|
|
): Promise<postcssrc.Result>
|
|
|
|
declare namespace postcssrc {
|
|
// In the ConfigContext, these three options can be instances of the
|
|
// appropriate class, or strings. If they are strings, postcss-load-config will
|
|
// require() them and pass the instances along.
|
|
export interface ProcessOptionsPreload {
|
|
parser?: string | ProcessOptions['parser']
|
|
stringifier?: string | ProcessOptions['stringifier']
|
|
syntax?: string | ProcessOptions['syntax']
|
|
}
|
|
|
|
// The remaining ProcessOptions, sans the three above.
|
|
export type RemainingProcessOptions = Pick<
|
|
ProcessOptions,
|
|
Exclude<keyof ProcessOptions, keyof ProcessOptionsPreload>
|
|
>
|
|
|
|
// Additional context options that postcss-load-config understands.
|
|
export interface Context {
|
|
cwd?: string
|
|
env?: string
|
|
}
|
|
|
|
// The full shape of the ConfigContext.
|
|
export type ConfigContext = Context &
|
|
ProcessOptionsPreload &
|
|
RemainingProcessOptions
|
|
|
|
// Result of postcssrc is a Promise containing the filename plus the options
|
|
// and plugins that are ready to pass on to postcss.
|
|
export type ResultPlugin = Plugin | Transformer | Processor
|
|
|
|
export interface Result {
|
|
file: string
|
|
options: ProcessOptions
|
|
plugins: ResultPlugin[]
|
|
}
|
|
|
|
export type ConfigPlugin = Transformer | Plugin | Processor
|
|
|
|
export interface Config {
|
|
parser?: string | ProcessOptions['parser'] | false
|
|
stringifier?: string | ProcessOptions['stringifier'] | false
|
|
syntax?: string | ProcessOptions['syntax'] | false
|
|
map?: string | false
|
|
from?: string
|
|
to?: string
|
|
plugins?: Array<ConfigPlugin | false> | Record<string, object | false>
|
|
}
|
|
|
|
export type ConfigFn = (ctx: ConfigContext) => Config | Promise<Config>
|
|
}
|
|
|
|
export = postcssrc
|