-
-
Notifications
You must be signed in to change notification settings - Fork 75
/
Copy pathoptions.ts
105 lines (92 loc) · 3.43 KB
/
options.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
import type autoprefixer from 'autoprefixer';
import type { pluginsOptions } from './plugins/plugins-options';
export enum DirectionFlow {
TopToBottom = 'top-to-bottom',
BottomToTop = 'bottom-to-top',
RightToLeft = 'right-to-left',
LeftToRight = 'left-to-right',
}
export type pluginOptions = {
/**
* Determine which CSS features to polyfill,
* based upon their process in becoming web standards.
* default: 2
*/
stage?: number|false
/**
* Determine which CSS features to polyfill,
* based their implementation status.
* default: 0
*/
minimumVendorImplementations?: number
/**
* Enable any feature that would need an extra browser library to be loaded into the page for it to work.
* default: false
*/
enableClientSidePolyfills?: boolean
/**
* PostCSS Preset Env supports any standard browserslist configuration,
* which can be a `.browserslistrc` file,
* a `browserslist` key in `package.json`,
* or `browserslist` environment variables.
*
* The `env` option is used to select a specific browserslist environment in the event that you have more than one.
*/
env?: string;
/**
* PostCSS Preset Env supports any standard browserslist configuration,
* which can be a `.browserslistrc` file,
* a `browserslist` key in `package.json`,
* or `browserslist` environment variables.
*
* The `browsers` option should only be used when a standard browserslist configuration is not available.
* When the `browsers` option is used the `env` option is ignored.
*/
browsers?: string | Array<string> | null
/**
* Determine whether all plugins should receive a `preserve` option,
* which may preserve or remove the original and now polyfilled CSS.
* Each plugin has it's own default, some true, others false.
* default: _not set_
*/
preserve?: boolean
/**
* [Configure autoprefixer](https://github.com/postcss/autoprefixer#options)
*/
autoprefixer?: autoprefixer.Options
/**
* Enable or disable specific polyfills by ID.
* Passing `true` to a specific [feature ID](https://github.com/csstools/postcss-plugins/blob/main/plugin-packs/postcss-preset-env/FEATURES.md) will enable its polyfill,
* while passing `false` will disable it.
*
* Passing an object to a specific feature ID will both enable and configure it.
*/
features?: pluginsOptions
/**
* The `insertBefore` key allows you to insert other PostCSS plugins into the chain.
* This is only useful if you are also using sugary PostCSS plugins that must execute before certain polyfills.
* `insertBefore` supports chaining one or multiple plugins.
*/
insertBefore?: Record<string, unknown>
/**
* The `insertAfter` key allows you to insert other PostCSS plugins into the chain.
* This is only useful if you are also using sugary PostCSS plugins that must execute after certain polyfills.
* `insertAfter` supports chaining one or multiple plugins.
*/
insertAfter?: Record<string, unknown>
/**
* Enable debugging messages to stdout giving insights into which features have been enabled/disabled and why.
* default: false
*/
debug?: boolean
/**
* The `logical` object allows to configure all plugins related to logical document flow at once.
* It accepts the same options as each plugin: `inlineDirection` and `blockDirection`.
*/
logical?: {
/** Set the inline flow direction. default: left-to-right */
inlineDirection?: DirectionFlow
/** Set the block flow direction. default: top-to-bottom */
blockDirection?: DirectionFlow
}
}