cli-testing-library
Version:
Simple and complete CLI testing utilities that encourage good testing practices.
1 lines • 1.85 kB
Source Map (JSON)
{"version":3,"file":"pretty-cli.cjs","sources":["../../src/pretty-cli.ts"],"sourcesContent":["import sliceAnsi from \"slice-ansi\";\nimport { getUserCodeFrame } from \"./get-user-code-frame\";\nimport type { TestInstance } from \"./types\";\n\nfunction prettyCLI(testInstance: TestInstance, maxLength?: number) {\n if (typeof maxLength !== \"number\") {\n maxLength =\n (typeof process !== \"undefined\" &&\n Number(process.env.DEBUG_PRINT_LIMIT)) ||\n 7000;\n }\n\n if (maxLength === 0) {\n return \"\";\n }\n\n if (!(\"stdoutArr\" in testInstance && \"stderrArr\" in testInstance)) {\n throw new TypeError(`Expected an instance but got ${testInstance}`);\n }\n\n const outStr = testInstance.getStdallStr();\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n return maxLength !== undefined && outStr.length > maxLength\n ? sliceAnsi(outStr, 0, maxLength)\n : outStr;\n}\n\nconst logCLI = (...args: Parameters<typeof prettyCLI>) => {\n const userCodeFrame = getUserCodeFrame();\n if (userCodeFrame) {\n process.stdout.write(`${prettyCLI(...args)}\\n\\n${userCodeFrame}`);\n } else {\n process.stdout.write(prettyCLI(...args));\n }\n};\n\nexport { prettyCLI, logCLI };\n"],"names":["getUserCodeFrame"],"mappings":";;;;AAIA,SAAS,UAAU,cAA4B,WAAoB;AAC7D,MAAA,OAAO,cAAc,UAAU;AACjC,gBACG,OAAO,YAAY,eAClB,OAAO,QAAQ,IAAI,iBAAiB,KACtC;AAAA,EAAA;AAGJ,MAAI,cAAc,GAAG;AACZ,WAAA;AAAA,EAAA;AAGT,MAAI,EAAE,eAAe,gBAAgB,eAAe,eAAe;AACjE,UAAM,IAAI,UAAU,gCAAgC,YAAY,EAAE;AAAA,EAAA;AAG9D,QAAA,SAAS,aAAa,aAAa;AAGlC,SAAA,cAAc,UAAa,OAAO,SAAS,YAC9C,UAAU,QAAQ,GAAG,SAAS,IAC9B;AACN;AAEM,MAAA,SAAS,IAAI,SAAuC;AACxD,QAAM,gBAAgBA,iBAAAA,iBAAiB;AACvC,MAAI,eAAe;AACjB,YAAQ,OAAO,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;AAAA;AAAA,EAAO,aAAa,EAAE;AAAA,EAAA,OAC3D;AACL,YAAQ,OAAO,MAAM,UAAU,GAAG,IAAI,CAAC;AAAA,EAAA;AAE3C;;;"}