@pikku/lambda 0.11.1 → 0.12.1

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 (34) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/http/run-fetch.d.ts +2 -3
  3. package/dist/http/run-fetch.js +2 -5
  4. package/dist/http/run-fetch.js.map +1 -1
  5. package/dist/queue/sqs-worker.d.ts +3 -3
  6. package/dist/queue/sqs-worker.js +4 -8
  7. package/dist/queue/sqs-worker.js.map +1 -1
  8. package/dist/websocket/lambda-channel-handler.d.ts +3 -3
  9. package/dist/websocket/lambda-channel-handler.js +1 -1
  10. package/dist/websocket/lambda-channel-handler.js.map +1 -1
  11. package/dist/websocket/lambda-eventhub-service.d.ts +3 -3
  12. package/dist/websocket/utils.d.ts +5 -5
  13. package/dist/websocket/utils.js +3 -1
  14. package/dist/websocket/utils.js.map +1 -1
  15. package/dist/websocket/websocket-connect.d.ts +3 -4
  16. package/dist/websocket/websocket-connect.js +2 -4
  17. package/dist/websocket/websocket-connect.js.map +1 -1
  18. package/dist/websocket/websocket-disconnect.d.ts +3 -4
  19. package/dist/websocket/websocket-disconnect.js +3 -7
  20. package/dist/websocket/websocket-disconnect.js.map +1 -1
  21. package/dist/websocket/websocket-message.d.ts +3 -4
  22. package/dist/websocket/websocket-message.js +3 -7
  23. package/dist/websocket/websocket-message.js.map +1 -1
  24. package/dist/websocket/websocket-types.d.ts +2 -5
  25. package/package.json +5 -5
  26. package/src/http/run-fetch.ts +3 -22
  27. package/src/queue/sqs-worker.ts +7 -14
  28. package/src/websocket/lambda-channel-handler.ts +5 -5
  29. package/src/websocket/lambda-eventhub-service.ts +4 -4
  30. package/src/websocket/utils.ts +5 -4
  31. package/src/websocket/websocket-connect.ts +5 -24
  32. package/src/websocket/websocket-disconnect.ts +6 -27
  33. package/src/websocket/websocket-message.ts +6 -32
  34. package/src/websocket/websocket-types.ts +2 -18
package/CHANGELOG.md CHANGED
@@ -1,3 +1,27 @@
1
+ ## 0.12.0
2
+
3
+ ## 0.12.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 62a8725: Update `@types/aws-lambda` peer and dev dependency to `^8.10.161` to resolve a `Duplicate identifier 'HttpResponseStream'` TypeScript error that appeared when bundling alongside other AWS SDK packages.
8
+ - Updated dependencies [62a8725]
9
+ - Updated dependencies [a3bdb0d]
10
+ - Updated dependencies [e0349ff]
11
+ - Updated dependencies [62a8725]
12
+ - Updated dependencies [e04531f]
13
+ - Updated dependencies [62a8725]
14
+ - Updated dependencies [a83efb8]
15
+ - Updated dependencies [8eed717]
16
+ - Updated dependencies [62a8725]
17
+ - Updated dependencies [62a8725]
18
+ - Updated dependencies [62a8725]
19
+ - @pikku/core@0.12.1
20
+
21
+ ### New Features
22
+
23
+ - `createWireServices` and `createConfig` are now optional
24
+
1
25
  ## 0.11.0
2
26
 
3
27
  ## 0.11.1
@@ -1,3 +1,2 @@
1
- import { CoreSingletonServices, CoreServices, CreateWireServices, CoreUserSession } from '@pikku/core';
2
- import { APIGatewayEvent, APIGatewayProxyResult } from 'aws-lambda';
3
- export declare const runFetch: <SingletonServices extends CoreSingletonServices, Services extends CoreServices<SingletonServices>, UserSession extends CoreUserSession>(singletonServices: SingletonServices, createWireServices: CreateWireServices<SingletonServices, Services, UserSession>, event: APIGatewayEvent) => Promise<APIGatewayProxyResult>;
1
+ import type { APIGatewayEvent, APIGatewayProxyResult } from 'aws-lambda';
2
+ export declare const runFetch: (event: APIGatewayEvent) => Promise<APIGatewayProxyResult>;
@@ -1,7 +1,7 @@
1
1
  import { PikkuFetchHTTPResponse, fetchData } from '@pikku/core/http';
2
2
  import { responseToLambdaResult } from '../response-converter.js';
3
3
  import { lambdaEventToRequest } from '../request-converter.js';
4
- export const runFetch = async (singletonServices, createWireServices, event) => {
4
+ export const runFetch = async (event) => {
5
5
  const request = lambdaEventToRequest(event);
6
6
  const response = new PikkuFetchHTTPResponse();
7
7
  if (request.method === 'options') {
@@ -11,10 +11,7 @@ export const runFetch = async (singletonServices, createWireServices, event) =>
11
11
  return responseToLambdaResult(response.toResponse());
12
12
  }
13
13
  try {
14
- await fetchData(request, response, {
15
- singletonServices,
16
- createWireServices: createWireServices,
17
- });
14
+ await fetchData(request, response);
18
15
  }
19
16
  catch {
20
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"run-fetch.js","sourceRoot":"","sources":["../../src/http/run-fetch.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAE9D,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAK3B,iBAAoC,EACpC,kBAIC,EACD,KAAsB,EACU,EAAE;IAClC,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAA;IAC3C,MAAM,QAAQ,GAAG,IAAI,sBAAsB,EAAE,CAAA;IAE7C,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,QAAQ,CAAC,MAAM,CACb,8BAA8B,EAC9B,uFAAuF,CACxF,CAAA;QACD,QAAQ,CAAC,MAAM,CACb,8BAA8B,EAC9B,wCAAwC,CACzC,CAAA;QACD,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACpB,OAAO,sBAAsB,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;IACtD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE;YACjC,iBAAiB;YACjB,kBAAkB,EAAE,kBAAyB;SAC9C,CAAC,CAAA;IACJ,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;IAED,OAAO,sBAAsB,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;AACtD,CAAC,CAAA"}
1
+ {"version":3,"file":"run-fetch.js","sourceRoot":"","sources":["../../src/http/run-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAE9D,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAC3B,KAAsB,EACU,EAAE;IAClC,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAA;IAC3C,MAAM,QAAQ,GAAG,IAAI,sBAAsB,EAAE,CAAA;IAE7C,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,QAAQ,CAAC,MAAM,CACb,8BAA8B,EAC9B,uFAAuF,CACxF,CAAA;QACD,QAAQ,CAAC,MAAM,CACb,8BAA8B,EAC9B,wCAAwC,CACzC,CAAA;QACD,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACpB,OAAO,sBAAsB,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;IACtD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACpC,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;IAED,OAAO,sBAAsB,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;AACtD,CAAC,CAAA"}
@@ -1,5 +1,5 @@
1
- import { SQSBatchResponse, SQSEvent, SQSRecord } from 'aws-lambda';
2
- import type { CoreSingletonServices, CreateWireServices } from '@pikku/core';
1
+ import type { SQSBatchResponse, SQSEvent, SQSRecord } from 'aws-lambda';
2
+ import type { Logger } from '@pikku/core/services';
3
3
  import type { QueueJob } from '@pikku/core/queue';
4
4
  export declare function mapSQSRecordToQueueJob(record: SQSRecord, maxAttempts?: number): QueueJob;
5
- export declare const runSQSQueueWorker: (singletonServices: CoreSingletonServices, createWireServices: CreateWireServices<any, any, any> | undefined, event: SQSEvent) => Promise<SQSBatchResponse>;
5
+ export declare const runSQSQueueWorker: (logger: Logger, event: SQSEvent) => Promise<SQSBatchResponse>;
@@ -33,23 +33,19 @@ export function mapSQSRecordToQueueJob(record, maxAttempts) {
33
33
  };
34
34
  return job;
35
35
  }
36
- export const runSQSQueueWorker = async (singletonServices, createWireServices, event) => {
36
+ export const runSQSQueueWorker = async (logger, event) => {
37
37
  console.log(JSON.stringify(event, null, 2));
38
38
  const jobs = event.Records.map(mapSQSRecordToQueueJob);
39
39
  const results = await Promise.allSettled(jobs.map(async (job) => {
40
40
  try {
41
- return await runQueueJob({
42
- singletonServices,
43
- createWireServices,
44
- job,
45
- });
41
+ return await runQueueJob({ job });
46
42
  }
47
43
  catch (error) {
48
44
  if (error instanceof QueueJobFailedError) {
49
45
  throw error;
50
46
  }
51
47
  else if (error instanceof QueueJobDiscardedError) {
52
- singletonServices.logger.info(`SQS job ${job.id} discarded: ${error.message}`);
48
+ logger.info(`SQS job ${job.id} discarded: ${error.message}`);
53
49
  return;
54
50
  }
55
51
  throw error;
@@ -57,7 +53,7 @@ export const runSQSQueueWorker = async (singletonServices, createWireServices, e
57
53
  }));
58
54
  results.forEach((result, index) => {
59
55
  if (result.status === 'rejected') {
60
- singletonServices.logger.error(`Failed to process SQS message ${jobs[index].id}:`, result.reason);
56
+ logger.error(`Failed to process SQS message ${jobs[index].id}:`, result.reason);
61
57
  }
62
58
  });
63
59
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"sqs-worker.js","sourceRoot":"","sources":["../../src/queue/sqs-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqs-worker.js","sourceRoot":"","sources":["../../src/queue/sqs-worker.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ChannelStore, PikkuChannelHandlerFactory } from '@pikku/core/channel';
2
- import { ApiGatewayManagementApiClient } from '@aws-sdk/client-apigatewaymanagementapi';
3
- import { Logger } from '@pikku/core/services';
1
+ import type { ChannelStore, PikkuChannelHandlerFactory } from '@pikku/core/channel';
2
+ import type { ApiGatewayManagementApiClient } from '@aws-sdk/client-apigatewaymanagementapi';
3
+ import type { Logger } from '@pikku/core/services';
4
4
  export declare const createLambdaChannelHandlerFactory: (logger: Logger, channelStore: ChannelStore, callbackAPI: ApiGatewayManagementApiClient) => PikkuChannelHandlerFactory;
@@ -1,4 +1,4 @@
1
- import { PikkuAbstractChannelHandler, } from '@pikku/core/channel';
1
+ import { PikkuAbstractChannelHandler } from '@pikku/core/channel';
2
2
  import { sendMessage } from './utils.js';
3
3
  class LambdaChannelHandler extends PikkuAbstractChannelHandler {
4
4
  logger;
@@ -1 +1 @@
1
- {"version":3,"file":"lambda-channel-handler.js","sourceRoot":"","sources":["../../src/websocket/lambda-channel-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,2BAA2B,GAE5B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAIxC,MAAM,oBAIJ,SAAQ,2BAA6C;IAE3C;IACA;IAFV,YACU,MAAc,EACd,WAA0C,EAClD,SAAiB,EACjB,WAAmB,EACnB,WAAwB;QAExB,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;QANlC,WAAM,GAAN,MAAM,CAAQ;QACd,gBAAW,GAAX,WAAW,CAA+B;IAMpD,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,OAAY,EAAE,QAAkB;QAChD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;QACvE,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QACpC,MAAM,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IACxE,CAAC;CACF;AAED,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAC/C,MAAc,EACd,YAA0B,EAC1B,WAA0C,EAC1C,EAAE;IACF,MAAM,OAAO,GAA+B,CAC1C,SAAS,EACT,WAAW,EACX,WAAW,EACX,EAAE,CACF,IAAI,oBAAoB,CACtB,MAAM,EACN,WAAW,EACX,SAAS,EACT,WAAW,EACX,WAAW,CACZ,CAAA;IACH,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
1
+ {"version":3,"file":"lambda-channel-handler.js","sourceRoot":"","sources":["../../src/websocket/lambda-channel-handler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAIxC,MAAM,oBAIJ,SAAQ,2BAA6C;IAE3C;IACA;IAFV,YACU,MAAc,EACd,WAA0C,EAClD,SAAiB,EACjB,WAAmB,EACnB,WAAwB;QAExB,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;QANlC,WAAM,GAAN,MAAM,CAAQ;QACd,gBAAW,GAAX,WAAW,CAA+B;IAMpD,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,OAAY,EAAE,QAAkB;QAChD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;QACvE,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QACpC,MAAM,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IACxE,CAAC;CACF;AAED,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAC/C,MAAc,EACd,YAA0B,EAC1B,WAA0C,EAC1C,EAAE;IACF,MAAM,OAAO,GAA+B,CAC1C,SAAS,EACT,WAAW,EACX,WAAW,EACX,EAAE,CACF,IAAI,oBAAoB,CACtB,MAAM,EACN,WAAW,EACX,SAAS,EACT,WAAW,EACX,WAAW,CACZ,CAAA;IACH,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
@@ -1,6 +1,6 @@
1
- import { ChannelStore, EventHubService, EventHubStore } from '@pikku/core/channel';
2
- import { Logger } from '@pikku/core/services';
3
- import { APIGatewayEvent } from 'aws-lambda';
1
+ import type { ChannelStore, EventHubService, EventHubStore } from '@pikku/core/channel';
2
+ import type { Logger } from '@pikku/core/services';
3
+ import type { APIGatewayEvent } from 'aws-lambda';
4
4
  export declare class LambdaEventHubService<EventTopics extends Record<string, any> = {}> implements EventHubService<EventTopics> {
5
5
  private logger;
6
6
  private channelStore;
@@ -1,13 +1,13 @@
1
1
  import { ApiGatewayManagementApiClient } from '@aws-sdk/client-apigatewaymanagementapi';
2
- import { Logger } from '@pikku/core/services';
3
- import { APIGatewayEvent } from 'aws-lambda';
4
- import { ChannelStore } from '@pikku/core/channel';
2
+ import type { Logger } from '@pikku/core/services';
3
+ import type { APIGatewayEvent } from 'aws-lambda';
4
+ import type { ChannelStore } from '@pikku/core/channel';
5
5
  export declare const sendMessage: (logger: Logger, callbackAPI: ApiGatewayManagementApiClient, ConnectionId: string, Data: string) => Promise<boolean>;
6
6
  export declare const sendMessages: (logger: Logger, channelStore: ChannelStore, callbackAPI: ApiGatewayManagementApiClient, fromChannelId: string, channelIds: string[], data: unknown, isBinary?: boolean) => Promise<void>;
7
7
  export declare const getApiGatewayManagementApiClient: (logger: Logger, event: APIGatewayEvent) => ApiGatewayManagementApiClient;
8
- export declare const getServerlessDependencies: (logger: Logger, channelStore: ChannelStore, event: APIGatewayEvent) => {
8
+ export declare const getServerlessDependencies: (channelStore: ChannelStore, event: APIGatewayEvent) => {
9
9
  channelId: string;
10
10
  callbackAPI: ApiGatewayManagementApiClient;
11
11
  channelHandlerFactory: import("@pikku/core/channel").PikkuChannelHandlerFactory;
12
- channelStore: ChannelStore<unknown, unknown, import("@pikku/core/dist/index.js").CoreUserSession, import("@pikku/core/channel").Channel<unknown, unknown>>;
12
+ channelStore: ChannelStore<unknown, unknown, import("@pikku/core").CoreUserSession, import("@pikku/core/channel").Channel<unknown, unknown>>;
13
13
  };
@@ -1,4 +1,5 @@
1
1
  import { ApiGatewayManagementApiClient, PostToConnectionCommand, } from '@aws-sdk/client-apigatewaymanagementapi';
2
+ import { getSingletonServices } from '@pikku/core';
2
3
  import { createLambdaChannelHandlerFactory } from './lambda-channel-handler.js';
3
4
  export const sendMessage = async (logger, callbackAPI, ConnectionId, Data) => {
4
5
  try {
@@ -47,7 +48,8 @@ export const getApiGatewayManagementApiClient = (logger, event) => {
47
48
  endpoint,
48
49
  });
49
50
  };
50
- export const getServerlessDependencies = (logger, channelStore, event) => {
51
+ export const getServerlessDependencies = (channelStore, event) => {
52
+ const { logger } = getSingletonServices();
51
53
  const channelId = event.requestContext.connectionId;
52
54
  if (!channelId) {
53
55
  throw new Error('No connectionId found in requestContext');
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/websocket/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/websocket/utils.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import { CoreSingletonServices, CoreServices, CoreUserSession } from '@pikku/core';
2
- import { APIGatewayEvent, APIGatewayProxyResult } from 'aws-lambda';
3
- import { WebsocketParams } from './websocket-types.js';
4
- export declare const connectWebsocket: <SingletonServices extends CoreSingletonServices, Services extends CoreServices<SingletonServices>, UserSession extends CoreUserSession>(event: APIGatewayEvent, { singletonServices, createWireServices, channelStore, }: WebsocketParams<SingletonServices, Services, UserSession>) => Promise<APIGatewayProxyResult>;
1
+ import type { APIGatewayEvent, APIGatewayProxyResult } from 'aws-lambda';
2
+ import type { WebsocketParams } from './websocket-types.js';
3
+ export declare const connectWebsocket: (event: APIGatewayEvent, { channelStore }: WebsocketParams) => Promise<APIGatewayProxyResult>;
@@ -3,16 +3,14 @@ import { responseToLambdaResult } from '../response-converter.js';
3
3
  import { runChannelConnect } from '@pikku/core/channel/serverless';
4
4
  import { getServerlessDependencies } from './utils.js';
5
5
  import { lambdaEventToRequest } from '../request-converter.js';
6
- export const connectWebsocket = async (event, { singletonServices, createWireServices, channelStore, }) => {
7
- const runnerParams = getServerlessDependencies(singletonServices.logger, channelStore, event);
6
+ export const connectWebsocket = async (event, { channelStore }) => {
7
+ const runnerParams = getServerlessDependencies(channelStore, event);
8
8
  const request = new PikkuFetchHTTPRequest(lambdaEventToRequest(event));
9
9
  const response = new PikkuFetchHTTPResponse();
10
10
  await runChannelConnect({
11
11
  ...runnerParams,
12
12
  request,
13
13
  response,
14
- singletonServices: singletonServices,
15
- createWireServices: createWireServices,
16
14
  route: event.path || '/',
17
15
  });
18
16
  return responseToLambdaResult(response.toResponse());
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-connect.js","sourceRoot":"","sources":["../../src/websocket/websocket-connect.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAEhF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAEtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAE9D,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAKnC,KAAsB,EACtB,EACE,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,GAC8C,EAC5B,EAAE;IAClC,MAAM,YAAY,GAAG,yBAAyB,CAC5C,iBAAiB,CAAC,MAAM,EACxB,YAAY,EACZ,KAAK,CACN,CAAA;IACD,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAA;IACtE,MAAM,QAAQ,GAAG,IAAI,sBAAsB,EAAE,CAAA;IAC7C,MAAM,iBAAiB,CAAC;QACtB,GAAG,YAAY;QACf,OAAO;QACP,QAAQ;QACR,iBAAiB,EAAE,iBAAwB;QAC3C,kBAAkB,EAAE,kBAAyB;QAC7C,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,GAAG;KACzB,CAAC,CAAA;IACF,OAAO,sBAAsB,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;AACtD,CAAC,CAAA"}
1
+ {"version":3,"file":"websocket-connect.js","sourceRoot":"","sources":["../../src/websocket/websocket-connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAEhF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAEtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAE9D,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,KAAsB,EACtB,EAAE,YAAY,EAAmB,EACD,EAAE;IAClC,MAAM,YAAY,GAAG,yBAAyB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;IACnE,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAA;IACtE,MAAM,QAAQ,GAAG,IAAI,sBAAsB,EAAE,CAAA;IAC7C,MAAM,iBAAiB,CAAC;QACtB,GAAG,YAAY;QACf,OAAO;QACP,QAAQ;QACR,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,GAAG;KACzB,CAAC,CAAA;IACF,OAAO,sBAAsB,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;AACtD,CAAC,CAAA"}
@@ -1,4 +1,3 @@
1
- import { CoreSingletonServices, CoreServices, CoreUserSession } from '@pikku/core';
2
- import { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda';
3
- import { WebsocketParams } from './websocket-types.js';
4
- export declare const disconnectWebsocket: <SingletonServices extends CoreSingletonServices, Services extends CoreServices<SingletonServices>, UserSession extends CoreUserSession>(event: APIGatewayProxyEvent, { singletonServices, createWireServices, channelStore, }: WebsocketParams<SingletonServices, Services, UserSession>) => Promise<APIGatewayProxyResult>;
1
+ import type { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda';
2
+ import type { WebsocketParams } from './websocket-types.js';
3
+ export declare const disconnectWebsocket: (event: APIGatewayProxyEvent, { channelStore }: WebsocketParams) => Promise<APIGatewayProxyResult>;
@@ -1,12 +1,8 @@
1
1
  import { runChannelDisconnect } from '@pikku/core/channel/serverless';
2
2
  import { getServerlessDependencies } from './utils.js';
3
- export const disconnectWebsocket = async (event, { singletonServices, createWireServices, channelStore, }) => {
4
- const runnerParams = getServerlessDependencies(singletonServices.logger, channelStore, event);
5
- await runChannelDisconnect({
6
- ...runnerParams,
7
- singletonServices: singletonServices,
8
- createWireServices: createWireServices,
9
- });
3
+ export const disconnectWebsocket = async (event, { channelStore }) => {
4
+ const runnerParams = getServerlessDependencies(channelStore, event);
5
+ await runChannelDisconnect(runnerParams);
10
6
  return { statusCode: 200, body: '' };
11
7
  };
12
8
  //# sourceMappingURL=websocket-disconnect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-disconnect.js","sourceRoot":"","sources":["../../src/websocket/websocket-disconnect.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAGrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAGtD,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAKtC,KAA2B,EAC3B,EACE,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,GAC8C,EAC5B,EAAE;IAClC,MAAM,YAAY,GAAG,yBAAyB,CAC5C,iBAAiB,CAAC,MAAM,EACxB,YAAY,EACZ,KAAK,CACN,CAAA;IACD,MAAM,oBAAoB,CAAC;QACzB,GAAG,YAAY;QACf,iBAAiB,EAAE,iBAAwB;QAC3C,kBAAkB,EAAE,kBAAyB;KAC9C,CAAC,CAAA;IACF,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;AACtC,CAAC,CAAA"}
1
+ {"version":3,"file":"websocket-disconnect.js","sourceRoot":"","sources":["../../src/websocket/websocket-disconnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAGrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAGtD,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,KAA2B,EAC3B,EAAE,YAAY,EAAmB,EACD,EAAE;IAClC,MAAM,YAAY,GAAG,yBAAyB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;IACnE,MAAM,oBAAoB,CAAC,YAAY,CAAC,CAAA;IACxC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;AACtC,CAAC,CAAA"}
@@ -1,4 +1,3 @@
1
- import { CoreSingletonServices, CoreServices, CoreUserSession } from '@pikku/core';
2
- import { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda';
3
- import { WebsocketParams } from './websocket-types.js';
4
- export declare const processWebsocketMessage: <SingletonServices extends CoreSingletonServices, Services extends CoreServices<SingletonServices>, UserSession extends CoreUserSession>(event: APIGatewayProxyEvent, { singletonServices, createWireServices, channelStore, }: WebsocketParams<SingletonServices, Services, UserSession>) => Promise<APIGatewayProxyResult>;
1
+ import type { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda';
2
+ import type { WebsocketParams } from './websocket-types.js';
3
+ export declare const processWebsocketMessage: (event: APIGatewayProxyEvent, { channelStore }: WebsocketParams) => Promise<APIGatewayProxyResult>;
@@ -2,15 +2,11 @@ import { PikkuFetchHTTPResponse } from '@pikku/core/http';
2
2
  import { runChannelMessage } from '@pikku/core/channel/serverless';
3
3
  import { getServerlessDependencies } from './utils.js';
4
4
  import { responseToLambdaResult } from '../response-converter.js';
5
- export const processWebsocketMessage = async (event, { singletonServices, createWireServices, channelStore, }) => {
6
- const runnerParams = getServerlessDependencies(singletonServices.logger, channelStore, event);
5
+ export const processWebsocketMessage = async (event, { channelStore }) => {
6
+ const runnerParams = getServerlessDependencies(channelStore, event);
7
7
  const response = new PikkuFetchHTTPResponse();
8
8
  try {
9
- const result = await runChannelMessage({
10
- ...runnerParams,
11
- singletonServices: singletonServices,
12
- createWireServices: createWireServices,
13
- }, event.body);
9
+ const result = await runChannelMessage(runnerParams, event.body);
14
10
  if (result) {
15
11
  response.json(result);
16
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-message.js","sourceRoot":"","sources":["../../src/websocket/websocket-message.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAElE,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAEtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAEjE,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAK1C,KAA2B,EAC3B,EACE,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,GAC8C,EAC5B,EAAE;IAClC,MAAM,YAAY,GAAG,yBAAyB,CAC5C,iBAAiB,CAAC,MAAM,EACxB,YAAY,EACZ,KAAK,CACN,CAAA;IACD,MAAM,QAAQ,GAAG,IAAI,sBAAsB,EAAE,CAAA;IAC7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CACpC;YACE,GAAG,YAAY;YACf,iBAAiB,EAAE,iBAAwB;YAC3C,kBAAkB,EAAE,kBAAyB;SAC9C,EACD,KAAK,CAAC,IAAI,CACX,CAAA;QACD,IAAI,MAAM,EAAE,CAAC;YAEX,QAAQ,CAAC,IAAI,CAAC,MAAa,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QAEX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAClB,CAAC;IACD,OAAO,sBAAsB,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;AACtD,CAAC,CAAA"}
1
+ {"version":3,"file":"websocket-message.js","sourceRoot":"","sources":["../../src/websocket/websocket-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAElE,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAEtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAEjE,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,KAA2B,EAC3B,EAAE,YAAY,EAAmB,EACD,EAAE;IAClC,MAAM,YAAY,GAAG,yBAAyB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;IACnE,MAAM,QAAQ,GAAG,IAAI,sBAAsB,EAAE,CAAA;IAC7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QAChE,IAAI,MAAM,EAAE,CAAC;YACX,QAAQ,CAAC,IAAI,CAAC,MAAa,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAClB,CAAC;IACD,OAAO,sBAAsB,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;AACtD,CAAC,CAAA"}
@@ -1,7 +1,4 @@
1
- import { CoreSingletonServices, CoreServices, CoreUserSession, CreateWireServices } from '@pikku/core';
2
- import { ChannelStore } from '@pikku/core/channel';
3
- export type WebsocketParams<SingletonServices extends CoreSingletonServices, Services extends CoreServices<SingletonServices>, UserSession extends CoreUserSession> = {
1
+ import type { ChannelStore } from '@pikku/core/channel';
2
+ export type WebsocketParams = {
4
3
  channelStore: ChannelStore;
5
- singletonServices: SingletonServices;
6
- createWireServices?: CreateWireServices<SingletonServices, Services, UserSession>;
7
4
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pikku/lambda",
3
- "version": "0.11.1",
3
+ "version": "0.12.1",
4
4
  "license": "MIT",
5
5
  "author": "yasser.fadl@gmail.com",
6
6
  "module": "dist/index.js",
@@ -23,12 +23,12 @@
23
23
  },
24
24
  "peerDependencies": {
25
25
  "@aws-sdk/client-apigatewaymanagementapi": "^3.713.0",
26
- "@pikku/core": "^0.11.1",
27
- "@types/aws-lambda": "^8.10.159"
26
+ "@pikku/core": "^0.12.1",
27
+ "@types/aws-lambda": "^8.10.161"
28
28
  },
29
29
  "devDependencies": {
30
- "@aws-sdk/client-apigatewaymanagementapi": "^3.934.0",
31
- "@types/aws-lambda": "^8.10.159",
30
+ "@aws-sdk/client-apigatewaymanagementapi": "^3.985.0",
31
+ "@types/aws-lambda": "^8.10.161",
32
32
  "typescript": "^5.9.3"
33
33
  },
34
34
  "engines": {
@@ -1,25 +1,9 @@
1
- import {
2
- CoreSingletonServices,
3
- CoreServices,
4
- CreateWireServices,
5
- CoreUserSession,
6
- } from '@pikku/core'
7
1
  import { PikkuFetchHTTPResponse, fetchData } from '@pikku/core/http'
8
- import { APIGatewayEvent, APIGatewayProxyResult } from 'aws-lambda'
2
+ import type { APIGatewayEvent, APIGatewayProxyResult } from 'aws-lambda'
9
3
  import { responseToLambdaResult } from '../response-converter.js'
10
4
  import { lambdaEventToRequest } from '../request-converter.js'
11
5
 
12
- export const runFetch = async <
13
- SingletonServices extends CoreSingletonServices,
14
- Services extends CoreServices<SingletonServices>,
15
- UserSession extends CoreUserSession,
16
- >(
17
- singletonServices: SingletonServices,
18
- createWireServices: CreateWireServices<
19
- SingletonServices,
20
- Services,
21
- UserSession
22
- >,
6
+ export const runFetch = async (
23
7
  event: APIGatewayEvent
24
8
  ): Promise<APIGatewayProxyResult> => {
25
9
  const request = lambdaEventToRequest(event)
@@ -39,10 +23,7 @@ export const runFetch = async <
39
23
  }
40
24
 
41
25
  try {
42
- await fetchData(request, response, {
43
- singletonServices,
44
- createWireServices: createWireServices as any,
45
- })
26
+ await fetchData(request, response)
46
27
  } catch {
47
28
  // Error should have already been handled by fetch
48
29
  }
@@ -1,10 +1,10 @@
1
- import { SQSBatchResponse, SQSEvent, SQSRecord } from 'aws-lambda'
1
+ import type { SQSBatchResponse, SQSEvent, SQSRecord } from 'aws-lambda'
2
2
  import {
3
3
  runQueueJob,
4
4
  QueueJobFailedError,
5
5
  QueueJobDiscardedError,
6
6
  } from '@pikku/core/queue'
7
- import type { CoreSingletonServices, CreateWireServices } from '@pikku/core'
7
+ import type { Logger } from '@pikku/core/services'
8
8
  import type { QueueJob, QueueJobStatus } from '@pikku/core/queue'
9
9
 
10
10
  /**
@@ -57,8 +57,7 @@ export function mapSQSRecordToQueueJob(
57
57
  * Create an SQS handler that processes queue jobs using Pikku
58
58
  */
59
59
  export const runSQSQueueWorker = async (
60
- singletonServices: CoreSingletonServices,
61
- createWireServices: CreateWireServices<any, any, any> | undefined,
60
+ logger: Logger,
62
61
  event: SQSEvent
63
62
  ): Promise<SQSBatchResponse> => {
64
63
  console.log(JSON.stringify(event, null, 2))
@@ -68,21 +67,15 @@ export const runSQSQueueWorker = async (
68
67
  const results = await Promise.allSettled(
69
68
  jobs.map(async (job) => {
70
69
  try {
71
- return await runQueueJob({
72
- singletonServices,
73
- createWireServices,
74
- job,
75
- })
70
+ return await runQueueJob({ job })
76
71
  } catch (error: unknown) {
77
72
  if (error instanceof QueueJobFailedError) {
78
73
  // Let SQS handle this as a failed job (will go to retry or DLQ)
79
74
  throw error
80
75
  } else if (error instanceof QueueJobDiscardedError) {
81
76
  // For SQS, discarding means completing successfully (no retry)
82
- singletonServices.logger.info(
83
- `SQS job ${job.id} discarded: ${error.message}`
84
- )
85
- return // Successfully "completed" by discarding
77
+ logger.info(`SQS job ${job.id} discarded: ${error.message}`)
78
+ return
86
79
  }
87
80
  throw error
88
81
  }
@@ -92,7 +85,7 @@ export const runSQSQueueWorker = async (
92
85
  // Log any failures but don't throw (SQS will handle retries)
93
86
  results.forEach((result, index) => {
94
87
  if (result.status === 'rejected') {
95
- singletonServices.logger.error(
88
+ logger.error(
96
89
  `Failed to process SQS message ${jobs[index]!.id}:`,
97
90
  result.reason
98
91
  )
@@ -1,12 +1,12 @@
1
- import { CoreUserSession } from '@pikku/core'
2
- import {
1
+ import type { CoreUserSession } from '@pikku/core'
2
+ import type {
3
3
  ChannelStore,
4
- PikkuAbstractChannelHandler,
5
4
  PikkuChannelHandlerFactory,
6
5
  } from '@pikku/core/channel'
6
+ import { PikkuAbstractChannelHandler } from '@pikku/core/channel'
7
7
  import { sendMessage } from './utils.js'
8
- import { ApiGatewayManagementApiClient } from '@aws-sdk/client-apigatewaymanagementapi'
9
- import { Logger } from '@pikku/core/services'
8
+ import type { ApiGatewayManagementApiClient } from '@aws-sdk/client-apigatewaymanagementapi'
9
+ import type { Logger } from '@pikku/core/services'
10
10
 
11
11
  class LambdaChannelHandler<
12
12
  UserSession extends CoreUserSession = CoreUserSession,
@@ -1,12 +1,12 @@
1
- import { ApiGatewayManagementApiClient } from '@aws-sdk/client-apigatewaymanagementapi'
2
- import {
1
+ import type { ApiGatewayManagementApiClient } from '@aws-sdk/client-apigatewaymanagementapi'
2
+ import type {
3
3
  ChannelStore,
4
4
  EventHubService,
5
5
  EventHubStore,
6
6
  } from '@pikku/core/channel'
7
7
  import { getApiGatewayManagementApiClient, sendMessages } from './utils.js'
8
- import { Logger } from '@pikku/core/services'
9
- import { APIGatewayEvent } from 'aws-lambda'
8
+ import type { Logger } from '@pikku/core/services'
9
+ import type { APIGatewayEvent } from 'aws-lambda'
10
10
 
11
11
  export class LambdaEventHubService<EventTopics extends Record<string, any> = {}>
12
12
  implements EventHubService<EventTopics>
@@ -2,10 +2,11 @@ import {
2
2
  ApiGatewayManagementApiClient,
3
3
  PostToConnectionCommand,
4
4
  } from '@aws-sdk/client-apigatewaymanagementapi'
5
- import { Logger } from '@pikku/core/services'
6
- import { APIGatewayEvent } from 'aws-lambda'
5
+ import type { Logger } from '@pikku/core/services'
6
+ import { getSingletonServices } from '@pikku/core'
7
+ import type { APIGatewayEvent } from 'aws-lambda'
7
8
  import { createLambdaChannelHandlerFactory } from './lambda-channel-handler.js'
8
- import { ChannelStore } from '@pikku/core/channel'
9
+ import type { ChannelStore } from '@pikku/core/channel'
9
10
 
10
11
  export const sendMessage = async (
11
12
  logger: Logger,
@@ -77,10 +78,10 @@ export const getApiGatewayManagementApiClient = (
77
78
  }
78
79
 
79
80
  export const getServerlessDependencies = (
80
- logger: Logger,
81
81
  channelStore: ChannelStore,
82
82
  event: APIGatewayEvent
83
83
  ) => {
84
+ const { logger } = getSingletonServices()
84
85
  const channelId = event.requestContext.connectionId
85
86
  if (!channelId) {
86
87
  throw new Error('No connectionId found in requestContext')
@@ -1,41 +1,22 @@
1
- import {
2
- CoreSingletonServices,
3
- CoreServices,
4
- CoreUserSession,
5
- } from '@pikku/core'
6
1
  import { PikkuFetchHTTPRequest, PikkuFetchHTTPResponse } from '@pikku/core/http'
7
- import { APIGatewayEvent, APIGatewayProxyResult } from 'aws-lambda'
2
+ import type { APIGatewayEvent, APIGatewayProxyResult } from 'aws-lambda'
8
3
  import { responseToLambdaResult } from '../response-converter.js'
9
4
  import { runChannelConnect } from '@pikku/core/channel/serverless'
10
5
  import { getServerlessDependencies } from './utils.js'
11
- import { WebsocketParams } from './websocket-types.js'
6
+ import type { WebsocketParams } from './websocket-types.js'
12
7
  import { lambdaEventToRequest } from '../request-converter.js'
13
8
 
14
- export const connectWebsocket = async <
15
- SingletonServices extends CoreSingletonServices,
16
- Services extends CoreServices<SingletonServices>,
17
- UserSession extends CoreUserSession,
18
- >(
9
+ export const connectWebsocket = async (
19
10
  event: APIGatewayEvent,
20
- {
21
- singletonServices,
22
- createWireServices,
23
- channelStore,
24
- }: WebsocketParams<SingletonServices, Services, UserSession>
11
+ { channelStore }: WebsocketParams
25
12
  ): Promise<APIGatewayProxyResult> => {
26
- const runnerParams = getServerlessDependencies(
27
- singletonServices.logger,
28
- channelStore,
29
- event
30
- )
13
+ const runnerParams = getServerlessDependencies(channelStore, event)
31
14
  const request = new PikkuFetchHTTPRequest(lambdaEventToRequest(event))
32
15
  const response = new PikkuFetchHTTPResponse()
33
16
  await runChannelConnect({
34
17
  ...runnerParams,
35
18
  request,
36
19
  response,
37
- singletonServices: singletonServices as any,
38
- createWireServices: createWireServices as any,
39
20
  route: event.path || '/',
40
21
  })
41
22
  return responseToLambdaResult(response.toResponse())
@@ -1,35 +1,14 @@
1
- import {
2
- CoreSingletonServices,
3
- CoreServices,
4
- CoreUserSession,
5
- } from '@pikku/core'
6
1
  import { runChannelDisconnect } from '@pikku/core/channel/serverless'
7
- import { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda'
2
+ import type { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda'
8
3
 
9
4
  import { getServerlessDependencies } from './utils.js'
10
- import { WebsocketParams } from './websocket-types.js'
5
+ import type { WebsocketParams } from './websocket-types.js'
11
6
 
12
- export const disconnectWebsocket = async <
13
- SingletonServices extends CoreSingletonServices,
14
- Services extends CoreServices<SingletonServices>,
15
- UserSession extends CoreUserSession,
16
- >(
7
+ export const disconnectWebsocket = async (
17
8
  event: APIGatewayProxyEvent,
18
- {
19
- singletonServices,
20
- createWireServices,
21
- channelStore,
22
- }: WebsocketParams<SingletonServices, Services, UserSession>
9
+ { channelStore }: WebsocketParams
23
10
  ): Promise<APIGatewayProxyResult> => {
24
- const runnerParams = getServerlessDependencies(
25
- singletonServices.logger,
26
- channelStore,
27
- event
28
- )
29
- await runChannelDisconnect({
30
- ...runnerParams,
31
- singletonServices: singletonServices as any,
32
- createWireServices: createWireServices as any,
33
- })
11
+ const runnerParams = getServerlessDependencies(channelStore, event)
12
+ await runChannelDisconnect(runnerParams)
34
13
  return { statusCode: 200, body: '' }
35
14
  }
@@ -1,48 +1,22 @@
1
- import {
2
- CoreSingletonServices,
3
- CoreServices,
4
- CoreUserSession,
5
- } from '@pikku/core'
6
1
  import { PikkuFetchHTTPResponse } from '@pikku/core/http'
7
2
  import { runChannelMessage } from '@pikku/core/channel/serverless'
8
- import { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda'
3
+ import type { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda'
9
4
  import { getServerlessDependencies } from './utils.js'
10
- import { WebsocketParams } from './websocket-types.js'
5
+ import type { WebsocketParams } from './websocket-types.js'
11
6
  import { responseToLambdaResult } from '../response-converter.js'
12
7
 
13
- export const processWebsocketMessage = async <
14
- SingletonServices extends CoreSingletonServices,
15
- Services extends CoreServices<SingletonServices>,
16
- UserSession extends CoreUserSession,
17
- >(
8
+ export const processWebsocketMessage = async (
18
9
  event: APIGatewayProxyEvent,
19
- {
20
- singletonServices,
21
- createWireServices,
22
- channelStore,
23
- }: WebsocketParams<SingletonServices, Services, UserSession>
10
+ { channelStore }: WebsocketParams
24
11
  ): Promise<APIGatewayProxyResult> => {
25
- const runnerParams = getServerlessDependencies(
26
- singletonServices.logger,
27
- channelStore,
28
- event
29
- )
12
+ const runnerParams = getServerlessDependencies(channelStore, event)
30
13
  const response = new PikkuFetchHTTPResponse()
31
14
  try {
32
- const result = await runChannelMessage(
33
- {
34
- ...runnerParams,
35
- singletonServices: singletonServices as any,
36
- createWireServices: createWireServices as any,
37
- },
38
- event.body
39
- )
15
+ const result = await runChannelMessage(runnerParams, event.body)
40
16
  if (result) {
41
- // TODO: Support non json
42
17
  response.json(result as any)
43
18
  }
44
19
  } catch (e) {
45
- // Error should have already been handled by fetch
46
20
  console.error(e)
47
21
  }
48
22
  return responseToLambdaResult(response.toResponse())
@@ -1,21 +1,5 @@
1
- import {
2
- CoreSingletonServices,
3
- CoreServices,
4
- CoreUserSession,
5
- CreateWireServices,
6
- } from '@pikku/core'
7
- import { ChannelStore } from '@pikku/core/channel'
1
+ import type { ChannelStore } from '@pikku/core/channel'
8
2
 
9
- export type WebsocketParams<
10
- SingletonServices extends CoreSingletonServices,
11
- Services extends CoreServices<SingletonServices>,
12
- UserSession extends CoreUserSession,
13
- > = {
3
+ export type WebsocketParams = {
14
4
  channelStore: ChannelStore
15
- singletonServices: SingletonServices
16
- createWireServices?: CreateWireServices<
17
- SingletonServices,
18
- Services,
19
- UserSession
20
- >
21
5
  }