From ccc9f191d98bc38b997b68b2fa65ff10fae254fa Mon Sep 17 00:00:00 2001 From: Wessel Tip Date: Fri, 16 Aug 2019 17:45:31 +0200 Subject: [PATCH] Still gotta fix typings, temporary fix --- index.d.ts | 67 ++++++++++-------------------------------- lib/pikmin/instance.js | 12 ++++---- 2 files changed, 22 insertions(+), 57 deletions(-) diff --git a/index.d.ts b/index.d.ts index 74de387..ca430f9 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1,66 +1,39 @@ import { WriteStream } from "fs"; -declare namespace Pikmin -{ - export const loggers: Pikmin.Collection; - export const version: string; - export const colors: Pikmin.Colors; +declare namespace Pikmin { + export const loggers: Pikmin.Collection; + export const version: string; + export const colors: Pikmin.Colors; - export function bind(i: Pikmin.instance, a?: Console, b?: any): void; - export function unbind(i: Pikmin.instance): void; + export function bind(i: Pikmin.instance, a?: Console, b?: any): void; + export function unbind(i: Pikmin.instance): void; - export class instance { - constructor(options?: Pikmin.InstanceOptions); - - public log: { - [x: string]: any; - - __bound__: Console; - } - - /** The name of the instance */ + export class instance { + constructor(options?: Pikmin.InstanceOptions); public name: string; - - /** The base format */ public baseFormat: string; - - /** An array of transports */ public transports: Pikmin.Transport[]; - /** - * Adds a transport - * @param transport The transport to add - * @param options Any options to bind - */ + public [x: string]: function(msg, ...args): void; public addTransport(transport: Pikmin.Transport, options?: { autogen: boolean }): void; } - export class Collection extends Map - { - public filter(i: (a: T) => boolean): T[]; - public map(i: (a: T) => any): T[]; + export class Collection extends Map { + public filter(i: (a: T) => boolean): T[]; + public map(i: (a: T) => any): T[]; } - /** - * The console transport that logs anything to the terminal - */ - export class ConsoleTransport implements Transport - { + export class ConsoleTransport implements Transport { constructor(options: Pikmin.InstanceOptions & { process: NodeJS.Process }); - /** The type of the transport, implemented by the Transport interface */ public type: 'CONSOLE' | 'WEBHOOK' | 'FILE'; - - /** The name of the transport, implemented by the Transport interface */ public name: string; - - /** The parent of the transport, implemented by the Transport interface; resolves by `undefined` */ public parent: any | undefined; - /** The defaults of the transport, implemented by the Transport interface */ - public defaults: { inspect: boolean } + public defaults: { + inspect: boolean + } - /** The NodeJS.Process tty, only to use Stdout#write */ public process: NodeJS.Process; append(options: { inspect: boolean }, data: string): void; destroy(): this; @@ -70,19 +43,11 @@ declare namespace Pikmin { constructor(options: { file: string, flags?: '-a', format: string }); - /** The type of the transport, implemented by the Transport interface */ public type: 'CONSOLE' | 'WEBHOOK' | 'FILE'; - - /** The name of the transport, implemented by the Transport interface */ public name: string; - - /** The parent of the transport, implemented by the Transport interface; resolves by `undefined` */ public parent: any | undefined; - - /** The defaults of the transport, implemented by the Transport interface */ public defaults: { inspect: boolean } - /** The write stream */ public stream: WriteStream; append(options: { inspect: boolean }, data: string): void; destroy(): this; diff --git a/lib/pikmin/instance.js b/lib/pikmin/instance.js index e9129b1..6e7220b 100644 --- a/lib/pikmin/instance.js +++ b/lib/pikmin/instance.js @@ -6,7 +6,7 @@ const PikminError = require('./PikminError'); module.exports = class PikminInstance { /** * Create a pikmin instance - * + * * @param {object} options The options for the instance * @param {string} [options.name='main'] The logger's name * @param {string} [options.format='[%h:%m:%s] %l ->'] The logger's format @@ -42,7 +42,7 @@ module.exports = class PikminInstance { if (transport.name) { this[transport.name] = (msg, options) => this._print(msg, Object.assign(transport.defaults, options), transport.name, transport.format || this.baseFormat); this.__log__[transport.name] = (msg, options) => this._print(msg, Object.assign(transport.defaults, options), transport.name, transport.format || this.baseFormat); - } else transport.permanent = true; + } else transport.permanent = true; } catch(ex) { throw new PikminError(`Failed to write to transporter:\r\n${ex}`); } @@ -59,19 +59,19 @@ module.exports = class PikminInstance { if (type(transport) !== 2) throw new TypeError(`"transports" must be type of object but received type ${typeof transport}`); if (transport.name && this[transport.name]) throw new PikminError(`A transporter\'s name inflicted with an already existing declaration`); - + try { if (transport.type === 'FILE' && options.autogen) transport.append(`>\r\n`); - + this.transports.push(transport); if (transport.name) { this[transport.name] = (msg, opt) => this._print(msg, Object.assign(transport.defaults, opt), transport.name, transport.format || this.baseFormat,); this.__log__[transport.name] = (msg, opt) => this._print(msg, Object.assign(transport.defaults, opt), transport.name, transport.format || this.baseFormat); - } else transport.permanent = true; + } else transport.permanent = true; } catch(ex) { throw new PikminError(`Failed to write to transporter:\r\n${ex}`); } - + Pikmin.loggers.set(this.name, this.__log__); }