37 lines
1.2 KiB
TypeScript
37 lines
1.2 KiB
TypeScript
/**
|
||
* Configurable ways to encode a character yielding pretty or small results.
|
||
*
|
||
* @param {number} code
|
||
* @param {number} next
|
||
* @param {FormatSmartOptions} options
|
||
* @returns {string}
|
||
*/
|
||
export function formatSmart(
|
||
code: number,
|
||
next: number,
|
||
options: FormatSmartOptions
|
||
): string
|
||
export type FormatSmartOptions = {
|
||
/**
|
||
* Prefer named character references (`&`) where possible.
|
||
*/
|
||
useNamedReferences?: boolean | undefined
|
||
/**
|
||
* Prefer the shortest possible reference, if that results in less bytes.
|
||
* **Note**: `useNamedReferences` can be omitted when using `useShortestReferences`.
|
||
*/
|
||
useShortestReferences?: boolean | undefined
|
||
/**
|
||
* Whether to omit semicolons when possible.
|
||
* **Note**: This creates what HTML calls “parse errors” but is otherwise still valid HTML — don’t use this except when building a minifier.
|
||
* Omitting semicolons is possible for certain named and numeric references in some cases.
|
||
*/
|
||
omitOptionalSemicolons?: boolean | undefined
|
||
/**
|
||
* Create character references which don’t fail in attributes.
|
||
* **Note**: `attribute` only applies when operating dangerously with
|
||
* `omitOptionalSemicolons: true`.
|
||
*/
|
||
attribute?: boolean | undefined
|
||
}
|