123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- /// <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 {};
|