serverless-simple-middleware 0.0.59 → 0.0.60

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/dist/aws/config.d.ts +3 -3
  2. package/dist/aws/config.js +18 -13
  3. package/dist/aws/define.js +4 -2
  4. package/dist/aws/index.d.ts +3 -3
  5. package/dist/aws/index.js +8 -3
  6. package/dist/aws/simple.d.ts +11 -11
  7. package/dist/aws/simple.js +666 -403
  8. package/dist/index.d.ts +3 -3
  9. package/dist/index.js +8 -3
  10. package/dist/middleware/aws.d.ts +4 -4
  11. package/dist/middleware/aws.js +125 -38
  12. package/dist/middleware/base.d.ts +11 -10
  13. package/dist/middleware/base.js +104 -66
  14. package/dist/middleware/build.d.ts +2 -2
  15. package/dist/middleware/build.js +218 -91
  16. package/dist/middleware/index.d.ts +10 -10
  17. package/dist/middleware/index.js +21 -16
  18. package/dist/middleware/logger.d.ts +2 -2
  19. package/dist/middleware/logger.js +70 -13
  20. package/dist/middleware/mysql.d.ts +7 -12
  21. package/dist/middleware/mysql.js +268 -173
  22. package/dist/middleware/trace.d.ts +2 -2
  23. package/dist/middleware/trace.js +198 -99
  24. package/dist/utils/index.d.ts +2 -2
  25. package/dist/utils/index.js +7 -2
  26. package/dist/utils/logger.d.ts +2 -2
  27. package/dist/utils/logger.js +31 -25
  28. package/dist/utils/misc.d.ts +1 -1
  29. package/dist/utils/misc.js +5 -3
  30. package/package.json +3 -6
  31. package/src/aws/config.ts +1 -1
  32. package/src/aws/index.ts +3 -3
  33. package/src/aws/simple.ts +3 -4
  34. package/src/index.ts +3 -3
  35. package/src/middleware/aws.ts +3 -3
  36. package/src/middleware/base.ts +19 -12
  37. package/src/middleware/build.ts +3 -3
  38. package/src/middleware/index.ts +10 -10
  39. package/src/middleware/logger.ts +2 -2
  40. package/src/middleware/mysql.ts +7 -74
  41. package/src/middleware/trace.ts +4 -4
  42. package/src/utils/index.ts +2 -2
  43. package/src/utils/logger.ts +1 -1
  44. package/tsconfig.json +4 -5
  45. package/.nvmrc +0 -1
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export * from './aws/index.js';
2
- export * from './middleware/index.js';
3
- export * from './utils/index.js';
1
+ export * from './aws';
2
+ export * from './middleware';
3
+ export * from './utils';
package/dist/index.js CHANGED
@@ -1,3 +1,8 @@
1
- export * from './aws/index.js';
2
- export * from './middleware/index.js';
3
- export * from './utils/index.js';
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,6 +1,6 @@
1
- import { SimpleAWS, SimpleAWSConfig, SimpleAWSConfigLoadParam } from '../aws/index.js';
2
- import { HandlerAuxBase, HandlerPluginBase } from './base.js';
3
- type InitializerMapper = (aws: SimpleAWS, env: {}) => {
1
+ import { SimpleAWS, SimpleAWSConfig, SimpleAWSConfigLoadParam } from '../aws';
2
+ import { HandlerAuxBase, HandlerPluginBase } from './base';
3
+ declare 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) => AWSPlugin;
24
+ declare const build: (options?: AWSPluginOptions | undefined) => AWSPlugin;
25
25
  export default build;
@@ -1,41 +1,128 @@
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] }), {});
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);
10
25
  };
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);
29
- }
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;
30
55
  }
31
- return {
32
- aws: this.aws,
33
- awsConfig: this.config,
34
- };
35
- };
36
- this.options = options;
37
- this.config = new SimpleAWSConfig();
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
+ }];
117
+ }
118
+ });
119
+ }); };
120
+ _this.options = options;
121
+ _this.config = new aws_1.SimpleAWSConfig();
122
+ return _this;
38
123
  }
39
- }
40
- const build = (options) => new AWSPlugin(options);
41
- export default build;
124
+ return AWSPlugin;
125
+ }(base_1.HandlerPluginBase));
126
+ exports.AWSPlugin = AWSPlugin;
127
+ var build = function (options) { return new AWSPlugin(options); };
128
+ exports.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.APIGatewayProxyEvent;
6
+ event: awsTypes.APIGatewayEvent;
7
7
  context: awsTypes.APIGatewayEventRequestContext;
8
8
  lastError: Error | string | undefined;
9
9
  private lazyBody?;
10
10
  constructor(event: any, context: any);
11
- get body(): any;
12
- get path(): {
13
- [key: string]: string | undefined;
11
+ readonly body: any;
12
+ readonly path: {
13
+ [key: string]: string;
14
14
  };
15
- get query(): {
16
- [key: string]: string | undefined;
15
+ readonly query: {
16
+ [key: string]: string;
17
17
  };
18
18
  header(key: string): string | undefined;
19
19
  records<T, U>(selector?: (each: T) => U): T[] | U[];
@@ -22,14 +22,15 @@ export declare class HandlerResponse {
22
22
  callback: any;
23
23
  completed: boolean;
24
24
  result: any | Promise<any> | undefined;
25
- private corsHeaders;
26
25
  private cookies;
27
26
  private crossOrigin?;
27
+ private customHeaders;
28
28
  constructor(callback: any);
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) => void;
32
+ setCrossOrigin: (origin?: string | undefined) => void;
33
+ addHeader: (header: string, value: string) => void;
33
34
  }
34
35
  export interface HandlerAuxBase {
35
36
  [key: string]: any;
@@ -39,7 +40,7 @@ export interface HandlerContext<A extends HandlerAuxBase> {
39
40
  response: HandlerResponse;
40
41
  aux: A;
41
42
  }
42
- export type Handler<A extends HandlerAuxBase> = (context: HandlerContext<A>) => any | Promise<any> | undefined;
43
+ export declare type Handler<A extends HandlerAuxBase> = (context: HandlerContext<A>) => any | Promise<any> | undefined;
43
44
  export interface HandlerPlugin<A extends HandlerAuxBase> {
44
45
  create: () => Promise<A> | A;
45
46
  begin: Handler<A>;
@@ -47,7 +48,7 @@ export interface HandlerPlugin<A extends HandlerAuxBase> {
47
48
  error: Handler<A>;
48
49
  }
49
50
  export declare class HandlerPluginBase<A extends HandlerAuxBase> implements HandlerPlugin<A> {
50
- create: () => Promise<A> | A;
51
+ create: () => A | Promise<A>;
51
52
  begin: (_: HandlerContext<A>) => void;
52
53
  end: (_: HandlerContext<A>) => void;
53
54
  error: (_: HandlerContext<A>) => void;
@@ -1,106 +1,144 @@
1
- import { getLogger } from '../utils/index.js';
2
- const logger = getLogger(__filename);
3
- export class HandlerRequest {
4
- constructor(event, context) {
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) {
5
18
  this.event = event;
6
19
  this.context = context;
7
20
  this.lastError = undefined;
8
21
  }
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) {
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) {
25
50
  return this.event.headers
26
51
  ? this.event.headers[key] || this.event.headers[key.toLowerCase()]
27
52
  : undefined;
28
- }
29
- records(selector) {
30
- const target = (this.event.Records || []);
53
+ };
54
+ HandlerRequest.prototype.records = function (selector) {
55
+ var target = (this.event.Records || []);
31
56
  return selector === undefined ? target : target.map(selector);
32
- }
33
- }
34
- export class HandlerResponse {
35
- constructor(callback) {
36
- this.setCrossOrigin = (origin) => {
37
- this.crossOrigin = origin;
57
+ };
58
+ return HandlerRequest;
59
+ }());
60
+ exports.HandlerRequest = HandlerRequest;
61
+ var CORS_HEADERS = {
62
+ 'Access-Control-Allow-Origin': '*',
63
+ 'Access-Control-Allow-Headers': 'X-Version',
64
+ 'Access-Control-Allow-Credentials': true,
65
+ };
66
+ var HandlerResponse = /** @class */ (function () {
67
+ function HandlerResponse(callback) {
68
+ var _this = this;
69
+ this.setCrossOrigin = function (origin) {
70
+ _this.crossOrigin = origin;
71
+ };
72
+ this.addHeader = function (header, value) {
73
+ _this.customHeaders[header] = value;
38
74
  };
39
75
  this.callback = callback;
40
76
  this.completed = false;
41
- this.corsHeaders = {
42
- 'Access-Control-Allow-Origin': '*',
43
- 'Access-Control-Allow-Headers': 'X-Version',
44
- 'Access-Control-Allow-Credentials': true,
45
- };
46
77
  this.cookies = [];
78
+ this.customHeaders = {};
47
79
  }
48
- ok(body = {}, code = 200) {
49
- logger.stupid(`ok`, body);
50
- const headers = {
51
- ...this.corsHeaders,
52
- };
80
+ HandlerResponse.prototype.ok = function (body, code) {
81
+ if (body === void 0) { body = {}; }
82
+ if (code === void 0) { code = 200; }
83
+ logger.stupid("ok", body);
84
+ var headers = __assign({}, CORS_HEADERS, this.customHeaders);
53
85
  if (this.crossOrigin) {
54
86
  headers['Access-Control-Allow-Origin'] = this.crossOrigin;
55
87
  }
56
- let multiValueHeaders = undefined;
88
+ var multiValueHeaders = undefined;
57
89
  if (this.cookies.length > 0) {
58
90
  multiValueHeaders = { 'Set-Cookie': this.cookies };
59
91
  }
60
- const result = this.callback(null, {
92
+ var result = this.callback(null, {
61
93
  statusCode: code,
62
- headers,
63
- multiValueHeaders,
94
+ headers: headers,
95
+ multiValueHeaders: multiValueHeaders,
64
96
  body: JSON.stringify(body),
65
97
  });
66
98
  this.completed = true;
67
99
  return result;
68
- }
69
- fail(body = {}, code = 500) {
70
- logger.stupid(`fail`, body);
71
- const result = this.callback(null, {
100
+ };
101
+ HandlerResponse.prototype.fail = function (body, code) {
102
+ if (body === void 0) { body = {}; }
103
+ if (code === void 0) { code = 500; }
104
+ logger.stupid("fail", body);
105
+ var result = this.callback(null, {
72
106
  statusCode: code,
73
- headers: this.corsHeaders,
107
+ headers: CORS_HEADERS,
74
108
  body: JSON.stringify(body),
75
109
  });
76
110
  this.completed = true;
77
111
  return result;
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)
112
+ };
113
+ HandlerResponse.prototype.addCookie = function (key, value, domain, specifyCrossOrigin, path) {
114
+ var keyValueStr = key + "=" + value;
115
+ var domainStr = domain ? "Domain=" + domain : '';
116
+ var sameSiteStr = specifyCrossOrigin ? 'SameSite=None' : '';
117
+ var secureStr = specifyCrossOrigin ? 'Secure' : '';
118
+ var pathStr = path !== undefined ? "Path=" + path : '';
119
+ var cookieStr = [keyValueStr, domainStr, sameSiteStr, secureStr, pathStr]
120
+ .filter(function (x) { return x; })
87
121
  .join('; ');
88
122
  this.cookies.push(cookieStr);
89
- }
90
- }
91
- export class HandlerPluginBase {
92
- constructor() {
93
- this.create = () => {
123
+ };
124
+ return HandlerResponse;
125
+ }());
126
+ exports.HandlerResponse = HandlerResponse;
127
+ var HandlerPluginBase = /** @class */ (function () {
128
+ function HandlerPluginBase() {
129
+ this.create = function () {
94
130
  throw new Error('Not yet implemented');
95
131
  };
96
- this.begin = (_) => {
132
+ this.begin = function (_) {
97
133
  // do nothing
98
134
  };
99
- this.end = (_) => {
135
+ this.end = function (_) {
100
136
  // do nothing
101
137
  };
102
- this.error = (_) => {
138
+ this.error = function (_) {
103
139
  // do nothing
104
140
  };
105
141
  }
106
- }
142
+ return HandlerPluginBase;
143
+ }());
144
+ exports.HandlerPluginBase = HandlerPluginBase;
@@ -1,3 +1,3 @@
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;
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;
3
3
  export default build;