aws-lambda-devkit 0.1.0
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/CHANGELOG.md +72 -0
- package/LICENSE +21 -0
- package/README.md +214 -0
- package/dist/aws/batch-response.d.ts +8 -0
- package/dist/aws/batch-response.d.ts.map +1 -0
- package/dist/aws/batch-response.js +12 -0
- package/dist/aws/batch-response.js.map +1 -0
- package/dist/aws/clients.d.ts +6 -0
- package/dist/aws/clients.d.ts.map +1 -0
- package/dist/aws/clients.js +30 -0
- package/dist/aws/clients.js.map +1 -0
- package/dist/aws/sns-publish.d.ts +10 -0
- package/dist/aws/sns-publish.d.ts.map +1 -0
- package/dist/aws/sns-publish.js +17 -0
- package/dist/aws/sns-publish.js.map +1 -0
- package/dist/aws/sqs-listen.d.ts +17 -0
- package/dist/aws/sqs-listen.d.ts.map +1 -0
- package/dist/aws/sqs-listen.js +113 -0
- package/dist/aws/sqs-listen.js.map +1 -0
- package/dist/aws/sqs-process.d.ts +39 -0
- package/dist/aws/sqs-process.d.ts.map +1 -0
- package/dist/aws/sqs-process.js +95 -0
- package/dist/aws/sqs-process.js.map +1 -0
- package/dist/aws/sqs-send.d.ts +15 -0
- package/dist/aws/sqs-send.d.ts.map +1 -0
- package/dist/aws/sqs-send.js +27 -0
- package/dist/aws/sqs-send.js.map +1 -0
- package/dist/aws/sqs-visibility.d.ts +10 -0
- package/dist/aws/sqs-visibility.d.ts.map +1 -0
- package/dist/aws/sqs-visibility.js +29 -0
- package/dist/aws/sqs-visibility.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +187 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/config-cmd.d.ts +5 -0
- package/dist/commands/config-cmd.d.ts.map +1 -0
- package/dist/commands/config-cmd.js +8 -0
- package/dist/commands/config-cmd.js.map +1 -0
- package/dist/commands/config.d.ts +2 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +24 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/init.d.ts +7 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +59 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.d.ts +4 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +23 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/listen.d.ts +20 -0
- package/dist/commands/listen.d.ts.map +1 -0
- package/dist/commands/listen.js +36 -0
- package/dist/commands/listen.js.map +1 -0
- package/dist/commands/send.d.ts +17 -0
- package/dist/commands/send.d.ts.map +1 -0
- package/dist/commands/send.js +51 -0
- package/dist/commands/send.js.map +1 -0
- package/dist/commands/test.d.ts +23 -0
- package/dist/commands/test.d.ts.map +1 -0
- package/dist/commands/test.js +123 -0
- package/dist/commands/test.js.map +1 -0
- package/dist/config/env.d.ts +8 -0
- package/dist/config/env.d.ts.map +1 -0
- package/dist/config/env.js +16 -0
- package/dist/config/env.js.map +1 -0
- package/dist/config/load.d.ts +9 -0
- package/dist/config/load.d.ts.map +1 -0
- package/dist/config/load.js +72 -0
- package/dist/config/load.js.map +1 -0
- package/dist/config/merge.d.ts +36 -0
- package/dist/config/merge.d.ts.map +1 -0
- package/dist/config/merge.js +89 -0
- package/dist/config/merge.js.map +1 -0
- package/dist/config/project-env.d.ts +34 -0
- package/dist/config/project-env.d.ts.map +1 -0
- package/dist/config/project-env.js +90 -0
- package/dist/config/project-env.js.map +1 -0
- package/dist/config/schema.d.ts +27 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +123 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/config/types.d.ts +167 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +2 -0
- package/dist/config/types.js.map +1 -0
- package/dist/events/apigw.d.ts +41 -0
- package/dist/events/apigw.d.ts.map +1 -0
- package/dist/events/apigw.js +43 -0
- package/dist/events/apigw.js.map +1 -0
- package/dist/events/eventbridge.d.ts +16 -0
- package/dist/events/eventbridge.d.ts.map +1 -0
- package/dist/events/eventbridge.js +19 -0
- package/dist/events/eventbridge.js.map +1 -0
- package/dist/events/index.d.ts +17 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +50 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/s3.d.ts +45 -0
- package/dist/events/s3.d.ts.map +1 -0
- package/dist/events/s3.js +44 -0
- package/dist/events/s3.js.map +1 -0
- package/dist/events/schedule.d.ts +12 -0
- package/dist/events/schedule.d.ts.map +1 -0
- package/dist/events/schedule.js +15 -0
- package/dist/events/schedule.js.map +1 -0
- package/dist/events/sns.d.ts +24 -0
- package/dist/events/sns.d.ts.map +1 -0
- package/dist/events/sns.js +31 -0
- package/dist/events/sns.js.map +1 -0
- package/dist/events/sqs-record.d.ts +44 -0
- package/dist/events/sqs-record.d.ts.map +1 -0
- package/dist/events/sqs-record.js +75 -0
- package/dist/events/sqs-record.js.map +1 -0
- package/dist/events/sqs.d.ts +21 -0
- package/dist/events/sqs.d.ts.map +1 -0
- package/dist/events/sqs.js +28 -0
- package/dist/events/sqs.js.map +1 -0
- package/dist/events/util.d.ts +2 -0
- package/dist/events/util.d.ts.map +1 -0
- package/dist/events/util.js +7 -0
- package/dist/events/util.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/peer-resolve.d.ts +5 -0
- package/dist/peer-resolve.d.ts.map +1 -0
- package/dist/peer-resolve.js +44 -0
- package/dist/peer-resolve.js.map +1 -0
- package/dist/runtime/asset-links.d.ts +15 -0
- package/dist/runtime/asset-links.d.ts.map +1 -0
- package/dist/runtime/asset-links.js +42 -0
- package/dist/runtime/asset-links.js.map +1 -0
- package/dist/runtime/clear-caches.d.ts +5 -0
- package/dist/runtime/clear-caches.d.ts.map +1 -0
- package/dist/runtime/clear-caches.js +8 -0
- package/dist/runtime/clear-caches.js.map +1 -0
- package/dist/runtime/context.d.ts +10 -0
- package/dist/runtime/context.d.ts.map +1 -0
- package/dist/runtime/context.js +42 -0
- package/dist/runtime/context.js.map +1 -0
- package/dist/runtime/handler-cache.d.ts +6 -0
- package/dist/runtime/handler-cache.d.ts.map +1 -0
- package/dist/runtime/handler-cache.js +14 -0
- package/dist/runtime/handler-cache.js.map +1 -0
- package/dist/runtime/invoke.d.ts +32 -0
- package/dist/runtime/invoke.d.ts.map +1 -0
- package/dist/runtime/invoke.js +111 -0
- package/dist/runtime/invoke.js.map +1 -0
- package/dist/runtime/loader.d.ts +17 -0
- package/dist/runtime/loader.d.ts.map +1 -0
- package/dist/runtime/loader.js +76 -0
- package/dist/runtime/loader.js.map +1 -0
- package/dist/runtime/logs.d.ts +19 -0
- package/dist/runtime/logs.d.ts.map +1 -0
- package/dist/runtime/logs.js +125 -0
- package/dist/runtime/logs.js.map +1 -0
- package/dist/util/payload.d.ts +13 -0
- package/dist/util/payload.d.ts.map +1 -0
- package/dist/util/payload.js +40 -0
- package/dist/util/payload.js.map +1 -0
- package/dist/util/tsx-register.d.ts +4 -0
- package/dist/util/tsx-register.d.ts.map +1 -0
- package/dist/util/tsx-register.js +27 -0
- package/dist/util/tsx-register.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/docs/README.md +23 -0
- package/docs/commands.md +294 -0
- package/docs/configuration.md +652 -0
- package/docs/getting-started.md +400 -0
- package/docs/recipes.md +743 -0
- package/docs/troubleshooting.md +393 -0
- package/package.json +76 -0
- package/templates/.env.example +5 -0
- package/templates/.vscode/launch.json +14 -0
- package/templates/events/sample.json +4 -0
- package/templates/lamkit.config.js +38 -0
- package/templates/lamkit.config.ts +27 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { isAbsolute, resolve } from 'node:path';
|
|
3
|
+
function parseEnvLines(content, override) {
|
|
4
|
+
for (const line of content.split('\n')) {
|
|
5
|
+
const trimmed = line.trim();
|
|
6
|
+
if (!trimmed || trimmed.startsWith('#')) {
|
|
7
|
+
continue;
|
|
8
|
+
}
|
|
9
|
+
const hashIndex = trimmed.indexOf(' #');
|
|
10
|
+
const lineBody = hashIndex >= 0 ? trimmed.slice(0, hashIndex).trim() : trimmed;
|
|
11
|
+
const eqIndex = lineBody.indexOf('=');
|
|
12
|
+
if (eqIndex <= 0) {
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
const key = lineBody.slice(0, eqIndex).trim();
|
|
16
|
+
let value = lineBody.slice(eqIndex + 1).trim();
|
|
17
|
+
if ((value.startsWith('"') && value.endsWith('"')) ||
|
|
18
|
+
(value.startsWith("'") && value.endsWith("'"))) {
|
|
19
|
+
value = value.slice(1, -1);
|
|
20
|
+
}
|
|
21
|
+
if (override || !(key in process.env)) {
|
|
22
|
+
process.env[key] = value;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export function loadEnvFileAt(filePath, options) {
|
|
27
|
+
if (!existsSync(filePath)) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
parseEnvLines(readFileSync(filePath, 'utf8'), options?.override ?? false);
|
|
31
|
+
}
|
|
32
|
+
export function applyEnvAliases(aliases) {
|
|
33
|
+
if (!aliases) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
for (const [from, to] of Object.entries(aliases)) {
|
|
37
|
+
const value = process.env[from];
|
|
38
|
+
if (value !== undefined && value !== '' && !(to in process.env)) {
|
|
39
|
+
process.env[to] = value;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export function applyEnvRules(rules) {
|
|
44
|
+
if (!rules?.length) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
for (const rule of rules) {
|
|
48
|
+
const matches = Object.entries(rule.when).every(([key, expected]) => process.env[key] === expected);
|
|
49
|
+
if (!matches) {
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
for (const [key, value] of Object.entries(rule.set)) {
|
|
53
|
+
if (!(key in process.env)) {
|
|
54
|
+
process.env[key] = value;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
export function stripCustomAwsEndpointsIfRealCredentials() {
|
|
60
|
+
if (!process.env.AWS_ACCESS_KEY_ID?.startsWith('AKIA')) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
for (const key of Object.keys(process.env)) {
|
|
64
|
+
if (key === 'AWS_ENDPOINT_URL' || key.startsWith('AWS_ENDPOINT_URL_')) {
|
|
65
|
+
delete process.env[key];
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Load project env files and normalize names — call at the top of `lamkit.config.*`
|
|
71
|
+
* before reading `process.env` in the config object.
|
|
72
|
+
*/
|
|
73
|
+
export function loadProjectEnv(options = {}) {
|
|
74
|
+
const cwd = options.cwd ?? process.cwd();
|
|
75
|
+
const files = options.files ?? [];
|
|
76
|
+
for (const file of files) {
|
|
77
|
+
const resolved = isAbsolute(file) ? file : resolve(cwd, file);
|
|
78
|
+
loadEnvFileAt(resolved, { override: true });
|
|
79
|
+
}
|
|
80
|
+
applyEnvAliases(options.aliases);
|
|
81
|
+
applyEnvRules(options.rules);
|
|
82
|
+
if (options.stripCustomEndpointForRealAws !== false) {
|
|
83
|
+
stripCustomAwsEndpointsIfRealCredentials();
|
|
84
|
+
}
|
|
85
|
+
if (options.skipDotenv) {
|
|
86
|
+
process.env.LAMKIT_ENV_LOADED = '1';
|
|
87
|
+
process.env.LAMKIT_SKIP_DOTENV = '1';
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=project-env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-env.js","sourceRoot":"","sources":["../../src/config/project-env.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { LamkitConfig, LamkitConfigInput } from './types.js';
|
|
3
|
+
export type { AssetLink, AwsResourceConfig, DefaultsAwsConfig, DefaultsConfig, FunctionConfig, LamkitConfig, LamkitConfigInput, LamkitMultiFunctionConfig, LamkitSingleFunctionConfig, LogFormat, TestConfig, Trigger, } from './types.js';
|
|
4
|
+
export declare const triggerSchema: z.ZodEnum<["sqs", "http", "sns", "s3", "eventbridge", "schedule"]>;
|
|
5
|
+
export declare const logFormatSchema: z.ZodEnum<["text", "json"]>;
|
|
6
|
+
/**
|
|
7
|
+
* Parse and validate config from an unknown value (e.g. imported config module).
|
|
8
|
+
* Throws `ZodError` when invalid — use `formatZodError()` for a readable message.
|
|
9
|
+
*/
|
|
10
|
+
export declare function parseConfig(input: unknown): LamkitConfig;
|
|
11
|
+
/**
|
|
12
|
+
* Type-safe config helper for `lamkit.config.ts`.
|
|
13
|
+
* Provides autocomplete and JSDoc hovers on every field.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* import { defineConfig } from 'aws-lambda-devkit';
|
|
18
|
+
*
|
|
19
|
+
* export default defineConfig({
|
|
20
|
+
* functions: [{ name: 'worker', entry: './dist/handler.js', trigger: 'sqs' }],
|
|
21
|
+
* });
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare function defineConfig(config: LamkitConfigInput): LamkitConfig;
|
|
25
|
+
/** Format a Zod validation error as `path: message` lines. */
|
|
26
|
+
export declare function formatZodError(error: z.ZodError): string;
|
|
27
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAIV,YAAY,EACZ,iBAAiB,EAElB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,yBAAyB,EACzB,0BAA0B,EAC1B,SAAS,EACT,UAAU,EACV,OAAO,GACR,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,aAAa,oEAOxB,CAAC;AAEH,eAAO,MAAM,eAAe,6BAA2B,CAAC;AA8FxD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAQxD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,YAAY,CAEpE;AAED,8DAA8D;AAC9D,wBAAgB,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,GAAG,MAAM,CAOxD"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const triggerSchema = z.enum([
|
|
3
|
+
'sqs',
|
|
4
|
+
'http',
|
|
5
|
+
'sns',
|
|
6
|
+
's3',
|
|
7
|
+
'eventbridge',
|
|
8
|
+
'schedule',
|
|
9
|
+
]);
|
|
10
|
+
export const logFormatSchema = z.enum(['text', 'json']);
|
|
11
|
+
const awsResourceSchema = z.object({
|
|
12
|
+
queueUrl: z.string().url().optional(),
|
|
13
|
+
topicArn: z.string().min(1).optional(),
|
|
14
|
+
region: z.string().min(1).optional(),
|
|
15
|
+
endpoint: z.string().url().optional(),
|
|
16
|
+
});
|
|
17
|
+
const testConfigSchema = z.object({
|
|
18
|
+
data: z.unknown().optional(),
|
|
19
|
+
});
|
|
20
|
+
const assetLinkSchema = z.object({
|
|
21
|
+
path: z.string().min(1),
|
|
22
|
+
target: z.string().min(1),
|
|
23
|
+
});
|
|
24
|
+
const functionSchema = z.object({
|
|
25
|
+
name: z.string().min(1),
|
|
26
|
+
entry: z.string().min(1),
|
|
27
|
+
trigger: triggerSchema.optional(),
|
|
28
|
+
memorySize: z.number().int().positive().optional(),
|
|
29
|
+
timeout: z.number().int().positive().optional(),
|
|
30
|
+
logFormat: logFormatSchema.optional(),
|
|
31
|
+
test: testConfigSchema.optional(),
|
|
32
|
+
aws: awsResourceSchema.optional(),
|
|
33
|
+
});
|
|
34
|
+
const defaultsSchema = z.object({
|
|
35
|
+
runtime: z.string().min(1).optional(),
|
|
36
|
+
memorySize: z.number().int().positive().optional(),
|
|
37
|
+
timeout: z.number().int().positive().optional(),
|
|
38
|
+
logFormat: logFormatSchema.optional(),
|
|
39
|
+
tracing: z.boolean().optional(),
|
|
40
|
+
aws: awsResourceSchema.pick({ region: true, endpoint: true }).optional(),
|
|
41
|
+
});
|
|
42
|
+
const singleFunctionSugarSchema = z
|
|
43
|
+
.object({
|
|
44
|
+
name: z.string().min(1).optional(),
|
|
45
|
+
entry: z.string().min(1),
|
|
46
|
+
trigger: triggerSchema.optional(),
|
|
47
|
+
memorySize: z.number().int().positive().optional(),
|
|
48
|
+
timeout: z.number().int().positive().optional(),
|
|
49
|
+
logFormat: logFormatSchema.optional(),
|
|
50
|
+
test: testConfigSchema.optional(),
|
|
51
|
+
aws: awsResourceSchema.optional(),
|
|
52
|
+
assetLinks: z.array(assetLinkSchema).optional(),
|
|
53
|
+
defaults: defaultsSchema.optional(),
|
|
54
|
+
functions: z.never().optional(),
|
|
55
|
+
})
|
|
56
|
+
.strict();
|
|
57
|
+
const multiFunctionSchema = z
|
|
58
|
+
.object({
|
|
59
|
+
defaults: defaultsSchema.optional(),
|
|
60
|
+
assetLinks: z.array(assetLinkSchema).optional(),
|
|
61
|
+
functions: z.array(functionSchema).min(1),
|
|
62
|
+
})
|
|
63
|
+
.strict();
|
|
64
|
+
const rawConfigSchema = z.union([singleFunctionSugarSchema, multiFunctionSchema]);
|
|
65
|
+
function normalizeSugar(input) {
|
|
66
|
+
const { defaults, name, entry, trigger, memorySize, timeout, logFormat, test, aws, assetLinks } = input;
|
|
67
|
+
return {
|
|
68
|
+
defaults,
|
|
69
|
+
assetLinks,
|
|
70
|
+
functions: [
|
|
71
|
+
{
|
|
72
|
+
name: name ?? 'default',
|
|
73
|
+
entry,
|
|
74
|
+
trigger,
|
|
75
|
+
memorySize,
|
|
76
|
+
timeout,
|
|
77
|
+
logFormat,
|
|
78
|
+
test,
|
|
79
|
+
aws,
|
|
80
|
+
},
|
|
81
|
+
],
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
function isMultiFunctionConfig(parsed) {
|
|
85
|
+
return 'functions' in parsed && Array.isArray(parsed.functions);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Parse and validate config from an unknown value (e.g. imported config module).
|
|
89
|
+
* Throws `ZodError` when invalid — use `formatZodError()` for a readable message.
|
|
90
|
+
*/
|
|
91
|
+
export function parseConfig(input) {
|
|
92
|
+
const parsed = rawConfigSchema.parse(input);
|
|
93
|
+
if (isMultiFunctionConfig(parsed)) {
|
|
94
|
+
return parsed;
|
|
95
|
+
}
|
|
96
|
+
return normalizeSugar(parsed);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Type-safe config helper for `lamkit.config.ts`.
|
|
100
|
+
* Provides autocomplete and JSDoc hovers on every field.
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```ts
|
|
104
|
+
* import { defineConfig } from 'aws-lambda-devkit';
|
|
105
|
+
*
|
|
106
|
+
* export default defineConfig({
|
|
107
|
+
* functions: [{ name: 'worker', entry: './dist/handler.js', trigger: 'sqs' }],
|
|
108
|
+
* });
|
|
109
|
+
* ```
|
|
110
|
+
*/
|
|
111
|
+
export function defineConfig(config) {
|
|
112
|
+
return parseConfig(config);
|
|
113
|
+
}
|
|
114
|
+
/** Format a Zod validation error as `path: message` lines. */
|
|
115
|
+
export function formatZodError(error) {
|
|
116
|
+
return error.issues
|
|
117
|
+
.map((issue) => {
|
|
118
|
+
const path = issue.path.length > 0 ? issue.path.join('.') : '(root)';
|
|
119
|
+
return `${path}: ${issue.message}`;
|
|
120
|
+
})
|
|
121
|
+
.join('\n');
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event source simulated by `lamkit test`.
|
|
3
|
+
*
|
|
4
|
+
* - `sqs` — SQS batch (`event.Records[].body`)
|
|
5
|
+
* - `http` — API Gateway HTTP API v2 (`event.body`, `requestContext`)
|
|
6
|
+
* - `sns` — SNS notification (`event.Records[].Sns.Message`)
|
|
7
|
+
* - `s3` — S3 object notification
|
|
8
|
+
* - `eventbridge` — EventBridge custom event
|
|
9
|
+
* - `schedule` — EventBridge scheduled invocation
|
|
10
|
+
*/
|
|
11
|
+
export type Trigger = 'sqs' | 'http' | 'sns' | 's3' | 'eventbridge' | 'schedule';
|
|
12
|
+
/** CloudWatch-style log lines (`text`) or one JSON object per line (`json`). */
|
|
13
|
+
export type LogFormat = 'text' | 'json';
|
|
14
|
+
/**
|
|
15
|
+
* AWS resource settings for a function.
|
|
16
|
+
* Used by `lamkit send sqs`, `lamkit send sns`, and `lamkit listen`.
|
|
17
|
+
*/
|
|
18
|
+
export interface AwsResourceConfig {
|
|
19
|
+
/**
|
|
20
|
+
* Full HTTPS queue URL.
|
|
21
|
+
* Required for `lamkit send sqs` and `lamkit listen`.
|
|
22
|
+
* Example: `https://sqs.us-east-1.amazonaws.com/123456789012/my-queue`
|
|
23
|
+
*/
|
|
24
|
+
queueUrl?: string;
|
|
25
|
+
/**
|
|
26
|
+
* SNS topic ARN.
|
|
27
|
+
* Required for `lamkit send sns`.
|
|
28
|
+
* Example: `arn:aws:sns:us-east-1:123456789012:my-topic`
|
|
29
|
+
*/
|
|
30
|
+
topicArn?: string;
|
|
31
|
+
/**
|
|
32
|
+
* AWS region (e.g. `us-east-1`, `eu-west-1`).
|
|
33
|
+
* Overrides `defaults.aws.region` for this function.
|
|
34
|
+
*/
|
|
35
|
+
region?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Custom AWS-compatible endpoint (LocalStack, private gateway).
|
|
38
|
+
* Example: `http://localhost:4566`
|
|
39
|
+
*/
|
|
40
|
+
endpoint?: string;
|
|
41
|
+
}
|
|
42
|
+
/** Region and endpoint defaults shared by all functions. */
|
|
43
|
+
export interface DefaultsAwsConfig {
|
|
44
|
+
/** Default AWS region when not set on a function or in `AWS_REGION`. */
|
|
45
|
+
region?: string;
|
|
46
|
+
/** Default custom endpoint for all functions (unless overridden per function). */
|
|
47
|
+
endpoint?: string;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Default test payload for `lamkit test`.
|
|
51
|
+
* Ignored when you pass `--data`, `--data-file`, or `--event`.
|
|
52
|
+
*/
|
|
53
|
+
export interface TestConfig {
|
|
54
|
+
/**
|
|
55
|
+
* JSON-serializable message body for SQS/SNS triggers,
|
|
56
|
+
* or request body for `http` trigger.
|
|
57
|
+
*/
|
|
58
|
+
data?: unknown;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Symlink a local folder before loading the handler.
|
|
62
|
+
*
|
|
63
|
+
* Use when compiled code under `dist/` reads paths like `../../contracts/abi.json`
|
|
64
|
+
* but dev assets live under `src/contracts/`.
|
|
65
|
+
*/
|
|
66
|
+
export interface AssetLink {
|
|
67
|
+
/**
|
|
68
|
+
* Path relative to the project root (where `lamkit.config.*` lives).
|
|
69
|
+
* Created as a symlink when missing. Example: `contracts`
|
|
70
|
+
*/
|
|
71
|
+
path: string;
|
|
72
|
+
/**
|
|
73
|
+
* Existing directory to link to. Example: `src/contracts`
|
|
74
|
+
*/
|
|
75
|
+
target: string;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* One Lambda function entry in `lamkit.config.*`.
|
|
79
|
+
*/
|
|
80
|
+
export interface FunctionConfig {
|
|
81
|
+
/**
|
|
82
|
+
* Unique name — passed to `lamkit test <name>`, `lamkit listen <name>`, etc.
|
|
83
|
+
*/
|
|
84
|
+
name: string;
|
|
85
|
+
/**
|
|
86
|
+
* Path to the handler module, relative to the config file directory.
|
|
87
|
+
* Must export a named `handler` or default async function.
|
|
88
|
+
* Examples: `./dist/handler.js`, `./src/handler.ts` (requires `tsx` peer)
|
|
89
|
+
*/
|
|
90
|
+
entry: string;
|
|
91
|
+
/**
|
|
92
|
+
* Event shape built by `lamkit test`. Default: `sqs`.
|
|
93
|
+
*/
|
|
94
|
+
trigger?: Trigger;
|
|
95
|
+
/** Simulated memory in MB. Overrides `defaults.memorySize`. */
|
|
96
|
+
memorySize?: number;
|
|
97
|
+
/** Simulated timeout in seconds. Overrides `defaults.timeout`. */
|
|
98
|
+
timeout?: number;
|
|
99
|
+
/** Log output format for this invoke. Overrides `defaults.logFormat`. */
|
|
100
|
+
logFormat?: LogFormat;
|
|
101
|
+
/** Default payload when `lamkit test` is run without CLI payload flags. */
|
|
102
|
+
test?: TestConfig;
|
|
103
|
+
/** Queue, topic, region, and endpoint for real AWS send/listen commands. */
|
|
104
|
+
aws?: AwsResourceConfig;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Shared settings applied to every function unless overridden per function.
|
|
108
|
+
*/
|
|
109
|
+
export interface DefaultsConfig {
|
|
110
|
+
/** Node.js runtime label shown in REPORT line. Default: `nodejs20.x` */
|
|
111
|
+
runtime?: string;
|
|
112
|
+
/** Default simulated memory in MB. Default: `512` */
|
|
113
|
+
memorySize?: number;
|
|
114
|
+
/** Default simulated timeout in seconds. Default: `30` */
|
|
115
|
+
timeout?: number;
|
|
116
|
+
/** Default log format. Default: `text` */
|
|
117
|
+
logFormat?: LogFormat;
|
|
118
|
+
/** Include X-Ray tracing fields in the simulated context. Default: `false` */
|
|
119
|
+
tracing?: boolean;
|
|
120
|
+
/** Default region and endpoint for all functions. */
|
|
121
|
+
aws?: DefaultsAwsConfig;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Normalized config after parsing (always has a `functions` array).
|
|
125
|
+
*/
|
|
126
|
+
export interface LamkitConfig {
|
|
127
|
+
/** Shared defaults for all functions. */
|
|
128
|
+
defaults?: DefaultsConfig;
|
|
129
|
+
/** Symlinks created before each handler load. */
|
|
130
|
+
assetLinks?: AssetLink[];
|
|
131
|
+
/** One entry per locally testable Lambda. At least one required. */
|
|
132
|
+
functions: FunctionConfig[];
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Multi-function config — recommended when you have more than one Lambda.
|
|
136
|
+
*/
|
|
137
|
+
export interface LamkitMultiFunctionConfig {
|
|
138
|
+
defaults?: DefaultsConfig;
|
|
139
|
+
assetLinks?: AssetLink[];
|
|
140
|
+
/** At least one function. Each must have `name` and `entry`. */
|
|
141
|
+
functions: FunctionConfig[];
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Single-function shorthand — put function fields at the root instead of `functions[]`.
|
|
145
|
+
*
|
|
146
|
+
* `name` defaults to `"default"` when omitted.
|
|
147
|
+
*/
|
|
148
|
+
export interface LamkitSingleFunctionConfig {
|
|
149
|
+
name?: string;
|
|
150
|
+
entry: string;
|
|
151
|
+
trigger?: Trigger;
|
|
152
|
+
memorySize?: number;
|
|
153
|
+
timeout?: number;
|
|
154
|
+
logFormat?: LogFormat;
|
|
155
|
+
test?: TestConfig;
|
|
156
|
+
aws?: AwsResourceConfig;
|
|
157
|
+
defaults?: DefaultsConfig;
|
|
158
|
+
assetLinks?: AssetLink[];
|
|
159
|
+
/** Do not set when using shorthand — use `functions` for multiple Lambdas. */
|
|
160
|
+
functions?: never;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Accepted shape for `defineConfig()` and raw `lamkit.config.*` exports.
|
|
164
|
+
* Use `defineConfig()` in TypeScript for autocomplete and hover docs.
|
|
165
|
+
*/
|
|
166
|
+
export type LamkitConfigInput = LamkitMultiFunctionConfig | LamkitSingleFunctionConfig;
|
|
167
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export declare const defaultHttpData: {
|
|
2
|
+
message: string;
|
|
3
|
+
};
|
|
4
|
+
export declare function buildApiGatewayEvent(data: unknown): {
|
|
5
|
+
resource: string;
|
|
6
|
+
path: string;
|
|
7
|
+
httpMethod: string;
|
|
8
|
+
headers: {
|
|
9
|
+
'Content-Type': string;
|
|
10
|
+
Host: string;
|
|
11
|
+
};
|
|
12
|
+
multiValueHeaders: {};
|
|
13
|
+
queryStringParameters: null;
|
|
14
|
+
multiValueQueryStringParameters: null;
|
|
15
|
+
pathParameters: null;
|
|
16
|
+
stageVariables: null;
|
|
17
|
+
requestContext: {
|
|
18
|
+
accountId: string;
|
|
19
|
+
apiId: string;
|
|
20
|
+
authorizer: {};
|
|
21
|
+
domainName: string;
|
|
22
|
+
domainPrefix: string;
|
|
23
|
+
extendedRequestId: string;
|
|
24
|
+
httpMethod: string;
|
|
25
|
+
identity: {
|
|
26
|
+
sourceIp: string;
|
|
27
|
+
userAgent: string;
|
|
28
|
+
};
|
|
29
|
+
path: string;
|
|
30
|
+
protocol: string;
|
|
31
|
+
requestId: string;
|
|
32
|
+
requestTime: string;
|
|
33
|
+
requestTimeEpoch: number;
|
|
34
|
+
resourceId: string;
|
|
35
|
+
resourcePath: string;
|
|
36
|
+
stage: string;
|
|
37
|
+
};
|
|
38
|
+
body: string;
|
|
39
|
+
isBase64Encoded: boolean;
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=apigw.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apigw.d.ts","sourceRoot":"","sources":["../../src/events/apigw.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe;;CAAmC,CAAC;AAEhE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwCjD"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { serializePayload } from './util.js';
|
|
2
|
+
export const defaultHttpData = { message: 'hello from lamkit' };
|
|
3
|
+
export function buildApiGatewayEvent(data) {
|
|
4
|
+
const body = serializePayload(data ?? defaultHttpData);
|
|
5
|
+
return {
|
|
6
|
+
resource: '/local',
|
|
7
|
+
path: '/local',
|
|
8
|
+
httpMethod: 'POST',
|
|
9
|
+
headers: {
|
|
10
|
+
'Content-Type': 'application/json',
|
|
11
|
+
Host: 'localhost',
|
|
12
|
+
},
|
|
13
|
+
multiValueHeaders: {},
|
|
14
|
+
queryStringParameters: null,
|
|
15
|
+
multiValueQueryStringParameters: null,
|
|
16
|
+
pathParameters: null,
|
|
17
|
+
stageVariables: null,
|
|
18
|
+
requestContext: {
|
|
19
|
+
accountId: '000000000000',
|
|
20
|
+
apiId: 'local',
|
|
21
|
+
authorizer: {},
|
|
22
|
+
domainName: 'localhost',
|
|
23
|
+
domainPrefix: 'local',
|
|
24
|
+
extendedRequestId: 'local-extended-request-id',
|
|
25
|
+
httpMethod: 'POST',
|
|
26
|
+
identity: {
|
|
27
|
+
sourceIp: '127.0.0.1',
|
|
28
|
+
userAgent: 'lamkit',
|
|
29
|
+
},
|
|
30
|
+
path: '/local',
|
|
31
|
+
protocol: 'HTTP/1.1',
|
|
32
|
+
requestId: 'local-request-id',
|
|
33
|
+
requestTime: new Date().toUTCString(),
|
|
34
|
+
requestTimeEpoch: Date.now(),
|
|
35
|
+
resourceId: 'local',
|
|
36
|
+
resourcePath: '/local',
|
|
37
|
+
stage: 'local',
|
|
38
|
+
},
|
|
39
|
+
body,
|
|
40
|
+
isBase64Encoded: false,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=apigw.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apigw.js","sourceRoot":"","sources":["../../src/events/apigw.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAEhE,MAAM,UAAU,oBAAoB,CAAC,IAAa;IAChD,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,IAAI,eAAe,CAAC,CAAC;IAEvD,OAAO;QACL,QAAQ,EAAE,QAAQ;QAClB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,MAAM;QAClB,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,IAAI,EAAE,WAAW;SAClB;QACD,iBAAiB,EAAE,EAAE;QACrB,qBAAqB,EAAE,IAAI;QAC3B,+BAA+B,EAAE,IAAI;QACrC,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE;YACd,SAAS,EAAE,cAAc;YACzB,KAAK,EAAE,OAAO;YACd,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,WAAW;YACvB,YAAY,EAAE,OAAO;YACrB,iBAAiB,EAAE,2BAA2B;YAC9C,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE;gBACR,QAAQ,EAAE,WAAW;gBACrB,SAAS,EAAE,QAAQ;aACpB;YACD,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,kBAAkB;YAC7B,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACrC,gBAAgB,EAAE,IAAI,CAAC,GAAG,EAAE;YAC5B,UAAU,EAAE,OAAO;YACnB,YAAY,EAAE,QAAQ;YACtB,KAAK,EAAE,OAAO;SACf;QACD,IAAI;QACJ,eAAe,EAAE,KAAK;KACvB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare const defaultEventBridgeData: {
|
|
2
|
+
source: string;
|
|
3
|
+
action: string;
|
|
4
|
+
};
|
|
5
|
+
export declare function buildEventBridgeEvent(data: unknown, region?: string): {
|
|
6
|
+
version: string;
|
|
7
|
+
id: `${string}-${string}-${string}-${string}-${string}`;
|
|
8
|
+
'detail-type': string;
|
|
9
|
+
source: string;
|
|
10
|
+
account: string;
|
|
11
|
+
time: string;
|
|
12
|
+
region: string;
|
|
13
|
+
resources: never[];
|
|
14
|
+
detail: object;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=eventbridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventbridge.d.ts","sourceRoot":"","sources":["../../src/events/eventbridge.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,sBAAsB;;;CAA6C,CAAC;AAEjF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,SAAc;;;;;;;;;;EAiBxE"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
export const defaultEventBridgeData = { source: 'lamkit.local', action: 'test' };
|
|
3
|
+
export function buildEventBridgeEvent(data, region = 'us-east-1') {
|
|
4
|
+
const detail = data && typeof data === 'object' && !Array.isArray(data)
|
|
5
|
+
? data
|
|
6
|
+
: defaultEventBridgeData;
|
|
7
|
+
return {
|
|
8
|
+
version: '0',
|
|
9
|
+
id: randomUUID(),
|
|
10
|
+
'detail-type': 'lamkit.local',
|
|
11
|
+
source: 'lamkit.local',
|
|
12
|
+
account: '000000000000',
|
|
13
|
+
time: new Date().toISOString(),
|
|
14
|
+
region,
|
|
15
|
+
resources: [],
|
|
16
|
+
detail,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=eventbridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventbridge.js","sourceRoot":"","sources":["../../src/events/eventbridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAEjF,MAAM,UAAU,qBAAqB,CAAC,IAAa,EAAE,MAAM,GAAG,WAAW;IACvE,MAAM,MAAM,GACV,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACtD,CAAC,CAAC,IAAI;QACN,CAAC,CAAE,sBAAkD,CAAC;IAE1D,OAAO;QACL,OAAO,EAAE,GAAG;QACZ,EAAE,EAAE,UAAU,EAAE;QAChB,aAAa,EAAE,cAAc;QAC7B,MAAM,EAAE,cAAc;QACtB,OAAO,EAAE,cAAc;QACvB,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC9B,MAAM;QACN,SAAS,EAAE,EAAE;QACb,MAAM;KACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Trigger } from '../config/schema.js';
|
|
2
|
+
export type BuildEventOptions = {
|
|
3
|
+
region?: string;
|
|
4
|
+
s3Key?: string;
|
|
5
|
+
s3Bucket?: string;
|
|
6
|
+
batchSize?: number;
|
|
7
|
+
queueArn?: string;
|
|
8
|
+
};
|
|
9
|
+
export declare function getDefaultEventData(trigger: Trigger): unknown;
|
|
10
|
+
export declare function buildEventForTrigger(trigger: Trigger, data: unknown | undefined, options?: BuildEventOptions): unknown;
|
|
11
|
+
export { buildApiGatewayEvent } from './apigw.js';
|
|
12
|
+
export { buildEventBridgeEvent } from './eventbridge.js';
|
|
13
|
+
export { buildS3Event } from './s3.js';
|
|
14
|
+
export { buildScheduledEvent } from './schedule.js';
|
|
15
|
+
export { buildSnsEvent } from './sns.js';
|
|
16
|
+
export { buildSqsEvent } from './sqs.js';
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAQnD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAWF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAE7D;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,OAAO,GAAG,SAAS,EACzB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CA0BT;AAED,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { buildApiGatewayEvent, defaultHttpData } from './apigw.js';
|
|
2
|
+
import { buildEventBridgeEvent, defaultEventBridgeData } from './eventbridge.js';
|
|
3
|
+
import { buildScheduledEvent } from './schedule.js';
|
|
4
|
+
import { buildS3Event, defaultS3Data } from './s3.js';
|
|
5
|
+
import { buildSnsEvent, defaultSnsData } from './sns.js';
|
|
6
|
+
import { buildSqsEvent, defaultSqsData } from './sqs.js';
|
|
7
|
+
const defaultDataByTrigger = {
|
|
8
|
+
sqs: defaultSqsData,
|
|
9
|
+
http: defaultHttpData,
|
|
10
|
+
sns: defaultSnsData,
|
|
11
|
+
s3: defaultS3Data,
|
|
12
|
+
eventbridge: defaultEventBridgeData,
|
|
13
|
+
schedule: {},
|
|
14
|
+
};
|
|
15
|
+
export function getDefaultEventData(trigger) {
|
|
16
|
+
return defaultDataByTrigger[trigger];
|
|
17
|
+
}
|
|
18
|
+
export function buildEventForTrigger(trigger, data, options = {}) {
|
|
19
|
+
const region = options.region ?? 'us-east-1';
|
|
20
|
+
const payload = data ?? getDefaultEventData(trigger);
|
|
21
|
+
switch (trigger) {
|
|
22
|
+
case 'sqs':
|
|
23
|
+
return buildSqsEvent(payload, region, options.batchSize, options.queueArn);
|
|
24
|
+
case 'http':
|
|
25
|
+
return buildApiGatewayEvent(payload);
|
|
26
|
+
case 'sns':
|
|
27
|
+
return buildSnsEvent(payload, region);
|
|
28
|
+
case 's3':
|
|
29
|
+
return buildS3Event(payload, {
|
|
30
|
+
region,
|
|
31
|
+
key: options.s3Key,
|
|
32
|
+
bucket: options.s3Bucket,
|
|
33
|
+
});
|
|
34
|
+
case 'eventbridge':
|
|
35
|
+
return buildEventBridgeEvent(payload, region);
|
|
36
|
+
case 'schedule':
|
|
37
|
+
return buildScheduledEvent(payload, region);
|
|
38
|
+
default: {
|
|
39
|
+
const exhaustive = trigger;
|
|
40
|
+
throw new Error(`Unknown trigger "${exhaustive}"`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export { buildApiGatewayEvent } from './apigw.js';
|
|
45
|
+
export { buildEventBridgeEvent } from './eventbridge.js';
|
|
46
|
+
export { buildS3Event } from './s3.js';
|
|
47
|
+
export { buildScheduledEvent } from './schedule.js';
|
|
48
|
+
export { buildSnsEvent } from './sns.js';
|
|
49
|
+
export { buildSqsEvent } from './sqs.js';
|
|
50
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAUzD,MAAM,oBAAoB,GAA6B;IACrD,GAAG,EAAE,cAAc;IACnB,IAAI,EAAE,eAAe;IACrB,GAAG,EAAE,cAAc;IACnB,EAAE,EAAE,aAAa;IACjB,WAAW,EAAE,sBAAsB;IACnC,QAAQ,EAAE,EAAE;CACb,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAgB,EAChB,IAAyB,EACzB,UAA6B,EAAE;IAE/B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC;IAC7C,MAAM,OAAO,GAAG,IAAI,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAErD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,KAAK;YACR,OAAO,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC7E,KAAK,MAAM;YACT,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACvC,KAAK,KAAK;YACR,OAAO,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxC,KAAK,IAAI;YACP,OAAO,YAAY,CAAC,OAAO,EAAE;gBAC3B,MAAM;gBACN,GAAG,EAAE,OAAO,CAAC,KAAK;gBAClB,MAAM,EAAE,OAAO,CAAC,QAAQ;aACzB,CAAC,CAAC;QACL,KAAK,aAAa;YAChB,OAAO,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAChD,KAAK,UAAU;YACb,OAAO,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9C,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,UAAU,GAAU,OAAO,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,oBAAoB,UAAU,GAAG,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;AACH,CAAC;AAED,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC"}
|