Still gotta fix typings, temporary fix

This commit is contained in:
Wessel Tip
2019-08-16 17:45:31 +02:00
parent 8edece3637
commit ccc9f191d9
2 changed files with 22 additions and 57 deletions

67
index.d.ts vendored
View File

@@ -1,66 +1,39 @@
import { WriteStream } from "fs";
declare namespace Pikmin
{
export const loggers: Pikmin.Collection<Pikmin.instance>;
export const version: string;
export const colors: Pikmin.Colors;
declare namespace Pikmin {
export const loggers: Pikmin.Collection<Pikmin.instance>;
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<T> extends Map<string | number, T>
{
public filter(i: (a: T) => boolean): T[];
public map(i: (a: T) => any): T[];
export class Collection<T> extends Map<string | number, T> {
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;

View File

@@ -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(`<PIKMIN_AUTOGEN_LINE<${now.days}/${now.months}/${now.years} ${now.hours}:${now.minutes}:${now.seconds}>>\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__);
}