/// <reference types="node" /> | |
import { Minimatch } from 'minimatch'; | |
export interface KnownProps { | |
end_of_line?: 'lf' | 'crlf' | 'unset'; | |
indent_style?: 'tab' | 'space' | 'unset'; | |
indent_size?: number | 'tab' | 'unset'; | |
insert_final_newline?: true | false | 'unset'; | |
tab_width?: number | 'unset'; | |
trim_trailing_whitespace?: true | false | 'unset'; | |
charset?: string | 'unset'; | |
} | |
interface UnknownMap { | |
[index: string]: unknown; | |
} | |
export type Props = KnownProps & UnknownMap; | |
export interface ECFile { | |
name: string; | |
contents?: Buffer; | |
} | |
type SectionGlob = Minimatch | null; | |
type GlobbedProps = [SectionName, Props, SectionGlob][]; | |
export interface ProcessedFileConfig { | |
root: boolean; | |
name: string; | |
config: GlobbedProps; | |
notfound?: true; | |
} | |
export interface Visited { | |
fileName: string; | |
glob: string; | |
} | |
export interface Cache { | |
get(path: string): ProcessedFileConfig | undefined; | |
set(path: string, config: ProcessedFileConfig): this; | |
} | |
export interface ParseOptions { | |
config?: string; | |
version?: string; | |
root?: string; | |
files?: Visited[]; | |
cache?: Cache; | |
} | |
export type SectionName = string | null; | |
export interface SectionBody { | |
[key: string]: string; | |
} | |
export type ParseStringResult = [SectionName, SectionBody][]; | |
/** | |
* Parse a buffer using the faster one-ini WASM approach into something | |
* relatively easy to deal with in JS. | |
* | |
* @param data UTF8-encoded bytes. | |
* @returns Parsed contents. Will be truncated if there was a parse error. | |
*/ | |
export declare function parseBuffer(data: Buffer): ParseStringResult; | |
/** | |
* Parses a string. If possible, you should always use ParseBuffer instead, | |
* since this function does a UTF16-to-UTF8 conversion first. | |
* | |
* @param data String to parse. | |
* @returns Parsed contents. Will be truncated if there was a parse error. | |
* @deprecated Use {@link ParseBuffer} instead. | |
*/ | |
export declare function parseString(data: string): ParseStringResult; | |
/** | |
* Low-level interface, which exists only for backward-compatibility. | |
* Deprecated. | |
* | |
* @param filepath The name of the target file, relative to process.cwd(). | |
* @param files A promise for a list of objects describing the files. | |
* @param options All options | |
* @returns The properties found for filepath | |
* @deprecated | |
*/ | |
export declare function parseFromFiles(filepath: string, files: Promise<ECFile[]>, options?: ParseOptions): Promise<Props>; | |
/** | |
* Low-level interface, which exists only for backward-compatibility. | |
* Deprecated. | |
* | |
* @param filepath The name of the target file, relative to process.cwd(). | |
* @param files A list of objects describing the files. | |
* @param options All options | |
* @returns The properties found for filepath | |
* @deprecated | |
*/ | |
export declare function parseFromFilesSync(filepath: string, files: ECFile[], options?: ParseOptions): Props; | |
/** | |
* Find all of the properties from matching sections in config files in the | |
* same directory or toward the root of the filesystem. | |
* | |
* @param filepath The target file name, relative to process.cwd(). | |
* @param options All options | |
* @returns Combined properties for the target file | |
*/ | |
export declare function parse(filepath: string, options?: ParseOptions): Promise<Props>; | |
/** | |
* Find all of the properties from matching sections in config files in the | |
* same directory or toward the root of the filesystem. Synchronous. | |
* | |
* @param filepath The target file name, relative to process.cwd(). | |
* @param options All options | |
* @returns Combined properties for the target file | |
*/ | |
export declare function parseSync(filepath: string, options?: ParseOptions): Props; | |
export {}; | |