Type Definitions
uglier ships with TypeScript definitions generated from JSDoc. These provide full autocomplete and type checking in your editor.
Core types
UglierOptions
type UglierOptions = {
with?: Array<ConfigName>
without?: Array<ConfigName>
options?: {
"lints-js"?: LintsJsOptions
"lints-jsdoc"?: LintsJsdocOptions
languageOptions?: LanguageOptionsOptions
node?: EnvironmentOptions
web?: EnvironmentOptions
react?: EnvironmentOptions
tauri?: EnvironmentOptions
"vscode-extension"?: EnvironmentOptions
"cjs-override"?: ModuleOverrideOptions
"mjs-override"?: ModuleOverrideOptions
}
}
ConfigName
type ConfigName =
| "lints-js"
| "lints-jsdoc"
| "languageOptions"
| "node"
| "web"
| "react"
| "tauri"
| "vscode-extension"
| "cjs-override"
| "mjs-override"
LintsJsOptions
type LintsJsOptions = {
files?: Array<string>
ignores?: Array<string>
indent?: number
maxLen?: number
overrides?: Record<string, any>
}
LintsJsdocOptions
type LintsJsdocOptions = {
files?: Array<string>
ignores?: Array<string>
overrides?: Record<string, any>
}
EnvironmentOptions
type EnvironmentOptions = {
files?: Array<string>
ignores?: Array<string>
additionalGlobals?: Record<string, "readonly" | "writable">
}
LanguageOptionsOptions
type LanguageOptionsOptions = {
ecmaVersion?: number | string
sourceType?: "module" | "commonjs"
additionalGlobals?: Record<string, "readonly" | "writable">
}
ModuleOverrideOptions
type ModuleOverrideOptions = {
files?: Array<string>
ignores?: Array<string>
}
Using types in your config
The TypeScript definitions are automatically resolved when you import from @gesslar/uglier:
/** @type {import("@gesslar/uglier").UglierOptions} */
const options = {
with: ["lints-js", "node"],
}