@awsless/awsless 0.0.217 → 0.0.219
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/bin.js +82 -13
- package/package.json +8 -8
package/dist/bin.js
CHANGED
|
@@ -2512,11 +2512,10 @@ var functionFeature = defineFeature({
|
|
|
2512
2512
|
const resource2 = new TypeObject(2);
|
|
2513
2513
|
const mock = new TypeObject(2);
|
|
2514
2514
|
const mockResponse = new TypeObject(2);
|
|
2515
|
-
for (const [name,
|
|
2515
|
+
for (const [name, props] of Object.entries(stack.functions || {})) {
|
|
2516
2516
|
const varName = camelCase3(`${stack.name}-${name}`);
|
|
2517
2517
|
const funcName = formatLocalResourceName(ctx.appConfig.name, stack.name, "function", name);
|
|
2518
|
-
const
|
|
2519
|
-
const relFile = relative(directories.types, file);
|
|
2518
|
+
const relFile = relative(directories.types, props.file);
|
|
2520
2519
|
types2.addImport(varName, relFile);
|
|
2521
2520
|
resource2.addType(name, `Invoke<'${funcName}', typeof ${varName}>`);
|
|
2522
2521
|
mock.addType(name, `MockBuilder<typeof ${varName}>`);
|
|
@@ -4029,6 +4028,75 @@ var restFeature = defineFeature({
|
|
|
4029
4028
|
}
|
|
4030
4029
|
});
|
|
4031
4030
|
|
|
4031
|
+
// src/feature/task/index.ts
|
|
4032
|
+
import { camelCase as camelCase6 } from "change-case";
|
|
4033
|
+
import { relative as relative4 } from "path";
|
|
4034
|
+
import { Node as Node19, aws as aws19 } from "@awsless/formation";
|
|
4035
|
+
var typeGenCode7 = `
|
|
4036
|
+
import { InvokeOptions } from '@awsless/lambda'
|
|
4037
|
+
import type { Mock } from 'vitest'
|
|
4038
|
+
|
|
4039
|
+
type Func = (...args: any[]) => any
|
|
4040
|
+
|
|
4041
|
+
type Invoke<Name extends string, F extends Func> = {
|
|
4042
|
+
readonly name: Name
|
|
4043
|
+
(payload: Parameters<F>[0], options?: Omit<InvokeOptions, 'name' | 'payload' | 'type'>): Promise<void>
|
|
4044
|
+
}
|
|
4045
|
+
|
|
4046
|
+
type MockHandle<F extends Func> = (payload: Parameters<F>[0]) => void | Promise<void> | Promise<Promise<void>>
|
|
4047
|
+
type MockBuilder<F extends Func> = (handle?: MockHandle<F>) => void
|
|
4048
|
+
type MockObject<F extends Func> = Mock<Parameters<F>, ReturnType<F>>
|
|
4049
|
+
`;
|
|
4050
|
+
var taskFeature = defineFeature({
|
|
4051
|
+
name: "task",
|
|
4052
|
+
async onTypeGen(ctx) {
|
|
4053
|
+
const types2 = new TypeFile("@awsless/awsless");
|
|
4054
|
+
const resources = new TypeObject(1);
|
|
4055
|
+
const mocks = new TypeObject(1);
|
|
4056
|
+
const mockResponses = new TypeObject(1);
|
|
4057
|
+
for (const stack of ctx.stackConfigs) {
|
|
4058
|
+
const resource2 = new TypeObject(2);
|
|
4059
|
+
const mock = new TypeObject(2);
|
|
4060
|
+
const mockResponse = new TypeObject(2);
|
|
4061
|
+
for (const [name, props] of Object.entries(stack.tasks || {})) {
|
|
4062
|
+
const varName = camelCase6(`${stack.name}-${name}`);
|
|
4063
|
+
const funcName = formatLocalResourceName(ctx.appConfig.name, stack.name, "task", name);
|
|
4064
|
+
const relFile = relative4(directories.types, props.consumer.file);
|
|
4065
|
+
types2.addImport(varName, relFile);
|
|
4066
|
+
resource2.addType(name, `Invoke<'${funcName}', typeof ${varName}>`);
|
|
4067
|
+
mock.addType(name, `MockBuilder<typeof ${varName}>`);
|
|
4068
|
+
mockResponse.addType(name, `MockObject<typeof ${varName}>`);
|
|
4069
|
+
}
|
|
4070
|
+
mocks.addType(stack.name, mock);
|
|
4071
|
+
resources.addType(stack.name, resource2);
|
|
4072
|
+
mockResponses.addType(stack.name, mockResponse);
|
|
4073
|
+
}
|
|
4074
|
+
types2.addCode(typeGenCode7);
|
|
4075
|
+
types2.addInterface("TaskResources", resources);
|
|
4076
|
+
types2.addInterface("TaskMock", mocks);
|
|
4077
|
+
types2.addInterface("TaskMockResponse", mockResponses);
|
|
4078
|
+
await ctx.write("task.d.ts", types2, true);
|
|
4079
|
+
},
|
|
4080
|
+
onStack(ctx) {
|
|
4081
|
+
for (const [id, props] of Object.entries(ctx.stackConfig.tasks ?? {})) {
|
|
4082
|
+
const group = new Node19(ctx.stack, "task", id);
|
|
4083
|
+
const { lambda, policy } = createLambdaFunction(group, ctx, "task", id, props.consumer);
|
|
4084
|
+
const invokeConfig = new aws19.lambda.EventInvokeConfig(group, "config", {
|
|
4085
|
+
functionArn: lambda.arn,
|
|
4086
|
+
retryAttempts: props.retryAttempts,
|
|
4087
|
+
onFailure: getGlobalOnFailure(ctx)
|
|
4088
|
+
});
|
|
4089
|
+
invokeConfig.dependsOn(policy);
|
|
4090
|
+
if (hasOnFailure(ctx.stackConfigs)) {
|
|
4091
|
+
policy.addStatement({
|
|
4092
|
+
actions: ["sqs:SendMessage", "sqs:GetQueueUrl"],
|
|
4093
|
+
resources: [getGlobalOnFailure(ctx)]
|
|
4094
|
+
});
|
|
4095
|
+
}
|
|
4096
|
+
}
|
|
4097
|
+
}
|
|
4098
|
+
});
|
|
4099
|
+
|
|
4032
4100
|
// src/feature/index.ts
|
|
4033
4101
|
var features = [
|
|
4034
4102
|
// 1
|
|
@@ -4047,9 +4115,10 @@ var features = [
|
|
|
4047
4115
|
topicFeature,
|
|
4048
4116
|
queueFeature,
|
|
4049
4117
|
storeFeature,
|
|
4118
|
+
cacheFeature,
|
|
4119
|
+
taskFeature,
|
|
4050
4120
|
testFeature,
|
|
4051
4121
|
cronFeature,
|
|
4052
|
-
cacheFeature,
|
|
4053
4122
|
httpFeature,
|
|
4054
4123
|
restFeature,
|
|
4055
4124
|
siteFeature
|
|
@@ -4367,20 +4436,20 @@ var config = (program2) => {
|
|
|
4367
4436
|
import { confirm as confirm3 } from "@clack/prompts";
|
|
4368
4437
|
|
|
4369
4438
|
// src/util/workspace.ts
|
|
4370
|
-
import { WorkSpace, aws as
|
|
4439
|
+
import { WorkSpace, aws as aws20, local } from "@awsless/formation";
|
|
4371
4440
|
import { minutes as minutes4 } from "@awsless/duration";
|
|
4372
4441
|
import { dirname as dirname8, join as join9 } from "path";
|
|
4373
4442
|
import { mkdir as mkdir2, readFile as readFile6, rm, writeFile as writeFile2 } from "fs/promises";
|
|
4374
4443
|
var createWorkSpace = (props) => {
|
|
4375
|
-
const lockProvider = new
|
|
4444
|
+
const lockProvider = new aws20.dynamodb.LockProvider({
|
|
4376
4445
|
...props,
|
|
4377
4446
|
tableName: "awsless-locks"
|
|
4378
4447
|
});
|
|
4379
|
-
const stateProvider = new
|
|
4448
|
+
const stateProvider = new aws20.s3.StateProvider({
|
|
4380
4449
|
...props,
|
|
4381
4450
|
bucket: "awsless-state"
|
|
4382
4451
|
});
|
|
4383
|
-
const cloudProviders =
|
|
4452
|
+
const cloudProviders = aws20.createCloudProviders({
|
|
4384
4453
|
...props,
|
|
4385
4454
|
timeout: minutes4(60)
|
|
4386
4455
|
});
|
|
@@ -4756,7 +4825,7 @@ var deploy = (program2) => {
|
|
|
4756
4825
|
};
|
|
4757
4826
|
|
|
4758
4827
|
// src/cli/command/diff.ts
|
|
4759
|
-
import { WorkSpace as WorkSpace2, aws as
|
|
4828
|
+
import { WorkSpace as WorkSpace2, aws as aws21 } from "@awsless/formation";
|
|
4760
4829
|
import chalk7 from "chalk";
|
|
4761
4830
|
var diff = (program2) => {
|
|
4762
4831
|
program2.command("diff").description("Diff your app with AWS").action(async (filters) => {
|
|
@@ -4768,12 +4837,12 @@ var diff = (program2) => {
|
|
|
4768
4837
|
const { app, builders } = createApp({ appConfig, stackConfigs, accountId }, filters);
|
|
4769
4838
|
await buildAssets(builders);
|
|
4770
4839
|
const workspace = new WorkSpace2({
|
|
4771
|
-
stateProvider: new
|
|
4840
|
+
stateProvider: new aws21.dynamodb.DynamoDBStateProvider({
|
|
4772
4841
|
credentials,
|
|
4773
4842
|
region,
|
|
4774
4843
|
tableName: "awsless-state"
|
|
4775
4844
|
}),
|
|
4776
|
-
cloudProviders:
|
|
4845
|
+
cloudProviders: aws21.createCloudProviders({
|
|
4777
4846
|
credentials,
|
|
4778
4847
|
region: appConfig.region
|
|
4779
4848
|
})
|
|
@@ -4829,7 +4898,7 @@ import { log as log9 } from "@clack/prompts";
|
|
|
4829
4898
|
|
|
4830
4899
|
// src/type-gen/generate.ts
|
|
4831
4900
|
import { mkdir as mkdir4, writeFile as writeFile4 } from "fs/promises";
|
|
4832
|
-
import { dirname as dirname9, join as join11, relative as
|
|
4901
|
+
import { dirname as dirname9, join as join11, relative as relative5 } from "path";
|
|
4833
4902
|
var generateTypes = async (props) => {
|
|
4834
4903
|
const files = [];
|
|
4835
4904
|
await Promise.all(
|
|
@@ -4841,7 +4910,7 @@ var generateTypes = async (props) => {
|
|
|
4841
4910
|
const path = join11(directories.types, file);
|
|
4842
4911
|
if (code) {
|
|
4843
4912
|
if (include) {
|
|
4844
|
-
files.push(
|
|
4913
|
+
files.push(relative5(directories.root, path));
|
|
4845
4914
|
}
|
|
4846
4915
|
await mkdir4(dirname9(path), { recursive: true });
|
|
4847
4916
|
await writeFile4(path, code);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@awsless/awsless",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.219",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -29,14 +29,14 @@
|
|
|
29
29
|
},
|
|
30
30
|
"peerDependencies": {
|
|
31
31
|
"@awsless/lambda": "^0.0.18",
|
|
32
|
-
"@awsless/redis": "^0.0.12",
|
|
33
32
|
"@awsless/open-search": "^0.0.12",
|
|
33
|
+
"@awsless/redis": "^0.0.12",
|
|
34
34
|
"@awsless/s3": "^0.0.10",
|
|
35
35
|
"@awsless/sns": "^0.0.7",
|
|
36
|
-
"@awsless/
|
|
36
|
+
"@awsless/validate": "^0.0.13",
|
|
37
37
|
"@awsless/ssm": "^0.0.7",
|
|
38
|
-
"@awsless/
|
|
39
|
-
"@awsless/
|
|
38
|
+
"@awsless/sqs": "^0.0.7",
|
|
39
|
+
"@awsless/weak-cache": "^0.0.1"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@aws-appsync/utils": "^1.5.0",
|
|
@@ -97,11 +97,11 @@
|
|
|
97
97
|
"wrap-ansi": "^8.1.0",
|
|
98
98
|
"zod": "^3.21.4",
|
|
99
99
|
"zod-to-json-schema": "^3.22.3",
|
|
100
|
-
"@awsless/formation": "^0.0.21",
|
|
101
|
-
"@awsless/graphql": "^0.0.9",
|
|
102
100
|
"@awsless/duration": "^0.0.1",
|
|
103
|
-
"@awsless/
|
|
101
|
+
"@awsless/formation": "^0.0.21",
|
|
104
102
|
"@awsless/size": "^0.0.1",
|
|
103
|
+
"@awsless/validate": "^0.0.13",
|
|
104
|
+
"@awsless/graphql": "^0.0.9",
|
|
105
105
|
"@awsless/code": "^0.0.10"
|
|
106
106
|
},
|
|
107
107
|
"scripts": {
|