serverless-simple-middleware 0.0.60 → 0.0.61
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/.nvmrc +1 -0
- package/README.md +0 -1
- package/dist/aws/config.d.ts +2 -2
- package/dist/aws/config.js +6 -4
- package/dist/aws/define.d.ts +0 -12
- package/dist/aws/define.js +2 -1
- package/dist/aws/index.js +17 -6
- package/dist/aws/simple.d.ts +18 -15
- package/dist/aws/simple.js +317 -225
- package/dist/index.js +17 -6
- package/dist/internal/AwsError.d.ts +5 -0
- package/dist/internal/AwsError.js +33 -0
- package/dist/internal/s3.d.ts +38 -0
- package/dist/internal/s3.js +2 -0
- package/dist/middleware/aws.d.ts +2 -2
- package/dist/middleware/aws.js +12 -9
- package/dist/middleware/base.d.ts +8 -8
- package/dist/middleware/base.js +9 -8
- package/dist/middleware/build.d.ts +1 -1
- package/dist/middleware/build.js +68 -45
- package/dist/middleware/index.d.ts +2 -2
- package/dist/middleware/index.js +20 -8
- package/dist/middleware/logger.js +8 -4
- package/dist/middleware/mysql.d.ts +3 -3
- package/dist/middleware/mysql.js +17 -13
- package/dist/middleware/trace.d.ts +2 -2
- package/dist/middleware/trace.js +21 -21
- package/dist/utils/index.js +16 -5
- package/dist/utils/logger.d.ts +3 -3
- package/dist/utils/logger.js +9 -7
- package/dist/utils/misc.d.ts +1 -1
- package/dist/utils/misc.js +10 -3
- package/package.json +18 -10
- package/src/aws/config.ts +1 -1
- package/src/aws/define.ts +0 -19
- package/src/aws/simple.ts +306 -204
- package/src/internal/AwsError.ts +13 -0
- package/src/internal/s3.ts +75 -0
- package/src/middleware/aws.ts +1 -1
- package/src/middleware/base.ts +5 -4
- package/src/middleware/build.ts +31 -31
- package/src/middleware/mysql.ts +11 -7
- package/src/middleware/trace.ts +15 -19
- package/src/utils/misc.ts +11 -2
package/dist/index.js
CHANGED
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
function
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
5
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
17
|
+
__exportStar(require("./aws"), exports);
|
|
18
|
+
__exportStar(require("./middleware"), exports);
|
|
19
|
+
__exportStar(require("./utils"), exports);
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.AwsError = void 0;
|
|
19
|
+
var AwsError = /** @class */ (function (_super) {
|
|
20
|
+
__extends(AwsError, _super);
|
|
21
|
+
function AwsError(awsError) {
|
|
22
|
+
var _this = this;
|
|
23
|
+
var _a, _b, _c;
|
|
24
|
+
var errorObj = awsError;
|
|
25
|
+
var message = (_a = errorObj === null || errorObj === void 0 ? void 0 : errorObj.message) !== null && _a !== void 0 ? _a : 'Unknown AWS Error';
|
|
26
|
+
_this = _super.call(this, message) || this;
|
|
27
|
+
_this.name = (_b = errorObj === null || errorObj === void 0 ? void 0 : errorObj.name) !== null && _b !== void 0 ? _b : 'UnclassifiedError';
|
|
28
|
+
_this.service = (_c = errorObj === null || errorObj === void 0 ? void 0 : errorObj.$service) !== null && _c !== void 0 ? _c : 'UnknownService';
|
|
29
|
+
return _this;
|
|
30
|
+
}
|
|
31
|
+
return AwsError;
|
|
32
|
+
}(Error));
|
|
33
|
+
exports.AwsError = AwsError;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { DeleteObjectCommandInput, GetObjectCommandInput, PutObjectCommandInput, HeadObjectCommandInput, CopyObjectCommandInput, UploadPartCommandInput, UploadPartCopyCommandInput, AbortMultipartUploadCommandInput, CompleteMultipartUploadCommandInput, CreateMultipartUploadCommandInput, ListObjectsV2CommandInput, ListPartsCommandInput } from '@aws-sdk/client-s3/dist-types/commands';
|
|
2
|
+
export type S3Operation = 'putObject' | 'getObject' | 'deleteObject' | 'headObject' | 'copyObject' | 'uploadPart' | 'uploadPartCopy' | 'listObjectsV2' | 'createMultipartUpload' | 'completeMultipartUpload' | 'abortMultipartUpload' | 'listParts';
|
|
3
|
+
export type CommandInputMap = {
|
|
4
|
+
putObject: PutObjectCommandInput;
|
|
5
|
+
getObject: GetObjectCommandInput;
|
|
6
|
+
deleteObject: DeleteObjectCommandInput;
|
|
7
|
+
headObject: HeadObjectCommandInput;
|
|
8
|
+
copyObject: CopyObjectCommandInput;
|
|
9
|
+
uploadPart: UploadPartCommandInput;
|
|
10
|
+
uploadPartCopy: UploadPartCopyCommandInput;
|
|
11
|
+
listObjectsV2: ListObjectsV2CommandInput;
|
|
12
|
+
createMultipartUpload: CreateMultipartUploadCommandInput;
|
|
13
|
+
completeMultipartUpload: CompleteMultipartUploadCommandInput;
|
|
14
|
+
abortMultipartUpload: AbortMultipartUploadCommandInput;
|
|
15
|
+
listParts: ListPartsCommandInput;
|
|
16
|
+
};
|
|
17
|
+
type OpsWithRequiredParams = 'copyObject' | 'uploadPart' | 'uploadPartCopy' | 'createMultipartUpload' | 'completeMultipartUpload' | 'abortMultipartUpload' | 'listParts';
|
|
18
|
+
type OpsWithOptionalParams = Exclude<S3Operation, OpsWithRequiredParams>;
|
|
19
|
+
export type PresignerOptions = {
|
|
20
|
+
[K in OpsWithOptionalParams]: {
|
|
21
|
+
operation: K;
|
|
22
|
+
bucket: string;
|
|
23
|
+
key: string;
|
|
24
|
+
params?: Omit<CommandInputMap[K], 'Bucket' | 'Key'>;
|
|
25
|
+
expiresIn?: number;
|
|
26
|
+
unhoistableHeaders?: Set<string>;
|
|
27
|
+
};
|
|
28
|
+
}[OpsWithOptionalParams] | {
|
|
29
|
+
[K in OpsWithRequiredParams]: {
|
|
30
|
+
operation: K;
|
|
31
|
+
bucket: string;
|
|
32
|
+
key: string;
|
|
33
|
+
params: Omit<CommandInputMap[K], 'Bucket' | 'Key'>;
|
|
34
|
+
expiresIn?: number;
|
|
35
|
+
unhoistableHeaders?: Set<string>;
|
|
36
|
+
};
|
|
37
|
+
}[OpsWithRequiredParams];
|
|
38
|
+
export {};
|
package/dist/middleware/aws.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SimpleAWS, SimpleAWSConfig, SimpleAWSConfigLoadParam } from '../aws';
|
|
2
2
|
import { HandlerAuxBase, HandlerPluginBase } from './base';
|
|
3
|
-
|
|
3
|
+
type InitializerMapper = (aws: SimpleAWS, env: {}) => {
|
|
4
4
|
[name: string]: () => Promise<boolean>;
|
|
5
5
|
};
|
|
6
6
|
export interface AWSPluginOptions {
|
|
@@ -21,5 +21,5 @@ export declare class AWSPlugin extends HandlerPluginBase<AWSPluginAux> {
|
|
|
21
21
|
awsConfig: SimpleAWSConfig;
|
|
22
22
|
}>;
|
|
23
23
|
}
|
|
24
|
-
declare const build: (options?: AWSPluginOptions
|
|
24
|
+
declare const build: (options?: AWSPluginOptions) => AWSPlugin;
|
|
25
25
|
export default build;
|
package/dist/middleware/aws.js
CHANGED
|
@@ -3,10 +3,12 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
3
3
|
var extendStatics = function (d, b) {
|
|
4
4
|
extendStatics = Object.setPrototypeOf ||
|
|
5
5
|
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
7
|
return extendStatics(d, b);
|
|
8
8
|
};
|
|
9
9
|
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
10
12
|
extendStatics(d, b);
|
|
11
13
|
function __() { this.constructor = d; }
|
|
12
14
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
@@ -24,10 +26,11 @@ var __assign = (this && this.__assign) || function () {
|
|
|
24
26
|
return __assign.apply(this, arguments);
|
|
25
27
|
};
|
|
26
28
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
29
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
30
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
31
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
32
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
-
function step(result) { result.done ? resolve(result.value) :
|
|
33
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
34
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
35
|
});
|
|
33
36
|
};
|
|
@@ -37,7 +40,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
37
40
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
38
41
|
function step(op) {
|
|
39
42
|
if (f) throw new TypeError("Generator is already executing.");
|
|
40
|
-
while (_) try {
|
|
43
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
41
44
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
42
45
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
43
46
|
switch (op[0]) {
|
|
@@ -58,13 +61,13 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
58
61
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
59
62
|
}
|
|
60
63
|
};
|
|
61
|
-
var _this = this;
|
|
62
64
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
65
|
+
exports.AWSPlugin = void 0;
|
|
63
66
|
var aws_1 = require("../aws");
|
|
64
67
|
var utils_1 = require("../utils");
|
|
65
68
|
var base_1 = require("./base");
|
|
66
|
-
var logger = utils_1.getLogger(__filename);
|
|
67
|
-
var initialize = function (aws, mapper) { return __awaiter(
|
|
69
|
+
var logger = (0, utils_1.getLogger)(__filename);
|
|
70
|
+
var initialize = function (aws, mapper) { return __awaiter(void 0, void 0, void 0, function () {
|
|
68
71
|
var env, mapping, successes;
|
|
69
72
|
return __generator(this, function (_a) {
|
|
70
73
|
switch (_a.label) {
|
|
@@ -76,7 +79,7 @@ var initialize = function (aws, mapper) { return __awaiter(_this, void 0, void 0
|
|
|
76
79
|
successes = _a.sent();
|
|
77
80
|
return [2 /*return*/, Object.keys(mapping).reduce(function (result, name, index) {
|
|
78
81
|
var _a;
|
|
79
|
-
return (__assign({}, result, (_a = {}, _a[name] = successes[index], _a)));
|
|
82
|
+
return (__assign(__assign({}, result), (_a = {}, _a[name] = successes[index], _a)));
|
|
80
83
|
}, {})];
|
|
81
84
|
}
|
|
82
85
|
});
|
|
@@ -96,9 +99,9 @@ var AWSPlugin = /** @class */ (function (_super) {
|
|
|
96
99
|
mapper: undefined,
|
|
97
100
|
}, config = _a.config, mapper = _a.mapper;
|
|
98
101
|
if (!config) return [3 /*break*/, 2];
|
|
99
|
-
logger.debug("Load aws config from "
|
|
102
|
+
logger.debug("Load aws config from ".concat(config));
|
|
100
103
|
_b = this;
|
|
101
|
-
return [4 /*yield*/, aws_1.loadAWSConfig(config)];
|
|
104
|
+
return [4 /*yield*/, (0, aws_1.loadAWSConfig)(config)];
|
|
102
105
|
case 1:
|
|
103
106
|
_b.config = _c.sent();
|
|
104
107
|
_c.label = 2;
|
|
@@ -8,12 +8,12 @@ export declare class HandlerRequest {
|
|
|
8
8
|
lastError: Error | string | undefined;
|
|
9
9
|
private lazyBody?;
|
|
10
10
|
constructor(event: any, context: any);
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
[key: string]: string;
|
|
11
|
+
get body(): any;
|
|
12
|
+
get path(): {
|
|
13
|
+
[key: string]: string | undefined;
|
|
14
14
|
};
|
|
15
|
-
|
|
16
|
-
[key: string]: string;
|
|
15
|
+
get query(): {
|
|
16
|
+
[key: string]: string | undefined;
|
|
17
17
|
};
|
|
18
18
|
header(key: string): string | undefined;
|
|
19
19
|
records<T, U>(selector?: (each: T) => U): T[] | U[];
|
|
@@ -29,7 +29,7 @@ export declare class HandlerResponse {
|
|
|
29
29
|
ok(body?: {}, code?: number): any;
|
|
30
30
|
fail(body?: {}, code?: number): any;
|
|
31
31
|
addCookie(key: string, value: string, domain?: string, specifyCrossOrigin?: true, path?: string): void;
|
|
32
|
-
setCrossOrigin: (origin?: string
|
|
32
|
+
setCrossOrigin: (origin?: string) => void;
|
|
33
33
|
addHeader: (header: string, value: string) => void;
|
|
34
34
|
}
|
|
35
35
|
export interface HandlerAuxBase {
|
|
@@ -40,7 +40,7 @@ export interface HandlerContext<A extends HandlerAuxBase> {
|
|
|
40
40
|
response: HandlerResponse;
|
|
41
41
|
aux: A;
|
|
42
42
|
}
|
|
43
|
-
export
|
|
43
|
+
export type Handler<A extends HandlerAuxBase> = (context: HandlerContext<A>) => any | Promise<any> | undefined;
|
|
44
44
|
export interface HandlerPlugin<A extends HandlerAuxBase> {
|
|
45
45
|
create: () => Promise<A> | A;
|
|
46
46
|
begin: Handler<A>;
|
|
@@ -48,7 +48,7 @@ export interface HandlerPlugin<A extends HandlerAuxBase> {
|
|
|
48
48
|
error: Handler<A>;
|
|
49
49
|
}
|
|
50
50
|
export declare class HandlerPluginBase<A extends HandlerAuxBase> implements HandlerPlugin<A> {
|
|
51
|
-
create: () => A |
|
|
51
|
+
create: () => Promise<A> | A;
|
|
52
52
|
begin: (_: HandlerContext<A>) => void;
|
|
53
53
|
end: (_: HandlerContext<A>) => void;
|
|
54
54
|
error: (_: HandlerContext<A>) => void;
|
package/dist/middleware/base.js
CHANGED
|
@@ -11,8 +11,9 @@ var __assign = (this && this.__assign) || function () {
|
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.HandlerPluginBase = exports.HandlerResponse = exports.HandlerRequest = void 0;
|
|
14
15
|
var logger_1 = require("../utils/logger");
|
|
15
|
-
var logger = logger_1.getLogger(__filename);
|
|
16
|
+
var logger = (0, logger_1.getLogger)(__filename);
|
|
16
17
|
var HandlerRequest = /** @class */ (function () {
|
|
17
18
|
function HandlerRequest(event, context) {
|
|
18
19
|
this.event = event;
|
|
@@ -29,21 +30,21 @@ var HandlerRequest = /** @class */ (function () {
|
|
|
29
30
|
}
|
|
30
31
|
return this.lazyBody || {};
|
|
31
32
|
},
|
|
32
|
-
enumerable:
|
|
33
|
+
enumerable: false,
|
|
33
34
|
configurable: true
|
|
34
35
|
});
|
|
35
36
|
Object.defineProperty(HandlerRequest.prototype, "path", {
|
|
36
37
|
get: function () {
|
|
37
38
|
return this.event.pathParameters || {};
|
|
38
39
|
},
|
|
39
|
-
enumerable:
|
|
40
|
+
enumerable: false,
|
|
40
41
|
configurable: true
|
|
41
42
|
});
|
|
42
43
|
Object.defineProperty(HandlerRequest.prototype, "query", {
|
|
43
44
|
get: function () {
|
|
44
45
|
return this.event.queryStringParameters || {};
|
|
45
46
|
},
|
|
46
|
-
enumerable:
|
|
47
|
+
enumerable: false,
|
|
47
48
|
configurable: true
|
|
48
49
|
});
|
|
49
50
|
HandlerRequest.prototype.header = function (key) {
|
|
@@ -81,7 +82,7 @@ var HandlerResponse = /** @class */ (function () {
|
|
|
81
82
|
if (body === void 0) { body = {}; }
|
|
82
83
|
if (code === void 0) { code = 200; }
|
|
83
84
|
logger.stupid("ok", body);
|
|
84
|
-
var headers = __assign({}, CORS_HEADERS, this.customHeaders);
|
|
85
|
+
var headers = __assign(__assign({}, CORS_HEADERS), this.customHeaders);
|
|
85
86
|
if (this.crossOrigin) {
|
|
86
87
|
headers['Access-Control-Allow-Origin'] = this.crossOrigin;
|
|
87
88
|
}
|
|
@@ -111,11 +112,11 @@ var HandlerResponse = /** @class */ (function () {
|
|
|
111
112
|
return result;
|
|
112
113
|
};
|
|
113
114
|
HandlerResponse.prototype.addCookie = function (key, value, domain, specifyCrossOrigin, path) {
|
|
114
|
-
var keyValueStr = key
|
|
115
|
-
var domainStr = domain ? "Domain="
|
|
115
|
+
var keyValueStr = "".concat(key, "=").concat(value);
|
|
116
|
+
var domainStr = domain ? "Domain=".concat(domain) : '';
|
|
116
117
|
var sameSiteStr = specifyCrossOrigin ? 'SameSite=None' : '';
|
|
117
118
|
var secureStr = specifyCrossOrigin ? 'Secure' : '';
|
|
118
|
-
var pathStr = path !== undefined ? "Path="
|
|
119
|
+
var pathStr = path !== undefined ? "Path=".concat(path) : '';
|
|
119
120
|
var cookieStr = [keyValueStr, domainStr, sameSiteStr, secureStr, pathStr]
|
|
120
121
|
.filter(function (x) { return x; })
|
|
121
122
|
.join('; ');
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Handler, HandlerAuxBase, HandlerPluginBase } from './base';
|
|
2
|
-
declare const build: <Aux extends HandlerAuxBase>(plugins: HandlerPluginBase<any
|
|
2
|
+
declare const build: <Aux extends HandlerAuxBase>(plugins: Array<HandlerPluginBase<any>>) => (handler: Handler<Aux>) => (event: any, context: any, callback: any) => void;
|
|
3
3
|
export default build;
|
package/dist/middleware/build.js
CHANGED
|
@@ -11,10 +11,11 @@ var __assign = (this && this.__assign) || function () {
|
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
13
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
14
15
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
15
16
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
16
17
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
17
|
-
function step(result) { result.done ? resolve(result.value) :
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
18
19
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
19
20
|
});
|
|
20
21
|
};
|
|
@@ -24,7 +25,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
24
25
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
25
26
|
function step(op) {
|
|
26
27
|
if (f) throw new TypeError("Generator is already executing.");
|
|
27
|
-
while (_) try {
|
|
28
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
28
29
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
29
30
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
30
31
|
switch (op[0]) {
|
|
@@ -45,11 +46,20 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
45
46
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
46
47
|
}
|
|
47
48
|
};
|
|
49
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
50
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
51
|
+
if (ar || !(i in from)) {
|
|
52
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
53
|
+
ar[i] = from[i];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
57
|
+
};
|
|
48
58
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
49
59
|
var logger_1 = require("../utils/logger");
|
|
50
60
|
var utils_1 = require("../utils");
|
|
51
61
|
var base_1 = require("./base");
|
|
52
|
-
var logger = logger_1.getLogger(__filename);
|
|
62
|
+
var logger = (0, logger_1.getLogger)(__filename);
|
|
53
63
|
var HandlerMiddleware = /** @class */ (function () {
|
|
54
64
|
function HandlerMiddleware(plugins) {
|
|
55
65
|
var _this = this;
|
|
@@ -61,7 +71,9 @@ var HandlerMiddleware = /** @class */ (function () {
|
|
|
61
71
|
return maybePromise instanceof Promise
|
|
62
72
|
? maybePromise
|
|
63
73
|
: Promise.resolve(maybePromise);
|
|
64
|
-
})).then(function (auxes) {
|
|
74
|
+
})).then(function (auxes) {
|
|
75
|
+
return auxes.reduce(function (all, each) { return (__assign(__assign({}, all), each)); }, {});
|
|
76
|
+
});
|
|
65
77
|
};
|
|
66
78
|
this.plugins = plugins;
|
|
67
79
|
this.auxPromise = this.createAuxPromise();
|
|
@@ -85,7 +97,7 @@ var HandlerProxy = /** @class */ (function () {
|
|
|
85
97
|
return [3 /*break*/, 3];
|
|
86
98
|
case 2:
|
|
87
99
|
error_1 = _e.sent();
|
|
88
|
-
logger.error("Error while initializing plugins' aux: "
|
|
100
|
+
logger.error("Error while initializing plugins' aux: ".concat((0, utils_1.stringifyError)(error_1)));
|
|
89
101
|
this.response.fail(error_1 instanceof Error ? { error: error_1.message } : error_1);
|
|
90
102
|
return [2 /*return*/, [error_1]];
|
|
91
103
|
case 3:
|
|
@@ -99,36 +111,43 @@ var HandlerProxy = /** @class */ (function () {
|
|
|
99
111
|
errorHandlers = middleware.plugins.map(function (plugin) {
|
|
100
112
|
return _this.generateDelegator(plugin.error);
|
|
101
113
|
});
|
|
102
|
-
iterate = function (
|
|
103
|
-
|
|
104
|
-
|
|
114
|
+
iterate = function (handlers_1) {
|
|
115
|
+
var args_1 = [];
|
|
116
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
117
|
+
args_1[_i - 1] = arguments[_i];
|
|
118
|
+
}
|
|
119
|
+
return __awaiter(_this, __spreadArray([handlers_1], args_1, true), void 0, function (handlers, okResponsible) {
|
|
105
120
|
var _this = this;
|
|
121
|
+
if (okResponsible === void 0) { okResponsible = false; }
|
|
106
122
|
return __generator(this, function (_a) {
|
|
107
|
-
return [2 /*return*/, Promise.all(handlers.map(function (each) {
|
|
123
|
+
return [2 /*return*/, Promise.all(handlers.map(function (each) {
|
|
124
|
+
return _this.safeCall(each, okResponsible, errorHandlers);
|
|
125
|
+
}))];
|
|
108
126
|
});
|
|
109
127
|
});
|
|
110
128
|
};
|
|
129
|
+
_b = [[]];
|
|
111
130
|
return [4 /*yield*/, iterate(beginHandlers)];
|
|
112
131
|
case 4:
|
|
113
|
-
_c = (
|
|
132
|
+
_c = [__spreadArray.apply(void 0, _b.concat([(_e.sent()), true]))];
|
|
114
133
|
return [4 /*yield*/, iterate(actualHandler, true)];
|
|
115
134
|
case 5:
|
|
116
|
-
_d = [(_e.sent())];
|
|
135
|
+
_d = [__spreadArray.apply(void 0, _c.concat([(_e.sent()), true]))];
|
|
117
136
|
return [4 /*yield*/, iterate(endHandlers)];
|
|
118
137
|
case 6:
|
|
119
|
-
results =
|
|
138
|
+
results = __spreadArray.apply(void 0, _d.concat([(_e.sent()), true])).filter(function (x) { return x; });
|
|
120
139
|
// In test phase, throws any exception if there was.
|
|
121
140
|
if (process.env.NODE_ENV === 'test') {
|
|
122
141
|
for (_i = 0, results_1 = results; _i < results_1.length; _i++) {
|
|
123
142
|
each = results_1[_i];
|
|
124
143
|
if (each instanceof Error) {
|
|
125
|
-
logger.error("Error occurred: "
|
|
144
|
+
logger.error("Error occurred: ".concat((0, utils_1.stringifyError)(each)));
|
|
126
145
|
throw each;
|
|
127
146
|
}
|
|
128
147
|
}
|
|
129
148
|
}
|
|
130
149
|
results.forEach(function (result) {
|
|
131
|
-
return logger.silly("middleware result : "
|
|
150
|
+
return logger.silly("middleware result : ".concat(JSON.stringify(result)));
|
|
132
151
|
});
|
|
133
152
|
return [2 /*return*/];
|
|
134
153
|
}
|
|
@@ -154,34 +173,36 @@ var HandlerProxy = /** @class */ (function () {
|
|
|
154
173
|
}
|
|
155
174
|
});
|
|
156
175
|
}); };
|
|
157
|
-
this.generateDelegator = function (handler) {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
this.response.
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
176
|
+
this.generateDelegator = function (handler) {
|
|
177
|
+
return function (okResponsible) { return __awaiter(_this, void 0, void 0, function () {
|
|
178
|
+
var maybePromise, result, _a;
|
|
179
|
+
return __generator(this, function (_b) {
|
|
180
|
+
switch (_b.label) {
|
|
181
|
+
case 0:
|
|
182
|
+
maybePromise = handler({
|
|
183
|
+
request: this.request,
|
|
184
|
+
response: this.response,
|
|
185
|
+
aux: this.aux,
|
|
186
|
+
});
|
|
187
|
+
if (!(maybePromise instanceof Promise)) return [3 /*break*/, 2];
|
|
188
|
+
return [4 /*yield*/, maybePromise];
|
|
189
|
+
case 1:
|
|
190
|
+
_a = _b.sent();
|
|
191
|
+
return [3 /*break*/, 3];
|
|
192
|
+
case 2:
|
|
193
|
+
_a = maybePromise;
|
|
194
|
+
_b.label = 3;
|
|
195
|
+
case 3:
|
|
196
|
+
result = _a;
|
|
197
|
+
logger.stupid("result", result);
|
|
198
|
+
if (!this.response.completed && okResponsible) {
|
|
199
|
+
this.response.ok(result);
|
|
200
|
+
}
|
|
201
|
+
return [2 /*return*/, result];
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
}); };
|
|
205
|
+
};
|
|
185
206
|
this.handleError = function (error, errorHandlers) { return __awaiter(_this, void 0, void 0, function () {
|
|
186
207
|
var _i, errorHandlers_1, handler, ignorable_1;
|
|
187
208
|
return __generator(this, function (_a) {
|
|
@@ -227,8 +248,10 @@ var HandlerProxy = /** @class */ (function () {
|
|
|
227
248
|
// It will break type safety because there is no relation between Aux and Plugin.
|
|
228
249
|
var build = function (plugins) {
|
|
229
250
|
var middleware = new HandlerMiddleware(plugins);
|
|
230
|
-
return function (handler) {
|
|
231
|
-
|
|
232
|
-
|
|
251
|
+
return function (handler) {
|
|
252
|
+
return function (event, context, callback) {
|
|
253
|
+
new HandlerProxy(event, context, callback).call(middleware, handler);
|
|
254
|
+
};
|
|
255
|
+
};
|
|
233
256
|
};
|
|
234
257
|
exports.default = build;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const middleware: {
|
|
2
|
-
build: <Aux extends import("./base").HandlerAuxBase>(plugins: import("./base").HandlerPluginBase<any
|
|
3
|
-
aws: (options?: import("./aws").AWSPluginOptions
|
|
2
|
+
build: <Aux extends import("./base").HandlerAuxBase>(plugins: Array<import("./base").HandlerPluginBase<any>>) => (handler: import("./base").Handler<Aux>) => (event: any, context: any, callback: any) => void;
|
|
3
|
+
aws: (options?: import("./aws").AWSPluginOptions) => import("./aws").AWSPlugin;
|
|
4
4
|
trace: (options: import("./trace").TracerPluginOptions) => import("./trace").TracerPlugin;
|
|
5
5
|
logger: (options: import("./logger").LoggerPluginOptions) => import("./logger").LoggerPlugin;
|
|
6
6
|
mysql: (options: import("./mysql").MySQLPluginOptions) => import("./mysql").MySQLPlugin;
|
package/dist/middleware/index.js
CHANGED
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
function
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
5
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.middleware = void 0;
|
|
6
18
|
var build_1 = require("./build");
|
|
7
19
|
var aws_1 = require("./aws");
|
|
8
20
|
var logger_1 = require("./logger");
|
|
@@ -15,8 +27,8 @@ exports.middleware = {
|
|
|
15
27
|
logger: logger_1.default,
|
|
16
28
|
mysql: mysql_1.default,
|
|
17
29
|
};
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
30
|
+
__exportStar(require("./base"), exports);
|
|
31
|
+
__exportStar(require("./aws"), exports);
|
|
32
|
+
__exportStar(require("./trace"), exports);
|
|
33
|
+
__exportStar(require("./logger"), exports);
|
|
34
|
+
__exportStar(require("./mysql"), exports);
|
|
@@ -3,20 +3,23 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
3
3
|
var extendStatics = function (d, b) {
|
|
4
4
|
extendStatics = Object.setPrototypeOf ||
|
|
5
5
|
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
7
|
return extendStatics(d, b);
|
|
8
8
|
};
|
|
9
9
|
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
10
12
|
extendStatics(d, b);
|
|
11
13
|
function __() { this.constructor = d; }
|
|
12
14
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
13
15
|
};
|
|
14
16
|
})();
|
|
15
17
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
18
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
16
19
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
17
20
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
18
21
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
19
|
-
function step(result) { result.done ? resolve(result.value) :
|
|
22
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
20
23
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
24
|
});
|
|
22
25
|
};
|
|
@@ -26,7 +29,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
26
29
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
27
30
|
function step(op) {
|
|
28
31
|
if (f) throw new TypeError("Generator is already executing.");
|
|
29
|
-
while (_) try {
|
|
32
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
30
33
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
31
34
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
32
35
|
switch (op[0]) {
|
|
@@ -48,6 +51,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
48
51
|
}
|
|
49
52
|
};
|
|
50
53
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
|
+
exports.LoggerPlugin = void 0;
|
|
51
55
|
var utils_1 = require("../utils");
|
|
52
56
|
var base_1 = require("./base");
|
|
53
57
|
var LoggerPlugin = /** @class */ (function (_super) {
|
|
@@ -58,7 +62,7 @@ var LoggerPlugin = /** @class */ (function (_super) {
|
|
|
58
62
|
var _a, name, level;
|
|
59
63
|
return __generator(this, function (_b) {
|
|
60
64
|
_a = this.options, name = _a.name, level = _a.level;
|
|
61
|
-
return [2 /*return*/, { logger: utils_1.getLogger(name, level) }];
|
|
65
|
+
return [2 /*return*/, { logger: (0, utils_1.getLogger)(name, level) }];
|
|
62
66
|
});
|
|
63
67
|
}); };
|
|
64
68
|
_this.options = options;
|
|
@@ -17,9 +17,9 @@ export declare class ConnectionProxy {
|
|
|
17
17
|
private initialized;
|
|
18
18
|
private dbName?;
|
|
19
19
|
constructor(config: MySQLPluginOptions);
|
|
20
|
-
query: <T>(sql: string, params?: any[]
|
|
21
|
-
fetch: <T>(sql: string, params?: any[]
|
|
22
|
-
fetchOne: <T>(sql: string, params?: any[]
|
|
20
|
+
query: <T>(sql: string, params?: any[]) => Promise<T | undefined>;
|
|
21
|
+
fetch: <T>(sql: string, params?: any[]) => Promise<T[]>;
|
|
22
|
+
fetchOne: <T>(sql: string, params?: any[], defaultValue?: T) => Promise<T>;
|
|
23
23
|
beginTransaction: () => Promise<void>;
|
|
24
24
|
commit: () => Promise<void>;
|
|
25
25
|
rollback: () => Promise<void>;
|