serverless-simple-middleware 0.0.58 → 0.0.59

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.
Files changed (45) hide show
  1. package/.nvmrc +1 -0
  2. package/dist/aws/config.d.ts +3 -3
  3. package/dist/aws/config.js +13 -18
  4. package/dist/aws/define.js +2 -4
  5. package/dist/aws/index.d.ts +3 -3
  6. package/dist/aws/index.js +3 -8
  7. package/dist/aws/simple.d.ts +11 -11
  8. package/dist/aws/simple.js +403 -666
  9. package/dist/index.d.ts +3 -3
  10. package/dist/index.js +3 -8
  11. package/dist/middleware/aws.d.ts +4 -4
  12. package/dist/middleware/aws.js +38 -125
  13. package/dist/middleware/base.d.ts +9 -9
  14. package/dist/middleware/base.js +60 -94
  15. package/dist/middleware/build.d.ts +2 -2
  16. package/dist/middleware/build.js +91 -218
  17. package/dist/middleware/index.d.ts +10 -10
  18. package/dist/middleware/index.js +16 -21
  19. package/dist/middleware/logger.d.ts +2 -2
  20. package/dist/middleware/logger.js +13 -70
  21. package/dist/middleware/mysql.d.ts +12 -7
  22. package/dist/middleware/mysql.js +173 -268
  23. package/dist/middleware/trace.d.ts +2 -2
  24. package/dist/middleware/trace.js +99 -198
  25. package/dist/utils/index.d.ts +2 -2
  26. package/dist/utils/index.js +2 -7
  27. package/dist/utils/logger.d.ts +2 -2
  28. package/dist/utils/logger.js +25 -31
  29. package/dist/utils/misc.d.ts +1 -1
  30. package/dist/utils/misc.js +3 -5
  31. package/package.json +6 -3
  32. package/src/aws/config.ts +1 -1
  33. package/src/aws/index.ts +3 -3
  34. package/src/aws/simple.ts +4 -3
  35. package/src/index.ts +3 -3
  36. package/src/middleware/aws.ts +3 -3
  37. package/src/middleware/base.ts +4 -4
  38. package/src/middleware/build.ts +3 -3
  39. package/src/middleware/index.ts +10 -10
  40. package/src/middleware/logger.ts +2 -2
  41. package/src/middleware/mysql.ts +74 -7
  42. package/src/middleware/trace.ts +4 -4
  43. package/src/utils/index.ts +2 -2
  44. package/src/utils/logger.ts +1 -1
  45. package/tsconfig.json +5 -4
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export * from './aws';
2
- export * from './middleware';
3
- export * from './utils';
1
+ export * from './aws/index.js';
2
+ export * from './middleware/index.js';
3
+ export * from './utils/index.js';
package/dist/index.js CHANGED
@@ -1,8 +1,3 @@
1
- "use strict";
2
- function __export(m) {
3
- for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
4
- }
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- __export(require("./aws"));
7
- __export(require("./middleware"));
8
- __export(require("./utils"));
1
+ export * from './aws/index.js';
2
+ export * from './middleware/index.js';
3
+ export * from './utils/index.js';
@@ -1,6 +1,6 @@
1
- import { SimpleAWS, SimpleAWSConfig, SimpleAWSConfigLoadParam } from '../aws';
2
- import { HandlerAuxBase, HandlerPluginBase } from './base';
3
- declare type InitializerMapper = (aws: SimpleAWS, env: {}) => {
1
+ import { SimpleAWS, SimpleAWSConfig, SimpleAWSConfigLoadParam } from '../aws/index.js';
2
+ import { HandlerAuxBase, HandlerPluginBase } from './base.js';
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 | undefined) => AWSPlugin;
24
+ declare const build: (options?: AWSPluginOptions) => AWSPlugin;
25
25
  export default build;
@@ -1,128 +1,41 @@
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 (b.hasOwnProperty(p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- extendStatics(d, b);
11
- function __() { this.constructor = d; }
12
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13
- };
14
- })();
15
- var __assign = (this && this.__assign) || function () {
16
- __assign = Object.assign || function(t) {
17
- for (var s, i = 1, n = arguments.length; i < n; i++) {
18
- s = arguments[i];
19
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20
- t[p] = s[p];
21
- }
22
- return t;
23
- };
24
- return __assign.apply(this, arguments);
1
+ import { loadAWSConfig, SimpleAWS, SimpleAWSConfig, } from '../aws/index.js';
2
+ import { getLogger } from '../utils/index.js';
3
+ import { HandlerPluginBase } from './base.js';
4
+ const logger = getLogger(__filename);
5
+ const initialize = async (aws, mapper) => {
6
+ const env = process.env;
7
+ const mapping = mapper(aws, env);
8
+ const successes = await Promise.all(Object.keys(mapping).map(name => mapping[name]()));
9
+ return Object.keys(mapping).reduce((result, name, index) => ({ ...result, [name]: successes[index] }), {});
25
10
  };
26
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- var __generator = (this && this.__generator) || function (thisArg, body) {
35
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
36
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
37
- function verb(n) { return function (v) { return step([n, v]); }; }
38
- function step(op) {
39
- if (f) throw new TypeError("Generator is already executing.");
40
- while (_) try {
41
- 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
- if (y = 0, t) op = [op[0] & 2, t.value];
43
- switch (op[0]) {
44
- case 0: case 1: t = op; break;
45
- case 4: _.label++; return { value: op[1], done: false };
46
- case 5: _.label++; y = op[1]; op = [0]; continue;
47
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
48
- default:
49
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
50
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
51
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
52
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
53
- if (t[2]) _.ops.pop();
54
- _.trys.pop(); continue;
55
- }
56
- op = body.call(thisArg, _);
57
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
58
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
59
- }
60
- };
61
- var _this = this;
62
- Object.defineProperty(exports, "__esModule", { value: true });
63
- var aws_1 = require("../aws");
64
- var utils_1 = require("../utils");
65
- var base_1 = require("./base");
66
- var logger = utils_1.getLogger(__filename);
67
- var initialize = function (aws, mapper) { return __awaiter(_this, void 0, void 0, function () {
68
- var env, mapping, successes;
69
- return __generator(this, function (_a) {
70
- switch (_a.label) {
71
- case 0:
72
- env = process.env;
73
- mapping = mapper(aws, env);
74
- return [4 /*yield*/, Promise.all(Object.keys(mapping).map(function (name) { return mapping[name](); }))];
75
- case 1:
76
- successes = _a.sent();
77
- return [2 /*return*/, Object.keys(mapping).reduce(function (result, name, index) {
78
- var _a;
79
- return (__assign({}, result, (_a = {}, _a[name] = successes[index], _a)));
80
- }, {})];
81
- }
82
- });
83
- }); };
84
- var AWSPlugin = /** @class */ (function (_super) {
85
- __extends(AWSPlugin, _super);
86
- function AWSPlugin(options) {
87
- var _this = _super.call(this) || this;
88
- _this.create = function () { return __awaiter(_this, void 0, void 0, function () {
89
- var _a, config, mapper, _b;
90
- return __generator(this, function (_c) {
91
- switch (_c.label) {
92
- case 0:
93
- if (!!this.aws) return [3 /*break*/, 4];
94
- _a = this.options || {
95
- config: undefined,
96
- mapper: undefined,
97
- }, config = _a.config, mapper = _a.mapper;
98
- if (!config) return [3 /*break*/, 2];
99
- logger.debug("Load aws config from " + config);
100
- _b = this;
101
- return [4 /*yield*/, aws_1.loadAWSConfig(config)];
102
- case 1:
103
- _b.config = _c.sent();
104
- _c.label = 2;
105
- case 2:
106
- this.aws = new aws_1.SimpleAWS(this.config);
107
- if (!mapper) return [3 /*break*/, 4];
108
- logger.debug("Initialize aws components with mapper.");
109
- return [4 /*yield*/, initialize(this.aws, mapper)];
110
- case 3:
111
- _c.sent();
112
- _c.label = 4;
113
- case 4: return [2 /*return*/, {
114
- aws: this.aws,
115
- awsConfig: this.config,
116
- }];
11
+ export class AWSPlugin extends HandlerPluginBase {
12
+ constructor(options) {
13
+ super();
14
+ this.create = async () => {
15
+ // Setup only once.
16
+ if (!this.aws) {
17
+ const { config, mapper } = this.options || {
18
+ config: undefined,
19
+ mapper: undefined,
20
+ };
21
+ if (config) {
22
+ logger.debug(`Load aws config from ${config}`);
23
+ this.config = await loadAWSConfig(config);
24
+ }
25
+ this.aws = new SimpleAWS(this.config);
26
+ if (mapper) {
27
+ logger.debug(`Initialize aws components with mapper.`);
28
+ await initialize(this.aws, mapper);
117
29
  }
118
- });
119
- }); };
120
- _this.options = options;
121
- _this.config = new aws_1.SimpleAWSConfig();
122
- return _this;
30
+ }
31
+ return {
32
+ aws: this.aws,
33
+ awsConfig: this.config,
34
+ };
35
+ };
36
+ this.options = options;
37
+ this.config = new SimpleAWSConfig();
123
38
  }
124
- return AWSPlugin;
125
- }(base_1.HandlerPluginBase));
126
- exports.AWSPlugin = AWSPlugin;
127
- var build = function (options) { return new AWSPlugin(options); };
128
- exports.default = build;
39
+ }
40
+ const build = (options) => new AWSPlugin(options);
41
+ export default build;
@@ -3,17 +3,17 @@ export interface RequestAuxBase {
3
3
  [pluginName: string]: any;
4
4
  }
5
5
  export declare class HandlerRequest {
6
- event: awsTypes.APIGatewayEvent;
6
+ event: awsTypes.APIGatewayProxyEvent;
7
7
  context: awsTypes.APIGatewayEventRequestContext;
8
8
  lastError: Error | string | undefined;
9
9
  private lazyBody?;
10
10
  constructor(event: any, context: any);
11
- readonly body: any;
12
- readonly path: {
13
- [key: string]: string;
11
+ get body(): any;
12
+ get path(): {
13
+ [key: string]: string | undefined;
14
14
  };
15
- readonly query: {
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 | undefined) => void;
32
+ setCrossOrigin: (origin?: string) => void;
33
33
  }
34
34
  export interface HandlerAuxBase {
35
35
  [key: string]: any;
@@ -39,7 +39,7 @@ export interface HandlerContext<A extends HandlerAuxBase> {
39
39
  response: HandlerResponse;
40
40
  aux: A;
41
41
  }
42
- export declare type Handler<A extends HandlerAuxBase> = (context: HandlerContext<A>) => any | Promise<any> | undefined;
42
+ export type Handler<A extends HandlerAuxBase> = (context: HandlerContext<A>) => any | Promise<any> | undefined;
43
43
  export interface HandlerPlugin<A extends HandlerAuxBase> {
44
44
  create: () => Promise<A> | A;
45
45
  begin: Handler<A>;
@@ -47,7 +47,7 @@ export interface HandlerPlugin<A extends HandlerAuxBase> {
47
47
  error: Handler<A>;
48
48
  }
49
49
  export declare class HandlerPluginBase<A extends HandlerAuxBase> implements HandlerPlugin<A> {
50
- create: () => A | Promise<A>;
50
+ create: () => Promise<A> | A;
51
51
  begin: (_: HandlerContext<A>) => void;
52
52
  end: (_: HandlerContext<A>) => void;
53
53
  error: (_: HandlerContext<A>) => void;
@@ -1,68 +1,40 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- var logger_1 = require("../utils/logger");
15
- var logger = logger_1.getLogger(__filename);
16
- var HandlerRequest = /** @class */ (function () {
17
- function HandlerRequest(event, context) {
1
+ import { getLogger } from '../utils/index.js';
2
+ const logger = getLogger(__filename);
3
+ export class HandlerRequest {
4
+ constructor(event, context) {
18
5
  this.event = event;
19
6
  this.context = context;
20
7
  this.lastError = undefined;
21
8
  }
22
- Object.defineProperty(HandlerRequest.prototype, "body", {
23
- get: function () {
24
- if (!this.event.body) {
25
- return {};
26
- }
27
- if (this.lazyBody === undefined) {
28
- this.lazyBody = JSON.parse(this.event.body);
29
- }
30
- return this.lazyBody || {};
31
- },
32
- enumerable: true,
33
- configurable: true
34
- });
35
- Object.defineProperty(HandlerRequest.prototype, "path", {
36
- get: function () {
37
- return this.event.pathParameters || {};
38
- },
39
- enumerable: true,
40
- configurable: true
41
- });
42
- Object.defineProperty(HandlerRequest.prototype, "query", {
43
- get: function () {
44
- return this.event.queryStringParameters || {};
45
- },
46
- enumerable: true,
47
- configurable: true
48
- });
49
- HandlerRequest.prototype.header = function (key) {
9
+ get body() {
10
+ if (!this.event.body) {
11
+ return {};
12
+ }
13
+ if (this.lazyBody === undefined) {
14
+ this.lazyBody = JSON.parse(this.event.body);
15
+ }
16
+ return this.lazyBody || {};
17
+ }
18
+ get path() {
19
+ return this.event.pathParameters || {};
20
+ }
21
+ get query() {
22
+ return this.event.queryStringParameters || {};
23
+ }
24
+ header(key) {
50
25
  return this.event.headers
51
26
  ? this.event.headers[key] || this.event.headers[key.toLowerCase()]
52
27
  : undefined;
53
- };
54
- HandlerRequest.prototype.records = function (selector) {
55
- var target = (this.event.Records || []);
28
+ }
29
+ records(selector) {
30
+ const target = (this.event.Records || []);
56
31
  return selector === undefined ? target : target.map(selector);
57
- };
58
- return HandlerRequest;
59
- }());
60
- exports.HandlerRequest = HandlerRequest;
61
- var HandlerResponse = /** @class */ (function () {
62
- function HandlerResponse(callback) {
63
- var _this = this;
64
- this.setCrossOrigin = function (origin) {
65
- _this.crossOrigin = origin;
32
+ }
33
+ }
34
+ export class HandlerResponse {
35
+ constructor(callback) {
36
+ this.setCrossOrigin = (origin) => {
37
+ this.crossOrigin = origin;
66
38
  };
67
39
  this.callback = callback;
68
40
  this.completed = false;
@@ -73,68 +45,62 @@ var HandlerResponse = /** @class */ (function () {
73
45
  };
74
46
  this.cookies = [];
75
47
  }
76
- HandlerResponse.prototype.ok = function (body, code) {
77
- if (body === void 0) { body = {}; }
78
- if (code === void 0) { code = 200; }
79
- logger.stupid("ok", body);
80
- var headers = __assign({}, this.corsHeaders);
48
+ ok(body = {}, code = 200) {
49
+ logger.stupid(`ok`, body);
50
+ const headers = {
51
+ ...this.corsHeaders,
52
+ };
81
53
  if (this.crossOrigin) {
82
54
  headers['Access-Control-Allow-Origin'] = this.crossOrigin;
83
55
  }
84
- var multiValueHeaders = undefined;
56
+ let multiValueHeaders = undefined;
85
57
  if (this.cookies.length > 0) {
86
58
  multiValueHeaders = { 'Set-Cookie': this.cookies };
87
59
  }
88
- var result = this.callback(null, {
60
+ const result = this.callback(null, {
89
61
  statusCode: code,
90
- headers: headers,
91
- multiValueHeaders: multiValueHeaders,
62
+ headers,
63
+ multiValueHeaders,
92
64
  body: JSON.stringify(body),
93
65
  });
94
66
  this.completed = true;
95
67
  return result;
96
- };
97
- HandlerResponse.prototype.fail = function (body, code) {
98
- if (body === void 0) { body = {}; }
99
- if (code === void 0) { code = 500; }
100
- logger.stupid("fail", body);
101
- var result = this.callback(null, {
68
+ }
69
+ fail(body = {}, code = 500) {
70
+ logger.stupid(`fail`, body);
71
+ const result = this.callback(null, {
102
72
  statusCode: code,
103
73
  headers: this.corsHeaders,
104
74
  body: JSON.stringify(body),
105
75
  });
106
76
  this.completed = true;
107
77
  return result;
108
- };
109
- HandlerResponse.prototype.addCookie = function (key, value, domain, specifyCrossOrigin, path) {
110
- var keyValueStr = key + "=" + value;
111
- var domainStr = domain ? "Domain=" + domain : '';
112
- var sameSiteStr = specifyCrossOrigin ? 'SameSite=None' : '';
113
- var secureStr = specifyCrossOrigin ? 'Secure' : '';
114
- var pathStr = path !== undefined ? "Path=" + path : '';
115
- var cookieStr = [keyValueStr, domainStr, sameSiteStr, secureStr, pathStr]
116
- .filter(function (x) { return x; })
78
+ }
79
+ addCookie(key, value, domain, specifyCrossOrigin, path) {
80
+ const keyValueStr = `${key}=${value}`;
81
+ const domainStr = domain ? `Domain=${domain}` : '';
82
+ const sameSiteStr = specifyCrossOrigin ? 'SameSite=None' : '';
83
+ const secureStr = specifyCrossOrigin ? 'Secure' : '';
84
+ const pathStr = path !== undefined ? `Path=${path}` : '';
85
+ const cookieStr = [keyValueStr, domainStr, sameSiteStr, secureStr, pathStr]
86
+ .filter(x => x)
117
87
  .join('; ');
118
88
  this.cookies.push(cookieStr);
119
- };
120
- return HandlerResponse;
121
- }());
122
- exports.HandlerResponse = HandlerResponse;
123
- var HandlerPluginBase = /** @class */ (function () {
124
- function HandlerPluginBase() {
125
- this.create = function () {
89
+ }
90
+ }
91
+ export class HandlerPluginBase {
92
+ constructor() {
93
+ this.create = () => {
126
94
  throw new Error('Not yet implemented');
127
95
  };
128
- this.begin = function (_) {
96
+ this.begin = (_) => {
129
97
  // do nothing
130
98
  };
131
- this.end = function (_) {
99
+ this.end = (_) => {
132
100
  // do nothing
133
101
  };
134
- this.error = function (_) {
102
+ this.error = (_) => {
135
103
  // do nothing
136
104
  };
137
105
  }
138
- return HandlerPluginBase;
139
- }());
140
- exports.HandlerPluginBase = HandlerPluginBase;
106
+ }
@@ -1,3 +1,3 @@
1
- import { Handler, HandlerAuxBase, HandlerPluginBase } from './base';
2
- declare const build: <Aux extends HandlerAuxBase>(plugins: HandlerPluginBase<any>[]) => (handler: Handler<Aux>) => (event: any, context: any, callback: any) => void;
1
+ import { Handler, HandlerAuxBase, HandlerPluginBase } from './base.js';
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;