UNPKG

obj-console

Version:

Shows JS objects in terminal with custom format in VSCode colors

77 lines (70 loc) 2.07 kB
// INTERFACE ---------------------------- export interface FormatOptions { omitBrackets?: boolean; /** Ommit commas at the end of lines even in arrays */ omitEolCommas?: boolean; /** Quotation marks to surround strings */ quote?: "" | "'" | "\""; /** Quotation marks to surround keys of objects */ keyQuote?: "" | "'" | "\""; /** All elemetns with index higher then `maxArrayLength` * will be ommited, text `...overall {n} elements` wil be added at the end */ maxArrayLength?: number; /** Strings will be cutted to `maxStringLength` * text `... +{n}chrs` wil be added at the end */ maxStringLength?: number; /** Maximum depth to scan object */ maxDepth?: number; /** Spaces or other symbols for left padding */ padding?: string; /** Works on 1-st level of objects */ align?: boolean; /** If depth is more then `unfoldDepth`, * then objects will be printed in one line */ unfoldDepth?: number; } // DEFAULTS ---------------------------- export const defaults: Required<FormatOptions> = { omitBrackets: false, omitEolCommas: false, quote: "'", keyQuote: "", maxArrayLength: 0, maxStringLength: 0, maxDepth: 20, padding: " ", align: false, unfoldDepth: 2, }; // PREDEFINED -------------------------- /** whole object, no more 20 steps deep, linebreaks only at first level of deep */ export const COMPACT: FormatOptions = { unfoldDepth: 1, align: true, } /** Short representation of arrays and objects - * no more 5 array elements, limited strings , etc. */ export const BRIEF: FormatOptions = { unfoldDepth: 1, maxArrayLength: 5, maxStringLength: 20, maxDepth: 3, align: true, } /** as JSON with double qoutes */ export const AS_JSON: FormatOptions = { quote: `"`, keyQuote: `"`, } /** show object in one line */ export const ONE_LINE: FormatOptions = { unfoldDepth: 0, } /** show object as two columns - keys and values without brackets */ export const COLUMNS: FormatOptions = { unfoldDepth: 1, omitBrackets: true, omitEolCommas: true, quote: "", align: true, }