@log4js-node/smtp 2.0.0 → 2.0.1

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/README.md CHANGED
@@ -30,7 +30,7 @@ npm install @log4js-node/smtp
30
30
  * `subject` - `string` (optional, defaults to message from first log event in batch) - subject for email
31
31
  * `sender` - `string` (optional) - who the logs should be sent as
32
32
  * `html` - `boolean` (optional, defaults to `false`) - send the email as HTML instead of plain text
33
- * `layout` - `object` (optional, defaults to basicLayout) - see [layouts](layouts.md)
33
+ * `layout` - `object` (optional, defaults to basicLayout) - see [layouts](https://log4js-node.github.io/log4js-node/layouts.html)
34
34
  * `cc` - `string` (optional) - email addresses to send the carbon-copy logs to
35
35
  * `bcc` - `string` (optional) - email addresses to send the blind-carbon-copy logs to
36
36
 
package/lib/index.js CHANGED
@@ -38,6 +38,9 @@ function smtpAppender(config, layout, subjectLayout) {
38
38
  const sendInterval = config.sendInterval * 1000 || 0;
39
39
  const shutdownTimeout = ('shutdownTimeout' in config ? config.shutdownTimeout : 5) * 1000;
40
40
  const transport = mailer.createTransport(getTransportOptions(config));
41
+ transport.on('error', (error) => {
42
+ console.error('log4js.smtpAppender - Error happened', error); // eslint-disable-line no-console
43
+ });
41
44
  const logEventBuffer = [];
42
45
 
43
46
  let unsentCount = 0;
@@ -78,7 +81,7 @@ function smtpAppender(config, layout, subjectLayout) {
78
81
  }
79
82
  transport.sendMail(msg, (error) => {
80
83
  if (error) {
81
- console.error('log4js.smtpAppender - Error happened', error); //eslint-disable-line
84
+ console.error('log4js.smtpAppender - Send mail error happened', error); // eslint-disable-line no-console
82
85
  }
83
86
  transport.close();
84
87
  unsentCount -= count;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@log4js-node/smtp",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "description": "SMTP Appender for log4js-node",
5
5
  "homepage": "https://log4js-node.github.io/log4js-node/",
6
6
  "files": [
@@ -33,6 +33,7 @@
33
33
  "commitmsg": "validate-commit-msg",
34
34
  "pretest": "eslint 'lib/**/*.js' 'test/**/*.js'",
35
35
  "test": "tap 'test/tap/**/*.js' --100",
36
+ "typings": "tsc -p types/tsconfig.json",
36
37
  "codecov": "tap 'test/tap/**/*.js' --cov --coverage-report=lcov && codecov"
37
38
  },
38
39
  "directories": {
@@ -40,20 +41,21 @@
40
41
  "lib": "lib"
41
42
  },
42
43
  "dependencies": {
43
- "debug": "^3.1.0",
44
- "nodemailer": "^6.6.1"
44
+ "debug": "^4.3.3",
45
+ "nodemailer": "^6.7.2"
45
46
  },
46
47
  "devDependencies": {
47
- "@log4js-node/sandboxed-module": "^2.1.1",
48
+ "@log4js-node/sandboxed-module": "^2.2.1",
48
49
  "codecov": "^3.0.0",
49
- "conventional-changelog": "^1.1.15",
50
- "eslint": "^4.10.0",
51
- "eslint-config-airbnb-base": "^12.1.0",
50
+ "conventional-changelog": "^3.1.25",
51
+ "eslint": "^8.7.0",
52
+ "eslint-config-airbnb-base": "^13.2.0",
52
53
  "eslint-import-resolver-node": "^0.3.1",
53
54
  "eslint-plugin-import": "^2.8.0",
54
- "husky": "^0.14.3",
55
- "nyc": "^11.5.0",
56
- "tap": "^12.0.1",
55
+ "husky": "^7.0.4",
56
+ "nyc": "^15.1.0",
57
+ "tap": "^15.1.6",
58
+ "typescript": "^4.5.5",
57
59
  "validate-commit-msg": "^2.14.0"
58
60
  },
59
61
  "browser": {
package/types/index.d.ts CHANGED
@@ -1,5 +1,64 @@
1
1
  // Type definitions for log4js SMTP appender
2
2
 
3
+ export interface BaseLayout {
4
+ type: 'basic';
5
+ }
6
+
7
+ export interface ColoredLayout {
8
+ type: 'colored' | 'coloured';
9
+ }
10
+
11
+ export interface MessagePassThroughLayout {
12
+ type: 'messagePassThrough';
13
+ }
14
+
15
+ export interface DummyLayout {
16
+ type: 'dummy';
17
+ }
18
+
19
+
20
+ export interface Level {
21
+ isEqualTo(other: string): boolean;
22
+ isEqualTo(otherLevel: Level): boolean;
23
+ isLessThanOrEqualTo(other: string): boolean;
24
+ isLessThanOrEqualTo(otherLevel: Level): boolean;
25
+ isGreaterThanOrEqualTo(other: string): boolean;
26
+ isGreaterThanOrEqualTo(otherLevel: Level): boolean;
27
+ colour: string;
28
+ level: number;
29
+ levelStr: string;
30
+ }
31
+
32
+ export interface LoggingEvent {
33
+ categoryName: string; // name of category
34
+ level: Level; // level of message
35
+ data: any[]; // objects to log
36
+ startTime: Date;
37
+ pid: number;
38
+ context: any;
39
+ cluster?: {
40
+ workerId: number;
41
+ worker: number;
42
+ };
43
+ }
44
+
45
+ export type Token = ((logEvent: LoggingEvent) => string) | string;
46
+
47
+ export interface PatternLayout {
48
+ type: 'pattern';
49
+ // specifier for the output format, using placeholders as described below
50
+ pattern: string;
51
+ // user-defined tokens to be used in the pattern
52
+ tokens?: { [name: string]: Token };
53
+ }
54
+
55
+ export interface CustomLayout {
56
+ [key: string]: any;
57
+ type: string;
58
+ }
59
+
60
+ export type Layout = BaseLayout | ColoredLayout | MessagePassThroughLayout | DummyLayout | PatternLayout | CustomLayout;
61
+
3
62
  export interface SmtpAppender {
4
63
  type: '@log4js-node/smtp';
5
64
  // (if not present will use transport field)
@@ -50,4 +109,4 @@ export interface SmtpAppender {
50
109
  bcc?: string;
51
110
  }
52
111
 
53
- export type Appender = Appender | SmtpAppender;
112
+ export type Appender = SmtpAppender;
@@ -0,0 +1,9 @@
1
+ {
2
+ "compileOnSave": false,
3
+ "compilerOptions": {
4
+ "strict": true,
5
+ "noUnusedParameters": true,
6
+ "noUnusedLocals": false,
7
+ "noEmit": true
8
+ }
9
+ }