serverless-simple-middleware 0.0.61 → 0.0.63
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/.idea/workspace.xml +99 -0
- package/.prettierignore +2 -2
- package/README.md +3 -3
- package/dist/aws/simple.d.ts +5 -3
- package/dist/aws/simple.js +21 -6
- package/dist/middleware/base.d.ts +1 -1
- package/dist/middleware/base.js +14 -4
- package/jest.config.js +7 -7
- package/package.json +69 -69
- package/src/aws/config.ts +46 -46
- package/src/aws/define.ts +10 -10
- package/src/aws/index.ts +3 -3
- package/src/aws/simple.ts +686 -666
- package/src/index.ts +3 -3
- package/src/internal/AwsError.ts +13 -13
- package/src/internal/s3.ts +75 -75
- package/src/middleware/aws.ts +78 -78
- package/src/middleware/base.ts +185 -172
- package/src/middleware/build.ts +173 -173
- package/src/middleware/index.ts +20 -20
- package/src/middleware/logger.ts +28 -28
- package/src/middleware/mysql.ts +214 -214
- package/src/middleware/trace.ts +265 -265
- package/src/utils/index.ts +2 -2
- package/src/utils/logger.ts +94 -94
- package/src/utils/misc.ts +20 -20
- package/tsconfig.json +15 -15
- package/tslint.json +12 -12
package/src/utils/logger.ts
CHANGED
|
@@ -1,94 +1,94 @@
|
|
|
1
|
-
import { basename } from 'path';
|
|
2
|
-
import { envDefault as currentStage, StagingLevel } from 'simple-staging';
|
|
3
|
-
import { $enum } from 'ts-enum-util';
|
|
4
|
-
import { stringifyError } from './misc';
|
|
5
|
-
|
|
6
|
-
export enum LogLevel {
|
|
7
|
-
Error = 'error',
|
|
8
|
-
Warn = 'warn',
|
|
9
|
-
Info = 'info',
|
|
10
|
-
Debug = 'debug',
|
|
11
|
-
Verbose = 'verbose',
|
|
12
|
-
Silly = 'silly',
|
|
13
|
-
Stupid = 'stupid',
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
const severity = (level: LogLevel) => {
|
|
17
|
-
switch (level) {
|
|
18
|
-
case LogLevel.Error:
|
|
19
|
-
return 100;
|
|
20
|
-
case LogLevel.Warn:
|
|
21
|
-
return 200;
|
|
22
|
-
case LogLevel.Info:
|
|
23
|
-
return 300;
|
|
24
|
-
case LogLevel.Debug:
|
|
25
|
-
return 400;
|
|
26
|
-
case LogLevel.Verbose:
|
|
27
|
-
return 500;
|
|
28
|
-
case LogLevel.Silly:
|
|
29
|
-
return 600;
|
|
30
|
-
case LogLevel.Stupid:
|
|
31
|
-
return 700;
|
|
32
|
-
default:
|
|
33
|
-
return 1000;
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
export const currentLogLevel = $enum(LogLevel).asValueOrDefault(
|
|
38
|
-
process.env.LOG_LEVEL,
|
|
39
|
-
currentStage.level !== StagingLevel.Release
|
|
40
|
-
? LogLevel.Verbose
|
|
41
|
-
: LogLevel.Debug,
|
|
42
|
-
);
|
|
43
|
-
|
|
44
|
-
type LogMessage = string | Error;
|
|
45
|
-
|
|
46
|
-
export class Logger {
|
|
47
|
-
private name: string;
|
|
48
|
-
private severity: number;
|
|
49
|
-
|
|
50
|
-
constructor(name: string, level: LogLevel = currentLogLevel) {
|
|
51
|
-
this.name = name;
|
|
52
|
-
this.severity = severity(level);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
public log = (level: LogLevel, message: LogMessage) => {
|
|
56
|
-
if (this.severity >= severity(level)) {
|
|
57
|
-
console.log(
|
|
58
|
-
`[${new Date().toISOString()}][${level.toUpperCase()}][${this.name}] ${
|
|
59
|
-
message instanceof Error ? stringifyError(message) : message
|
|
60
|
-
}`,
|
|
61
|
-
);
|
|
62
|
-
}
|
|
63
|
-
return message;
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
public error = (message: LogMessage) => this.log(LogLevel.Error, message);
|
|
67
|
-
public warn = (message: LogMessage) => this.log(LogLevel.Warn, message);
|
|
68
|
-
public info = (message: LogMessage) => this.log(LogLevel.Info, message);
|
|
69
|
-
public debug = (message: LogMessage) => this.log(LogLevel.Debug, message);
|
|
70
|
-
public verbose = (message: LogMessage) => this.log(LogLevel.Verbose, message);
|
|
71
|
-
public silly = (message: LogMessage) => this.log(LogLevel.Silly, message);
|
|
72
|
-
|
|
73
|
-
public stupid = <T>(
|
|
74
|
-
message: string,
|
|
75
|
-
object: T,
|
|
76
|
-
replacer?: (key: string, value: T) => T,
|
|
77
|
-
) => {
|
|
78
|
-
this.log(
|
|
79
|
-
LogLevel.Stupid,
|
|
80
|
-
`${message}: ${JSON.stringify(object, replacer)}`,
|
|
81
|
-
);
|
|
82
|
-
return object;
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
const loggers: { [name: string]: Logger } = {};
|
|
87
|
-
|
|
88
|
-
export const getLogger = (fileName: string, level?: LogLevel): Logger => {
|
|
89
|
-
const name = basename(fileName);
|
|
90
|
-
if (loggers[name] === undefined) {
|
|
91
|
-
loggers[name] = new Logger(name, level);
|
|
92
|
-
}
|
|
93
|
-
return loggers[name];
|
|
94
|
-
};
|
|
1
|
+
import { basename } from 'path';
|
|
2
|
+
import { envDefault as currentStage, StagingLevel } from 'simple-staging';
|
|
3
|
+
import { $enum } from 'ts-enum-util';
|
|
4
|
+
import { stringifyError } from './misc';
|
|
5
|
+
|
|
6
|
+
export enum LogLevel {
|
|
7
|
+
Error = 'error',
|
|
8
|
+
Warn = 'warn',
|
|
9
|
+
Info = 'info',
|
|
10
|
+
Debug = 'debug',
|
|
11
|
+
Verbose = 'verbose',
|
|
12
|
+
Silly = 'silly',
|
|
13
|
+
Stupid = 'stupid',
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const severity = (level: LogLevel) => {
|
|
17
|
+
switch (level) {
|
|
18
|
+
case LogLevel.Error:
|
|
19
|
+
return 100;
|
|
20
|
+
case LogLevel.Warn:
|
|
21
|
+
return 200;
|
|
22
|
+
case LogLevel.Info:
|
|
23
|
+
return 300;
|
|
24
|
+
case LogLevel.Debug:
|
|
25
|
+
return 400;
|
|
26
|
+
case LogLevel.Verbose:
|
|
27
|
+
return 500;
|
|
28
|
+
case LogLevel.Silly:
|
|
29
|
+
return 600;
|
|
30
|
+
case LogLevel.Stupid:
|
|
31
|
+
return 700;
|
|
32
|
+
default:
|
|
33
|
+
return 1000;
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export const currentLogLevel = $enum(LogLevel).asValueOrDefault(
|
|
38
|
+
process.env.LOG_LEVEL,
|
|
39
|
+
currentStage.level !== StagingLevel.Release
|
|
40
|
+
? LogLevel.Verbose
|
|
41
|
+
: LogLevel.Debug,
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
type LogMessage = string | Error;
|
|
45
|
+
|
|
46
|
+
export class Logger {
|
|
47
|
+
private name: string;
|
|
48
|
+
private severity: number;
|
|
49
|
+
|
|
50
|
+
constructor(name: string, level: LogLevel = currentLogLevel) {
|
|
51
|
+
this.name = name;
|
|
52
|
+
this.severity = severity(level);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
public log = (level: LogLevel, message: LogMessage) => {
|
|
56
|
+
if (this.severity >= severity(level)) {
|
|
57
|
+
console.log(
|
|
58
|
+
`[${new Date().toISOString()}][${level.toUpperCase()}][${this.name}] ${
|
|
59
|
+
message instanceof Error ? stringifyError(message) : message
|
|
60
|
+
}`,
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
return message;
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
public error = (message: LogMessage) => this.log(LogLevel.Error, message);
|
|
67
|
+
public warn = (message: LogMessage) => this.log(LogLevel.Warn, message);
|
|
68
|
+
public info = (message: LogMessage) => this.log(LogLevel.Info, message);
|
|
69
|
+
public debug = (message: LogMessage) => this.log(LogLevel.Debug, message);
|
|
70
|
+
public verbose = (message: LogMessage) => this.log(LogLevel.Verbose, message);
|
|
71
|
+
public silly = (message: LogMessage) => this.log(LogLevel.Silly, message);
|
|
72
|
+
|
|
73
|
+
public stupid = <T>(
|
|
74
|
+
message: string,
|
|
75
|
+
object: T,
|
|
76
|
+
replacer?: (key: string, value: T) => T,
|
|
77
|
+
) => {
|
|
78
|
+
this.log(
|
|
79
|
+
LogLevel.Stupid,
|
|
80
|
+
`${message}: ${JSON.stringify(object, replacer)}`,
|
|
81
|
+
);
|
|
82
|
+
return object;
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
const loggers: { [name: string]: Logger } = {};
|
|
87
|
+
|
|
88
|
+
export const getLogger = (fileName: string, level?: LogLevel): Logger => {
|
|
89
|
+
const name = basename(fileName);
|
|
90
|
+
if (loggers[name] === undefined) {
|
|
91
|
+
loggers[name] = new Logger(name, level);
|
|
92
|
+
}
|
|
93
|
+
return loggers[name];
|
|
94
|
+
};
|
package/src/utils/misc.ts
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { AwsError } from '../internal/AwsError';
|
|
2
|
-
|
|
3
|
-
export const stringifyError = (
|
|
4
|
-
err: any,
|
|
5
|
-
replacer?: (key: string, value: any) => any,
|
|
6
|
-
space?: string | number,
|
|
7
|
-
) => {
|
|
8
|
-
const error = isAWSv3Error(err) ? new AwsError(err) : err;
|
|
9
|
-
const plainObject = {} as any;
|
|
10
|
-
Object.getOwnPropertyNames(error).forEach((key) => {
|
|
11
|
-
plainObject[key] = error[key];
|
|
12
|
-
});
|
|
13
|
-
return JSON.stringify(plainObject, replacer, space);
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
const isAWSv3Error = (
|
|
17
|
-
error: unknown,
|
|
18
|
-
): error is Error & { $metadata?: object } => {
|
|
19
|
-
return error instanceof Error && 'name' in error && '$metadata' in error;
|
|
20
|
-
};
|
|
1
|
+
import { AwsError } from '../internal/AwsError';
|
|
2
|
+
|
|
3
|
+
export const stringifyError = (
|
|
4
|
+
err: any,
|
|
5
|
+
replacer?: (key: string, value: any) => any,
|
|
6
|
+
space?: string | number,
|
|
7
|
+
) => {
|
|
8
|
+
const error = isAWSv3Error(err) ? new AwsError(err) : err;
|
|
9
|
+
const plainObject = {} as any;
|
|
10
|
+
Object.getOwnPropertyNames(error).forEach((key) => {
|
|
11
|
+
plainObject[key] = error[key];
|
|
12
|
+
});
|
|
13
|
+
return JSON.stringify(plainObject, replacer, space);
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const isAWSv3Error = (
|
|
17
|
+
error: unknown,
|
|
18
|
+
): error is Error & { $metadata?: object } => {
|
|
19
|
+
return error instanceof Error && 'name' in error && '$metadata' in error;
|
|
20
|
+
};
|
package/tsconfig.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "es5",
|
|
4
|
-
"module": "commonjs",
|
|
5
|
-
"lib": ["es2017", "es7", "es6", "esnext", "dom"],
|
|
6
|
-
"rootDir": "src",
|
|
7
|
-
"outDir": "dist",
|
|
8
|
-
"declaration": true,
|
|
9
|
-
"noImplicitAny": true,
|
|
10
|
-
"strictNullChecks": true,
|
|
11
|
-
"noUnusedLocals": true,
|
|
12
|
-
"noUnusedParameters": true
|
|
13
|
-
},
|
|
14
|
-
"exclude": ["node_modules", "dist", "__tests__"]
|
|
15
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "es5",
|
|
4
|
+
"module": "commonjs",
|
|
5
|
+
"lib": ["es2017", "es7", "es6", "esnext", "dom"],
|
|
6
|
+
"rootDir": "src",
|
|
7
|
+
"outDir": "dist",
|
|
8
|
+
"declaration": true,
|
|
9
|
+
"noImplicitAny": true,
|
|
10
|
+
"strictNullChecks": true,
|
|
11
|
+
"noUnusedLocals": true,
|
|
12
|
+
"noUnusedParameters": true
|
|
13
|
+
},
|
|
14
|
+
"exclude": ["node_modules", "dist", "__tests__"]
|
|
15
|
+
}
|
package/tslint.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": ["tslint:latest", "tslint-config-prettier"],
|
|
3
|
-
"linterOptions": {
|
|
4
|
-
"exclude": ["node_modules", "dist"]
|
|
5
|
-
},
|
|
6
|
-
"rules": {
|
|
7
|
-
"object-literal-sort-keys": false,
|
|
8
|
-
"interface-name": false,
|
|
9
|
-
"max-classes-per-file": false,
|
|
10
|
-
"no-console": false
|
|
11
|
-
}
|
|
12
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"extends": ["tslint:latest", "tslint-config-prettier"],
|
|
3
|
+
"linterOptions": {
|
|
4
|
+
"exclude": ["node_modules", "dist"]
|
|
5
|
+
},
|
|
6
|
+
"rules": {
|
|
7
|
+
"object-literal-sort-keys": false,
|
|
8
|
+
"interface-name": false,
|
|
9
|
+
"max-classes-per-file": false,
|
|
10
|
+
"no-console": false
|
|
11
|
+
}
|
|
12
|
+
}
|