Use namespace with 'export =' to model self-referential chaining API in 'temp'.

This commit is contained in:
Daniel Rosenwasser
2018-04-21 14:26:41 -07:00
parent 060127cc73
commit cf0ccd4511
+37 -34
View File
@@ -5,41 +5,44 @@
/// <reference types="node" />
import * as temp from ".";
import * as fs from "fs";
export interface OpenFile {
path: string;
fd: number;
declare namespace temp {
export interface OpenFile {
path: string;
fd: number;
}
export interface Stats {
files: number;
dirs: number;
}
export interface AffixOptions {
prefix?: string;
suffix?: string;
dir?: string;
}
export let dir: string;
export function track(value?: boolean): typeof temp;
export function mkdir(affixes?: string | AffixOptions, callback?: (err: any, dirPath: string) => void): void;
export function mkdirSync(affixes?: string | AffixOptions): string;
export function open(affixes?: string | AffixOptions, callback?: (err: any, result: OpenFile) => void): void;
export function openSync(affixes?: string | AffixOptions): OpenFile;
export function path(affixes?: string | AffixOptions, defaultPrefix?: string): string;
export function cleanup(callback?: (result: boolean | Stats) => void): void;
export function cleanupSync(): boolean | Stats;
export function createWriteStream(affixes?: string | AffixOptions): fs.WriteStream;
}
export interface Stats {
files: number;
dirs: number;
}
export interface AffixOptions {
prefix?: string;
suffix?: string;
dir?: string;
}
export let dir: string;
export function track(value?: boolean): typeof temp;
export function mkdir(affixes?: string | AffixOptions, callback?: (err: any, dirPath: string) => void): void;
export function mkdirSync(affixes?: string | AffixOptions): string;
export function open(affixes?: string | AffixOptions, callback?: (err: any, result: OpenFile) => void): void;
export function openSync(affixes?: string | AffixOptions): OpenFile;
export function path(affixes?: string | AffixOptions, defaultPrefix?: string): string;
export function cleanup(callback?: (result: boolean | Stats) => void): void;
export function cleanupSync(): boolean | Stats;
export function createWriteStream(affixes?: string | AffixOptions): fs.WriteStream;
export = temp;