yini-parser
Version:
Node.js parser for YINI — a clean, structured INI alternative with types, simple section nesting, comments, and strict mode.
60 lines (59 loc) • 1.82 kB
TypeScript
export type TPersistThreshold = '0-Ignore-Errors' | '1-Abort-on-Errors' | '2-Abort-Even-on-Warnings';
export type TIssueType = 'Fatal-Error' | 'Internal-Error' | 'Syntax-Error' | 'Syntax-Warning' | 'Notice' | 'Info';
export type TJSObject = any;
export type TBailSensitivityLevel = 0 | 1 | 2;
export interface IParseMainOptions {
isStrict: boolean;
bailSensitivityLevel: TBailSensitivityLevel;
isIncludeMeta: boolean;
isWithDiagnostics: boolean;
isWithTiming: boolean;
}
export interface IParseMetaData {
strictMode: boolean;
hasTerminal: boolean;
sections: null | number;
members: null | number;
keysParsed: null | number;
sectionChains: null | number;
diagnostics?: {
bailSensitivityLevel: TBailSensitivityLevel;
errors: null | number;
warnings: null | number;
infoAndNotices: null | number;
envs: {
NODE_ENV: undefined | string;
APP_ENV: undefined | string;
libNodeEnv: undefined | string;
libAppEnv: undefined | string;
};
libFlags: {
isDev: boolean;
isDebug: boolean;
};
};
timing?: {
totalMs: null | number;
phase1Ms: null | number;
phase2Ms: null | number;
phase3Ms: null | number;
};
}
export type TSyntaxTreeContainer = {
_syntaxTree: TSyntaxTree;
_hasTerminal: boolean;
_meta_numOfSections: number;
_meta_numOfMembers: number;
_meta_numOfChains: number;
};
export type TSyntaxTree = IChainContainer[];
export type TSectionHeaderType = undefined | 'Classic-Header-Marker' | 'Numeric-Header-Marker';
export interface IChainContainer {
originLevel: number;
chain: any;
}
export interface ISectionResult {
level: number;
name: string;
members: any;
}