smartshell/ts/smartshell.classes.shelllog.ts

39 lines
932 B
TypeScript
Raw Normal View History

import * as plugins from './smartshell.plugins';
/**
* a log handler for spawned logs
* making sure the process doesn't run out of memory
*/
export class ShellLog {
2019-05-28 08:43:54 +00:00
public logStore = Buffer.from('');
/**
* log data to console
2018-07-30 14:08:14 +00:00
* @param dataArg
*/
2019-05-28 08:43:54 +00:00
public writeToConsole(dataArg: string | Buffer): void {
// make sure we have the data as string
2018-12-13 15:50:32 +00:00
process.stdout.write(dataArg);
}
/**
* add data to Buffer for later consumption
* @param dataArg
*/
2019-05-28 08:43:54 +00:00
public addToBuffer(dataArg: string | Buffer): void {
// make sure we have the data as Buffer
const dataBuffer: Buffer = (() => {
if (!Buffer.isBuffer(dataArg)) {
return Buffer.from(dataArg);
}
return dataArg;
})();
2018-07-30 14:08:14 +00:00
this.logStore = Buffer.concat([this.logStore, dataBuffer]);
}
2019-05-28 08:43:54 +00:00
public logAndAdd(dataArg: string | Buffer): void {
this.writeToConsole(dataArg);
this.addToBuffer(dataArg);
}
2018-07-30 14:08:14 +00:00
}