@yopdev/dev-server 1.3.7 → 1.3.9

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.
@@ -1,8 +1,10 @@
1
- import { SNSMessageAttributes, SQSEvent } from 'aws-lambda';
1
+ import { SNSMessageAttributes, SQSEvent, SQSRecord } from 'aws-lambda';
2
+ import { Message } from '@aws-sdk/client-sqs';
2
3
  import { Service } from './services';
3
4
  export declare const newEventsProxy: (name: string, config: {
4
5
  handlers: EventHandler[];
5
6
  topic?: string;
7
+ mapper?: (message: Message) => SQSRecord;
6
8
  }) => Service<void>;
7
9
  export type EventHandler = {
8
10
  name: string;
@@ -43,13 +43,14 @@ var logging_1 = require("@yopdev/logging");
43
43
  var stoppable_1 = require("./stoppable");
44
44
  var assert_1 = require("./assert");
45
45
  var services_1 = require("./services");
46
- var newEventsProxy = function (name, config) { return new services_1.Service(new EventsProxy(name, config.handlers, config.topic)); };
46
+ var newEventsProxy = function (name, config) { var _a; return new services_1.Service(new EventsProxy(name, config.handlers, (_a = config.mapper) !== null && _a !== void 0 ? _a : mappers_1.mapToLambdaSqsRecord, config.topic)); };
47
47
  exports.newEventsProxy = newEventsProxy;
48
48
  var EventsProxy = /** @class */ (function () {
49
- function EventsProxy(name, handlers, topic) {
49
+ function EventsProxy(name, handlers, mapper, topic) {
50
50
  var _this = this;
51
51
  this.name = name;
52
52
  this.handlers = handlers;
53
+ this.mapper = mapper;
53
54
  this.topic = topic;
54
55
  this.pollingFrequency = 1;
55
56
  this.stopped = true;
@@ -101,7 +102,7 @@ var EventsProxy = /** @class */ (function () {
101
102
  if (handlers.length === 0) {
102
103
  _this.LOGGER.warn('no handlers found for message %o', message);
103
104
  }
104
- var record = (0, mappers_1.mapToLambdaSqsRecord)(message);
105
+ var record = _this.mapper(message);
105
106
  handlers.forEach(function (handler) {
106
107
  return handler
107
108
  .handler({ Records: [record] })
@@ -14,6 +14,7 @@ export { lazy, promised } from './deferred';
14
14
  export { Lifecycle, Service } from './services';
15
15
  export { DevServerConfig } from './config';
16
16
  export { Route } from './lambda-http-proxy';
17
+ export { mapToLambdaEvent as defaultApiGatewayLambdaMapper, mapToLambdaSqsRecord as defaultSqsLambdaMapper } from './mappers';
17
18
  declare global {
18
19
  interface Promise<T> {
19
20
  tap(onfulfilled?: (value: T) => void, onrejected?: (reason: unknown) => void): Promise<T>;
package/dist/src/index.js CHANGED
@@ -36,7 +36,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
36
36
  }
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.Service = exports.promised = exports.lazy = exports.oneThenOther = exports.allOf = exports.tunnel = exports.container = exports.dynamoDbTable = exports.preTrafficHooks = exports.scheduledTasks = exports.eventsProxy = exports.internalQueue = exports.snsHttpProxy = exports.lambdaHttpProxy = exports.httpServer = exports.DevServer = void 0;
39
+ exports.defaultSqsLambdaMapper = exports.defaultApiGatewayLambdaMapper = exports.Service = exports.promised = exports.lazy = exports.oneThenOther = exports.allOf = exports.tunnel = exports.container = exports.dynamoDbTable = exports.preTrafficHooks = exports.scheduledTasks = exports.eventsProxy = exports.internalQueue = exports.snsHttpProxy = exports.lambdaHttpProxy = exports.httpServer = exports.DevServer = void 0;
40
40
  var dev_server_1 = require("./dev-server");
41
41
  Object.defineProperty(exports, "DevServer", { enumerable: true, get: function () { return dev_server_1.DevServer; } });
42
42
  var http_server_1 = require("./http-server");
@@ -67,6 +67,9 @@ Object.defineProperty(exports, "lazy", { enumerable: true, get: function () { re
67
67
  Object.defineProperty(exports, "promised", { enumerable: true, get: function () { return deferred_1.promised; } });
68
68
  var services_1 = require("./services");
69
69
  Object.defineProperty(exports, "Service", { enumerable: true, get: function () { return services_1.Service; } });
70
+ var mappers_1 = require("./mappers");
71
+ Object.defineProperty(exports, "defaultApiGatewayLambdaMapper", { enumerable: true, get: function () { return mappers_1.mapToLambdaEvent; } });
72
+ Object.defineProperty(exports, "defaultSqsLambdaMapper", { enumerable: true, get: function () { return mappers_1.mapToLambdaSqsRecord; } });
70
73
  Promise.prototype.tap = function (onfulfilled, onrejected) {
71
74
  return __awaiter(this, void 0, void 0, function () {
72
75
  var _this = this;
@@ -1,9 +1,11 @@
1
1
  import { Queue } from "./sqs";
2
- import { SQSEvent } from "aws-lambda";
2
+ import { SQSEvent, SQSRecord } from "aws-lambda";
3
3
  import { Service, Callback } from "./services";
4
+ import { Message } from "@aws-sdk/client-sqs";
4
5
  export declare const newInternalQueue: (name: string, config: {
5
6
  index: number;
6
7
  visibility: number;
7
8
  handler: (queue: Queue) => (e: SQSEvent) => Promise<void>;
8
9
  fifo: boolean;
10
+ mapper?: (message: Message) => SQSRecord;
9
11
  }, callback?: Callback<string>) => Service<string>;
@@ -42,15 +42,19 @@ var sqs_consumer_1 = require("sqs-consumer");
42
42
  var stoppable_1 = require("./stoppable");
43
43
  var mappers_1 = require("./mappers");
44
44
  var services_1 = require("./services");
45
- var newInternalQueue = function (name, config, callback) { return new services_1.Service(new InternalQueue(name, config.visibility, config.handler, config.index, function (sqs) { return config.fifo ? sqs.createFifoQueue : sqs.createStandardQueue; }), callback); };
45
+ var newInternalQueue = function (name, config, callback) {
46
+ var _a;
47
+ return new services_1.Service(new InternalQueue(name, config.visibility, config.handler, config.index, function (sqs) { return config.fifo ? sqs.createFifoQueue : sqs.createStandardQueue; }, (_a = config.mapper) !== null && _a !== void 0 ? _a : mappers_1.mapToLambdaSqsRecord), callback);
48
+ };
46
49
  exports.newInternalQueue = newInternalQueue;
47
50
  var InternalQueue = /** @class */ (function () {
48
- function InternalQueue(name, visibility, handler, index, creator) {
51
+ function InternalQueue(name, visibility, handler, index, creator, mapper) {
49
52
  var _this = this;
50
53
  this.name = name;
51
54
  this.visibility = visibility;
52
55
  this.handler = handler;
53
56
  this.creator = creator;
57
+ this.mapper = mapper;
54
58
  this.start = function (config) { return _this.create(config.sqs); };
55
59
  this.create = function (sqs) { return __awaiter(_this, void 0, void 0, function () {
56
60
  var _this = this;
@@ -69,7 +73,7 @@ var InternalQueue = /** @class */ (function () {
69
73
  waitTimeSeconds: visibility,
70
74
  sqs: sqs,
71
75
  handleMessage: function (message) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
72
- return [2 /*return*/, handler({ Records: [(0, mappers_1.mapToLambdaSqsRecord)(message)] })];
76
+ return [2 /*return*/, handler({ Records: [this.mapper(message)] })];
73
77
  }); }); },
74
78
  }))
75
79
  .then(function (consumer) {
@@ -1,9 +1,11 @@
1
1
  import { HttpSettings } from "./http-server";
2
2
  import { APIGatewayProxyEvent, APIGatewayProxyResult } from "aws-lambda";
3
+ import { IncomingMessage } from "http";
3
4
  import { Service, Callback } from "./services";
4
5
  export declare const newLambdaHttpProxy: (name: string, config: {
5
6
  settings: HttpSettings;
6
7
  routes: Route[];
8
+ mapper?: (request: IncomingMessage, body: string) => APIGatewayProxyEvent;
7
9
  }, callback?: Callback<string>) => Service<string>;
8
10
  export type Route = {
9
11
  method: RegExp;
@@ -42,18 +42,19 @@ var http_server_1 = require("./http-server");
42
42
  var mappers_1 = require("./mappers");
43
43
  var responses_1 = require("./responses");
44
44
  var services_1 = require("./services");
45
- var newLambdaHttpProxy = function (name, config, callback) { return new services_1.Service(new LambdaHttpProxy(name, config.settings, config.routes), callback); };
45
+ var newLambdaHttpProxy = function (name, config, callback) { var _a; return new services_1.Service(new LambdaHttpProxy(name, config.settings, config.routes, (_a = config.mapper) !== null && _a !== void 0 ? _a : mappers_1.mapToLambdaEvent), callback); };
46
46
  exports.newLambdaHttpProxy = newLambdaHttpProxy;
47
47
  var LambdaHttpProxy = /** @class */ (function () {
48
- function LambdaHttpProxy(name, settings, routes) {
48
+ function LambdaHttpProxy(name, settings, routes, mapper) {
49
49
  var _this = this;
50
50
  this.name = name;
51
51
  this.routes = routes;
52
+ this.mapper = mapper;
52
53
  this.start = function () { return _this.server.start(); };
53
54
  this.stop = function () { return _this.server.stop(); };
54
55
  this.handler = function (lambdaHandler) {
55
56
  return function (request, body, response) {
56
- return lambdaHandler((0, mappers_1.mapToLambdaEvent)(request, body))
57
+ return lambdaHandler(_this.mapper(request, body))
57
58
  .then(function (lambda) {
58
59
  var _a, _b, _c, _d, _e, _f;
59
60
  return (0, responses_1.writeResponse)(response, lambda.statusCode, lambda.body, (_c = (_b = (_a = lambda.headers) === null || _a === void 0 ? void 0 : _a['Content-Type']) === null || _b === void 0 ? void 0 : _b.toString()) !== null && _c !== void 0 ? _c : undefined, (_f = (_e = (_d = lambda.headers) === null || _d === void 0 ? void 0 : _d['Location']) === null || _e === void 0 ? void 0 : _e.toString()) !== null && _f !== void 0 ? _f : undefined);
package/dist/src/s3.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { S3Client } from '@aws-sdk/client-s3';
1
+ import { CORSConfiguration, S3Client } from '@aws-sdk/client-s3';
2
2
  import { AwsConfig } from './config';
3
3
  export declare class S3 {
4
4
  readonly client: S3Client;
5
5
  constructor(aws: AwsConfig);
6
- createBucket: (name: string) => Promise<import("@aws-sdk/client-s3").CreateBucketCommandOutput>;
6
+ createBucket: (name: string, cors?: CORSConfiguration) => Promise<import("@aws-sdk/client-s3").PutBucketCorsCommandOutput>;
7
7
  }
package/dist/src/s3.js CHANGED
@@ -54,11 +54,16 @@ var LOGGER = logging_1.LoggerFactory.create('S3');
54
54
  var S3 = /** @class */ (function () {
55
55
  function S3(aws) {
56
56
  var _this = this;
57
- this.createBucket = function (name) { return __awaiter(_this, void 0, void 0, function () {
57
+ this.createBucket = function (name, cors) { return __awaiter(_this, void 0, void 0, function () {
58
+ var _this = this;
58
59
  return __generator(this, function (_a) {
59
60
  return [2 /*return*/, this.client.send(new client_s3_1.CreateBucketCommand({
60
61
  Bucket: name,
61
62
  }))
63
+ .then(function () { return cors && _this.client.send(new client_s3_1.PutBucketCorsCommand({
64
+ Bucket: name,
65
+ CORSConfiguration: cors
66
+ })); })
62
67
  .tap(function () { return LOGGER.debug('bucket %s created', name); })];
63
68
  });
64
69
  }); };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yopdev/dev-server",
3
- "version": "1.3.7",
3
+ "version": "1.3.9",
4
4
  "scripts": {
5
5
  "compile": "tsc",
6
6
  "pretest": "npm run compile",