@gahojin-inc/aws-lambda-mock-context 2024.10.0 → 2024.10.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.
- package/dist/cjs/index.cjs +9 -6
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/index.mjs +9 -6
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -4
package/dist/cjs/index.cjs
CHANGED
|
@@ -5,7 +5,7 @@ var uuid = require('uuid');
|
|
|
5
5
|
/**
|
|
6
6
|
* @gahojin-inc/aws-lambda-mock-context
|
|
7
7
|
* AWS Lambda mock context object
|
|
8
|
-
* @version: 2024.10.
|
|
8
|
+
* @version: 2024.10.1
|
|
9
9
|
* @author: GAHOJIN, Inc.
|
|
10
10
|
* @license: Apache-2.0
|
|
11
11
|
**/
|
|
@@ -24,6 +24,13 @@ var defer = () => {
|
|
|
24
24
|
reject: deferred.reject
|
|
25
25
|
};
|
|
26
26
|
};
|
|
27
|
+
var lambdaTimeout = (context2, timeout) => {
|
|
28
|
+
return setTimeout(() => {
|
|
29
|
+
if (Math.round(context2.getRemainingTimeInMillis() / 1e3) === 0) {
|
|
30
|
+
context2.fail(new Error(`Task timed out after ${timeout}.00 seconds`));
|
|
31
|
+
}
|
|
32
|
+
}, timeout * 1e3);
|
|
33
|
+
};
|
|
27
34
|
var context = (options) => {
|
|
28
35
|
const id = uuid.v1();
|
|
29
36
|
const stream = uuid.v4().replace(/-/g, "");
|
|
@@ -79,11 +86,7 @@ var context = (options) => {
|
|
|
79
86
|
Promise: deferred.promise
|
|
80
87
|
};
|
|
81
88
|
if (opts.timeout > 0) {
|
|
82
|
-
timeout =
|
|
83
|
-
if (context2.getRemainingTimeInMillis() === 0) {
|
|
84
|
-
context2.fail(new Error(`Task timed out after ${opts.timeout}.00 seconds`));
|
|
85
|
-
}
|
|
86
|
-
}, opts.timeout * 1e3);
|
|
89
|
+
timeout = lambdaTimeout(context2, opts.timeout);
|
|
87
90
|
}
|
|
88
91
|
return context2;
|
|
89
92
|
};
|
package/dist/cjs/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"names":["context","uuidv1","uuidv4"],"mappings":"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","file":"index.cjs","sourcesContent":["import type { ClientContext, CognitoIdentity, Context } from 'aws-lambda'\nimport { v1 as uuidv1, v4 as uuidv4 } from 'uuid'\n\ntype Options = {\n region?: string\n account?: string\n alias?: string\n functionName?: string\n functionVersion?: string\n memoryLimitInMB?: string\n identity?: CognitoIdentity\n clientContext?: ClientContext\n timeout?: number\n}\n\ninterface MockContext extends Context {\n Promise: Promise<any>\n}\n\ntype Deferred = {\n promise: Promise<unknown>\n resolve: (value: unknown) => void\n reject: (reason?: any) => void\n}\nconst defer = (): Deferred => {\n const deferred: Partial<Deferred> = {}\n const promise = new Promise((resolve, reject) => {\n deferred.resolve = resolve\n deferred.reject = reject\n })\n return {\n promise,\n // biome-ignore lint/style/noNonNullAssertion: <explanation>\n resolve: deferred.resolve!,\n // biome-ignore lint/style/noNonNullAssertion: <explanation>\n reject: deferred.reject!,\n }\n}\n\nconst lambdaTimeout = (context: MockContext, timeout: number): NodeJS.Timeout => {\n return setTimeout(() => {\n if (Math.round(context.getRemainingTimeInMillis() / 1000) === 0) {\n context.fail(new Error(`Task timed out after ${timeout}.00 seconds`))\n }\n }, timeout * 1000)\n}\n\nconst context = (options?: Options): MockContext => {\n const id = uuidv1()\n const stream = uuidv4().replace(/-/g, '')\n\n const opts = {\n region: 'us-west-1',\n account: '123456789012',\n functionName: 'aws-lambda-mock-context',\n functionVersion: '$LATEST',\n memoryLimitInMB: '128',\n timeout: 3,\n ...options,\n }\n\n const deferred = defer()\n\n const d = new Date()\n const logDate = [d.getFullYear(), `0${d.getMonth() + 1}`.slice(-2), `0${d.getDate()}`.slice(-2)].join('/')\n const start = d.getTime()\n let end: number | null = null\n let timeout: NodeJS.Timeout | null = null\n\n // https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/nodejs-context.html\n const context: MockContext = {\n callbackWaitsForEmptyEventLoop: true,\n functionName: opts.functionName,\n functionVersion: opts.functionVersion,\n invokedFunctionArn: `arn:aws:lambda:${opts.region}:${opts.account}:function:${opts.functionName}:${opts.alias || opts.functionVersion}`,\n memoryLimitInMB: opts.memoryLimitInMB,\n awsRequestId: id,\n logGroupName: `/aws/lambda/${opts.functionName}`,\n logStreamName: `${logDate}/[${opts.functionVersion}]/${stream}`,\n identity: opts.identity,\n clientContext: opts.clientContext,\n getRemainingTimeInMillis: () => {\n const endTime = end || Date.now()\n const remainingTime = opts.timeout * 1000 - (endTime - start)\n\n return Math.max(0, remainingTime)\n },\n succeed: (messageOrObject) => {\n end = Date.now()\n\n deferred.resolve(messageOrObject)\n },\n fail: (error) => {\n end = Date.now()\n\n deferred.reject(typeof error === 'string' ? new Error(error) : error)\n },\n done: (error, result) => {\n if (timeout) {\n clearTimeout(timeout)\n }\n\n if (error) {\n context.fail(error)\n return\n }\n\n context.succeed(result)\n },\n Promise: deferred.promise,\n }\n\n // Lambda Timeout\n if (opts.timeout > 0) {\n timeout = lambdaTimeout(context, opts.timeout)\n }\n\n return context\n}\n\nexport default context\n"]}
|
package/dist/index.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import { v1, v4 } from 'uuid';
|
|
|
3
3
|
/**
|
|
4
4
|
* @gahojin-inc/aws-lambda-mock-context
|
|
5
5
|
* AWS Lambda mock context object
|
|
6
|
-
* @version: 2024.10.
|
|
6
|
+
* @version: 2024.10.1
|
|
7
7
|
* @author: GAHOJIN, Inc.
|
|
8
8
|
* @license: Apache-2.0
|
|
9
9
|
**/
|
|
@@ -22,6 +22,13 @@ var defer = () => {
|
|
|
22
22
|
reject: deferred.reject
|
|
23
23
|
};
|
|
24
24
|
};
|
|
25
|
+
var lambdaTimeout = (context2, timeout) => {
|
|
26
|
+
return setTimeout(() => {
|
|
27
|
+
if (Math.round(context2.getRemainingTimeInMillis() / 1e3) === 0) {
|
|
28
|
+
context2.fail(new Error(`Task timed out after ${timeout}.00 seconds`));
|
|
29
|
+
}
|
|
30
|
+
}, timeout * 1e3);
|
|
31
|
+
};
|
|
25
32
|
var context = (options) => {
|
|
26
33
|
const id = v1();
|
|
27
34
|
const stream = v4().replace(/-/g, "");
|
|
@@ -77,11 +84,7 @@ var context = (options) => {
|
|
|
77
84
|
Promise: deferred.promise
|
|
78
85
|
};
|
|
79
86
|
if (opts.timeout > 0) {
|
|
80
|
-
timeout =
|
|
81
|
-
if (context2.getRemainingTimeInMillis() === 0) {
|
|
82
|
-
context2.fail(new Error(`Task timed out after ${opts.timeout}.00 seconds`));
|
|
83
|
-
}
|
|
84
|
-
}, opts.timeout * 1e3);
|
|
87
|
+
timeout = lambdaTimeout(context2, opts.timeout);
|
|
85
88
|
}
|
|
86
89
|
return context2;
|
|
87
90
|
};
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":["
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":["context","uuidv1","uuidv4"],"mappings":"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","file":"index.mjs","sourcesContent":["import type { ClientContext, CognitoIdentity, Context } from 'aws-lambda'\nimport { v1 as uuidv1, v4 as uuidv4 } from 'uuid'\n\ntype Options = {\n region?: string\n account?: string\n alias?: string\n functionName?: string\n functionVersion?: string\n memoryLimitInMB?: string\n identity?: CognitoIdentity\n clientContext?: ClientContext\n timeout?: number\n}\n\ninterface MockContext extends Context {\n Promise: Promise<any>\n}\n\ntype Deferred = {\n promise: Promise<unknown>\n resolve: (value: unknown) => void\n reject: (reason?: any) => void\n}\nconst defer = (): Deferred => {\n const deferred: Partial<Deferred> = {}\n const promise = new Promise((resolve, reject) => {\n deferred.resolve = resolve\n deferred.reject = reject\n })\n return {\n promise,\n // biome-ignore lint/style/noNonNullAssertion: <explanation>\n resolve: deferred.resolve!,\n // biome-ignore lint/style/noNonNullAssertion: <explanation>\n reject: deferred.reject!,\n }\n}\n\nconst lambdaTimeout = (context: MockContext, timeout: number): NodeJS.Timeout => {\n return setTimeout(() => {\n if (Math.round(context.getRemainingTimeInMillis() / 1000) === 0) {\n context.fail(new Error(`Task timed out after ${timeout}.00 seconds`))\n }\n }, timeout * 1000)\n}\n\nconst context = (options?: Options): MockContext => {\n const id = uuidv1()\n const stream = uuidv4().replace(/-/g, '')\n\n const opts = {\n region: 'us-west-1',\n account: '123456789012',\n functionName: 'aws-lambda-mock-context',\n functionVersion: '$LATEST',\n memoryLimitInMB: '128',\n timeout: 3,\n ...options,\n }\n\n const deferred = defer()\n\n const d = new Date()\n const logDate = [d.getFullYear(), `0${d.getMonth() + 1}`.slice(-2), `0${d.getDate()}`.slice(-2)].join('/')\n const start = d.getTime()\n let end: number | null = null\n let timeout: NodeJS.Timeout | null = null\n\n // https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/nodejs-context.html\n const context: MockContext = {\n callbackWaitsForEmptyEventLoop: true,\n functionName: opts.functionName,\n functionVersion: opts.functionVersion,\n invokedFunctionArn: `arn:aws:lambda:${opts.region}:${opts.account}:function:${opts.functionName}:${opts.alias || opts.functionVersion}`,\n memoryLimitInMB: opts.memoryLimitInMB,\n awsRequestId: id,\n logGroupName: `/aws/lambda/${opts.functionName}`,\n logStreamName: `${logDate}/[${opts.functionVersion}]/${stream}`,\n identity: opts.identity,\n clientContext: opts.clientContext,\n getRemainingTimeInMillis: () => {\n const endTime = end || Date.now()\n const remainingTime = opts.timeout * 1000 - (endTime - start)\n\n return Math.max(0, remainingTime)\n },\n succeed: (messageOrObject) => {\n end = Date.now()\n\n deferred.resolve(messageOrObject)\n },\n fail: (error) => {\n end = Date.now()\n\n deferred.reject(typeof error === 'string' ? new Error(error) : error)\n },\n done: (error, result) => {\n if (timeout) {\n clearTimeout(timeout)\n }\n\n if (error) {\n context.fail(error)\n return\n }\n\n context.succeed(result)\n },\n Promise: deferred.promise,\n }\n\n // Lambda Timeout\n if (opts.timeout > 0) {\n timeout = lambdaTimeout(context, opts.timeout)\n }\n\n return context\n}\n\nexport default context\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gahojin-inc/aws-lambda-mock-context",
|
|
3
|
-
"version": "2024.10.
|
|
3
|
+
"version": "2024.10.1",
|
|
4
4
|
"description": "AWS Lambda mock context object",
|
|
5
5
|
"author": "GAHOJIN, Inc.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -35,11 +35,10 @@
|
|
|
35
35
|
"@biomejs/biome": "1.9.3",
|
|
36
36
|
"@commitlint/cli": "19.5.0",
|
|
37
37
|
"@commitlint/config-conventional": "19.5.0",
|
|
38
|
-
"@fast-check/vitest": "0.1.3",
|
|
39
38
|
"@types/aws-lambda": "8.10.145",
|
|
40
39
|
"@types/node": "20.16.11",
|
|
41
40
|
"@types/uuid": "10.0.0",
|
|
42
|
-
"@vitest/coverage-v8": "2.1.
|
|
41
|
+
"@vitest/coverage-v8": "2.1.3",
|
|
43
42
|
"husky": "9.1.6",
|
|
44
43
|
"jest-extended": "4.0.2",
|
|
45
44
|
"npm-check-updates": "17.1.3",
|
|
@@ -47,7 +46,7 @@
|
|
|
47
46
|
"tsup": "8.3.0",
|
|
48
47
|
"typescript": "5.6.3",
|
|
49
48
|
"vite-tsconfig-paths": "5.0.1",
|
|
50
|
-
"vitest": "2.1.
|
|
49
|
+
"vitest": "2.1.3"
|
|
51
50
|
},
|
|
52
51
|
"peerDependencies": {
|
|
53
52
|
"uuid": ">=8.0.0"
|