diff --git a/src/browser.ts b/src/browser.ts index f6955fa..bb06dfd 100644 --- a/src/browser.ts +++ b/src/browser.ts @@ -2,7 +2,7 @@ import { setup } from './core.ts' import { humanize } from './utils.ts' import type { Debug, Debugger } from './types.ts' -export const colors: string[] = [ +const colors: string[] = [ '#0000CC', '#0000FF', '#0033CC', @@ -81,7 +81,7 @@ export const colors: string[] = [ '#FFCC33', ] -export function useColors(): boolean { +function useColors(): boolean { return true } @@ -213,3 +213,10 @@ createDebug.formatters.j = function (v) { export default createDebug export type * from './types.ts' + +// @ts-expect-error +createDebug.default = createDebug +// @ts-expect-error +createDebug.debug = createDebug + +export { createDebug as 'module.exports' } diff --git a/src/node.ts b/src/node.ts index 891a511..97184ce 100644 --- a/src/node.ts +++ b/src/node.ts @@ -14,7 +14,7 @@ export function log(...args: any[]): void { process.stderr.write(`${formatWithOptions(inspectOpts, ...args)}\n`) } -export const colors: number[] = +const colors: number[] = process.stderr.getColorDepth && process.stderr.getColorDepth() > 2 ? [ 20, 21, 26, 27, 32, 33, 38, 39, 40, 41, 42, 43, 44, 45, 56, 57, 62, 63, @@ -62,7 +62,7 @@ function load(): string { return process.env.DEBUG || '' } -function save(namespaces: string) { +function save(namespaces: string): void { if (namespaces) { process.env.DEBUG = namespaces } else { @@ -75,7 +75,7 @@ function save(namespaces: string) { /** * Is stdout a TTY? Colored output is enabled when `true`. */ -export function useColors(): boolean { +function useColors(): boolean { return 'colors' in inspectOpts ? Boolean(inspectOpts.colors) : isatty(process.stderr.fd) @@ -113,7 +113,7 @@ function getDate(): string { return `${new Date().toISOString()} ` } -function init(debug: Debugger) { +function init(debug: Debugger): void { debug.inspectOpts = Object.assign({}, inspectOpts) } @@ -150,3 +150,10 @@ createDebug.formatters.O = function (v) { export default createDebug export type * from './types.ts' + +// @ts-expect-error +createDebug.default = createDebug +// @ts-expect-error +createDebug.debug = createDebug + +export { createDebug as 'module.exports' } diff --git a/tests/conformance.test.ts b/tests/conformance.test.ts index cef66ed..e439a92 100644 --- a/tests/conformance.test.ts +++ b/tests/conformance.test.ts @@ -12,17 +12,23 @@ const removedAPIs = new Set([ 'load', // private API 'colors', // private API 'useColors', // private API + 'inspectOpts', // private API ]) describe('conformance', () => { test('require: same exports', () => { const debug = require('debug') - const obug = require('../dist/node') + const obugNode = require('../dist/node') const debugKeys = Object.keys(debug) .filter((key) => !removedAPIs.has(key)) .sort() - const obugKeys = Object.keys(obug).sort() + const obugKeys = Object.keys(obugNode) + .filter((k) => k !== 'inspectOpts') + .sort() expect(obugKeys).toEqual(debugKeys) + + const obugBrowser = require('../dist/browser') + expect(Object.keys(obugBrowser).sort()).toEqual(obugKeys) }) test('import: same exports', async () => { @@ -35,5 +41,8 @@ describe('conformance', () => { .filter((key) => key !== 'createDebug' && key !== 'module.exports') .sort() expect(obugKeys).toEqual(debugKeys) + + const obugBrowser = await import('../dist/browser') + expect(Object.keys(obugBrowser).sort()).toEqual(Object.keys(obug).sort()) }) })