Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 5x 5x 5x | import { jsonParser } from "./json";
import { ymlParser } from "./yml";
export interface CustomParser {
extension: string;
parse: <T>(content: string, filePath?: string) => T;
stringify: (content: any, filePath?: string) => string;
}
/**
* If we want to add more built-in parsers,
* add them to this object with new file extension as the key,
* and a function that takes file content as string and returns parsed object as the value.
*/
export const parsers: { [key: string]: CustomParser } = {
yml: ymlParser,
json: jsonParser,
};
export type BuiltInParser = keyof typeof parsers; // keys of parsers object
export type Parser = BuiltInParser | CustomParser;
|