123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- // TypeScript Version: 3.0
-
- import * as Unist from 'unist'
- import * as vfileMessage from 'vfile-message'
-
- declare namespace vfile {
- /**
- * Encodings supported by the buffer class
- *
- * @remarks
- * This is a copy of the typing from Node, copied to prevent Node globals from being needed.
- * Copied from https://github.com/DefinitelyTyped/DefinitelyTyped/blob/a2bc1d868d81733a8969236655fa600bd3651a7b/types/node/globals.d.ts#L174
- */
- type BufferEncoding =
- | 'ascii'
- | 'utf8'
- | 'utf-8'
- | 'utf16le'
- | 'ucs2'
- | 'ucs-2'
- | 'base64'
- | 'latin1'
- | 'binary'
- | 'hex'
-
- /**
- * VFileContents can either be text, or a Buffer like structure
- * @remarks
- * This does not directly use type `Buffer, because it can also be used in a browser context.
- * Instead this leverages `Uint8Array` which is the base type for `Buffer`, and a native JavaScript construct.
- */
- type VFileContents = string | Uint8Array
- type VFileCompatible = VFile | VFileOptions | VFileContents
- interface Settings {
- [key: string]: unknown
- }
- type VFileReporter<T = Settings> = (files: VFile[], options: T) => string
-
- interface VFileOptions {
- contents?: VFileContents
- path?: string
- basename?: string
- stem?: string
- extname?: string
- dirname?: string
- cwd?: string
- data?: any
- [key: string]: any
- }
-
- interface VFile {
- /**
- * Create a new virtual file. If `options` is `string` or `Buffer`, treats it as `{contents: options}`.
- * If `options` is a `VFile`, returns it. All other options are set on the newly created `vfile`.
- *
- * Path related properties are set in the following order (least specific to most specific): `history`, `path`, `basename`, `stem`, `extname`, `dirname`.
- *
- * It’s not possible to set either `dirname` or `extname` without setting either `history`, `path`, `basename`, or `stem` as well.
- *
- * @param options If `options` is `string` or `Buffer`, treats it as `{contents: options}`. If `options` is a `VFile`, returns it. All other options are set on the newly created `vfile`.
- */
- <F extends VFile>(input?: VFileContents | F | VFileOptions): F
- /**
- * List of file-paths the file moved between.
- */
- history: string[]
- /**
- * Place to store custom information.
- * It's OK to store custom data directly on the `vfile`, moving it to `data` gives a little more privacy.
- */
- data: unknown
- /**
- * List of messages associated with the file.
- */
- messages: vfileMessage.VFileMessage[]
- /**
- * Raw value.
- */
- contents: VFileContents
- /**
- * Path of `vfile`.
- * Cannot be nullified.
- */
- path?: string
- /**
- * Path to parent directory of `vfile`.
- * Cannot be set if there's no `path` yet.
- */
- dirname?: string
- /**
- * Current name (including extension) of `vfile`.
- * Cannot contain path separators.
- * Cannot be nullified either (use `file.path = file.dirname` instead).
- */
- basename?: string
- /**
- * Name (without extension) of `vfile`.
- * Cannot be nullified, and cannot contain path separators.
- */
- stem?: string
- /**
- * Extension (with dot) of `vfile`.
- * Cannot be set if there's no `path` yet and cannot contain path separators.
- */
- extname?: string
- /**
- * Base of `path`.
- * Defaults to `process.cwd()`.
- */
- cwd: string
- /**
- * Convert contents of `vfile` to string.
- * @param encoding If `contents` is a buffer, `encoding` is used to stringify buffers (default: `'utf8'`).
- */
- toString: (encoding?: BufferEncoding) => string
- /**
- * Associates a message with the file for `reason` at `position`.
- * When an error is passed in as `reason`, copies the stack.
- * Each message has a `fatal` property which by default is set to `false` (ie. `warning`).
- * @param reason Reason for message. Uses the stack and message of the error if given.
- * @param position Place at which the message occurred in `vfile`.
- * @param ruleId Category of message.
- */
- message: (
- reason: string,
- position?: Unist.Point | Unist.Position | Unist.Node,
- ruleId?: string
- ) => vfileMessage.VFileMessage
- /**
- * Associates a fatal message with the file, then immediately throws it.
- * Note: fatal errors mean a file is no longer processable.
- * Calls `message()` internally.
- * @param reason Reason for message. Uses the stack and message of the error if given.
- * @param position Place at which the message occurred in `vfile`.
- * @param ruleId Category of message.
- */
- fail: (
- reason: string,
- position?: Unist.Point | Unist.Position | Unist.Node,
- ruleId?: string
- ) => never
- /**
- * Associates an informational message with the file, where `fatal` is set to `null`.
- * Calls `message()` internally.
- * @param reason Reason for message. Uses the stack and message of the error if given.
- * @param position Place at which the message occurred in `vfile`.
- * @param ruleId Category of message.
- */
- info: (
- reason: string,
- position?: Unist.Point | Unist.Position | Unist.Node,
- ruleId?: string
- ) => vfileMessage.VFileMessage
-
- [key: string]: unknown
- }
- }
-
- declare const vfile: vfile.VFile
-
- export = vfile
|