@sjts/lib-log 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.eslintrc.cjs ADDED
@@ -0,0 +1,9 @@
1
+ module.exports = {
2
+ extends: [require.resolve('@sjts/lib-dev/eslintrc.base')],
3
+ ignorePatterns: ['*.d.ts', 'admin/*', '*.test.ts', '*/node_modules/*', '*.js'],
4
+ parserOptions: {
5
+ project: 'tsconfig.json',
6
+ tsconfigRootDir: __dirname,
7
+ createDefaultProgram: true,
8
+ },
9
+ }
package/LICENCE ADDED
@@ -0,0 +1,5 @@
1
+
2
+ Copyright (C) Mr Stephen James - All Rights Reserved
3
+ Unauthorized copying of any files within this source code repository, via any medium is strictly prohibited
4
+ Proprietary and confidential
5
+ Written by Steve James <steve@stevejames.dev>, March 2019
@@ -0,0 +1,35 @@
1
+ import LoggerLevel from './LoggerLevel.js';
2
+ export type LogListener = (message: string, data?: any) => void;
3
+ export declare class Logger {
4
+ private level;
5
+ private c;
6
+ private static listeners;
7
+ set console(c: any);
8
+ static set console(c: any);
9
+ set logLevel(l: LoggerLevel[]);
10
+ static set logLevel(l: LoggerLevel[]);
11
+ shout: (message: string, data?: any) => void;
12
+ static shout(message: string, data?: any): void;
13
+ debug: (message: string, data?: any) => void;
14
+ static debug(message: string, data?: any): void;
15
+ info: (message: string, data?: any) => void;
16
+ static info(message: string, data?: any): void;
17
+ system: (message: string, data?: any) => void;
18
+ static system(message: string, data?: any): void;
19
+ warn: (message: string, data?: any) => void;
20
+ static warn(message: string, data?: any): void;
21
+ error: (message: string, data?: any) => void;
22
+ static error(message: string, data?: any): void;
23
+ throw: (message: string, data?: any) => void;
24
+ static throw(message: string, data?: any): void;
25
+ kill: (message: string, data?: any) => void;
26
+ static kill(message: string, data?: any): void;
27
+ triggerListeners: (message: string, data?: any) => void;
28
+ static triggerListeners(message: string, data?: any): void;
29
+ addListener: (l: LogListener) => void;
30
+ static addListener(l: LogListener): void;
31
+ removeListener: (l: LogListener) => void;
32
+ static removeListener(l: LogListener): void;
33
+ private static instance;
34
+ }
35
+ export default Logger;
package/dist/Logger.js ADDED
@@ -0,0 +1,85 @@
1
+ import LoggerLevel from './LoggerLevel.js';
2
+ const { DEBUG, INFO, SYSTEM, WARN, ERROR, THROW, KILL } = LoggerLevel;
3
+ export class Logger {
4
+ level = [INFO, WARN, ERROR, THROW, KILL];
5
+ c = console;
6
+ static listeners = [];
7
+ set console(c) {
8
+ this.c = c;
9
+ }
10
+ static set console(c) {
11
+ this.instance.console = c;
12
+ }
13
+ set logLevel(l) {
14
+ this.level = l;
15
+ }
16
+ static set logLevel(l) {
17
+ this.instance.logLevel = l;
18
+ }
19
+ shout = (message, data) => Logger.info('--------------\n' + message + '\n--------------', data);
20
+ static shout(message, data) {
21
+ this.info('--------------\n' + message + '\n--------------', data);
22
+ }
23
+ debug = (message, data) => Logger.debug(message, data);
24
+ static debug(message, data) {
25
+ if (this.instance.level.includes(DEBUG))
26
+ this.instance.c.log(...(data ? [message, data] : [message]));
27
+ this.triggerListeners(message, data);
28
+ }
29
+ info = (message, data) => Logger.info(message, data);
30
+ static info(message, data) {
31
+ if (this.instance.level.includes(INFO))
32
+ this.instance.c.log(...(data ? [message, data] : [message]));
33
+ this.triggerListeners(message, data);
34
+ }
35
+ system = (message, data) => Logger.info(message, data);
36
+ static system(message, data) {
37
+ if (this.instance.level.includes(SYSTEM))
38
+ this.instance.c.log(...(data ? [message, data] : [message]));
39
+ this.triggerListeners(message, data);
40
+ }
41
+ warn = (message, data) => Logger.warn(message, data);
42
+ static warn(message, data) {
43
+ if (this.instance.level.includes(WARN))
44
+ this.instance.c.warn(...(data ? [message, data] : [message]));
45
+ this.triggerListeners(message, data);
46
+ }
47
+ error = (message, data) => Logger.error(message, data);
48
+ static error(message, data) {
49
+ if (this.instance.level.includes(ERROR))
50
+ this.instance.c.error(...(data ? [message, data] : [message]));
51
+ this.triggerListeners(message, data);
52
+ }
53
+ throw = (message, data) => Logger.throw(message, data);
54
+ static throw(message, data) {
55
+ if (this.instance.level.includes(THROW))
56
+ this.instance.c.error(...(data ? [message, data] : [message]));
57
+ this.triggerListeners(message, data);
58
+ throw new Error(message.toString());
59
+ }
60
+ kill = (message, data) => Logger.kill(message, data);
61
+ static kill(message, data) {
62
+ if (this.instance.level.includes(KILL))
63
+ this.instance.c.error(...(data ? [message, data] : [message]));
64
+ this.triggerListeners(message, data);
65
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
66
+ // @ts-ignore
67
+ process.exit(0);
68
+ }
69
+ triggerListeners = (message, data) => Logger.triggerListeners(message, data);
70
+ static triggerListeners(message, data) {
71
+ this.listeners.forEach(l => {
72
+ l(message.toString(), data);
73
+ });
74
+ }
75
+ addListener = (l) => Logger.addListener(l);
76
+ static addListener(l) {
77
+ this.listeners.push(l);
78
+ }
79
+ removeListener = (l) => Logger.removeListener(l);
80
+ static removeListener(l) {
81
+ this.listeners = this.listeners.filter(ll => ll !== l);
82
+ }
83
+ static instance = new Logger();
84
+ }
85
+ export default Logger;
@@ -0,0 +1,12 @@
1
+ export declare enum LoggerLevel {
2
+ DEBUG = "debug",
3
+ INFO = "info",
4
+ SYSTEM = "system",
5
+ WARN = "warn",
6
+ ERROR = "error",
7
+ THROW = "throw",
8
+ KILL = "kill"
9
+ }
10
+ export declare const LoggerLevelFull: LoggerLevel[];
11
+ export declare const LoggerLevelStandard: LoggerLevel[];
12
+ export default LoggerLevel;
@@ -0,0 +1,14 @@
1
+ export var LoggerLevel;
2
+ (function (LoggerLevel) {
3
+ LoggerLevel["DEBUG"] = "debug";
4
+ LoggerLevel["INFO"] = "info";
5
+ LoggerLevel["SYSTEM"] = "system";
6
+ LoggerLevel["WARN"] = "warn";
7
+ LoggerLevel["ERROR"] = "error";
8
+ LoggerLevel["THROW"] = "throw";
9
+ LoggerLevel["KILL"] = "kill";
10
+ })(LoggerLevel || (LoggerLevel = {}));
11
+ const { DEBUG, INFO, SYSTEM, WARN, ERROR, THROW, KILL } = LoggerLevel;
12
+ export const LoggerLevelFull = [DEBUG, INFO, SYSTEM, WARN, ERROR, THROW, KILL];
13
+ export const LoggerLevelStandard = [INFO, WARN, ERROR, THROW, KILL];
14
+ export default LoggerLevel;
@@ -0,0 +1,2 @@
1
+ export { LogListener, Logger } from './Logger.js';
2
+ export { LoggerLevel, LoggerLevelFull, LoggerLevelStandard } from './LoggerLevel.js';
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export { Logger } from './Logger.js';
2
+ export { LoggerLevel, LoggerLevelFull, LoggerLevelStandard } from './LoggerLevel.js';
package/package.json ADDED
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "@sjts/lib-log",
3
+ "description": "The Steve James Typescript Log package",
4
+ "version": "1.0.0",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/index.js",
12
+ "require": "./dist/index.js"
13
+ }
14
+ },
15
+ "dependencies": {},
16
+ "devDependencies": {
17
+ "@sjts/lib-dev": "1.1.0"
18
+ },
19
+ "publishConfig": {
20
+ "access": "public"
21
+ }
22
+ }