adding types to the project by exx8 · Pull Request #726 · debug-js/debug · GitHub
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,5 +47,6 @@
"xo": "^0.23.0"
},
"main": "./src/index.js",
"browser": "./src/browser.js"
"browser": "./src/browser.js",
"types": "./src/index.d.ts"
}
49 changes: 49 additions & 0 deletions src/browser.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
export=browser
declare namespace browser
{
/**
* Currently only WebKit-based Web Inspectors, Firefox >= v31,
* and the Firebug extension (any Firefox version) are known
* to support "%c" CSS customizations.
*
* TODO: add a `localStorage` variable to explicitly enable/disable colors
*/
function useColors(): boolean;

/**
* Colorize log arguments if enabled.
*
* @api public
*/
function formatArgs(args: string[]): void;

/**
* Save `namespaces`.
*
* @param {String} namespaces
* @api private
*/
function save(namespaces: string): void;

/**
* Load `namespaces`.
*
* @return {String} returns the previously persisted debug modes
* @api private
*/
function load(): string;

/**
* Localstorage attempts to return the localstorage.
*
* This is necessary because safari throws
* when a user disables cookies/localstorage
* and you attempt to access it.
*
* @return {LocalStorage}
* @api private
*/
function localstorage(): Storage;

const formatters: { j: (str:string) => string };
}
45 changes: 45 additions & 0 deletions src/common.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
type DebugNamespace = {
(...args: string[]): void;
namespace: string;
enabled: boolean;
useColors: boolean;
color: number | string;
destroy: () => boolean;
extend: (namespace: string, delimiter: string) => DebugNamespace;
};

type DebugType = {
(namespace: string): DebugNamespace;
debug: DebugType;
default: DebugNamespace;
coerce: <T>(val: T) => T;
disable: () => string;
enable: (namespaces: string) => void;
enabled: (name: string) => boolean;
humanize: (timeInMs:number)=>string;
/**
* Active `debug` instances.
*/
instances: DebugNamespace[];
/**
* The currently active debug mode names, and names to skip.
*/
names: string[];
skips: string[];
/**
* Map of special "%n" handling functions, for the debug "format" argument.
*
* Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
*/
formatters: {};
selectColor: (namespace: string) => number;
};

/**
* This is the common logic for both the Node.js and web browser
* implementations of `debug()`.
*/

import node = require("node");
import browser = require("browser");
declare function setup(env:typeof node|typeof browser ): DebugType;
9 changes: 9 additions & 0 deletions src/index.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
/**
* Detect Electron renderer / nwjs process, which is node, but we should
* treat as a browser.
*/
import node = require("node");
import browser = require("browser");
type isBrowser=typeof window;
type index=isBrowser extends Object? typeof browser: typeof node;
export=index;
45 changes: 45 additions & 0 deletions src/node.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
/**
* Module dependencies.
*/
import TTY=require("tty");
import Util=require("util");

declare const tty: typeof TTY;
declare const util: typeof Util;
/**
* Is stdout a TTY? Colored output is enabled when `true`.
*/
declare function useColors(): boolean;
/**
* Adds ANSI color escape codes if enabled.
*
* @api public
*/
declare function formatArgs(args: any): void;
declare function getDate(): string;
/**
* Invokes `util.format()` with the specified arguments and writes to stderr.
*/
declare function log(...args: any[]): boolean;
/**
* Save `namespaces`.
*
* @param {String} namespaces
* @api private
*/
declare function save(namespaces: string): void;
/**
* Load `namespaces`.
*
* @return {String} returns the previously persisted debug modes
* @api private
*/
declare function load(): string;
/**
* Init logic for `debug` instances.
*
* Create a new `inspectOpts` object in case `useColors` is set
* differently for a particular `debug` instance.
*/
declare function init(debug: any): void;
declare const formatters: {o:()=>string,O:()=>string};
63 changes: 63 additions & 0 deletions tsconfig.json