@nikovirtala/projen-localstack 1.0.3 → 1.0.4
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/.jsii +18 -10
- package/README.md +5 -5
- package/lib/index.js +8 -8
- package/package.json +2 -1
package/.jsii
CHANGED
|
@@ -7,11 +7,19 @@
|
|
|
7
7
|
]
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
|
+
"@nikovirtala/projen-colima": "^1.0.0",
|
|
10
11
|
"@nikovirtala/projen-homebrew": "^1.0.0",
|
|
11
12
|
"constructs": "^10.4.3",
|
|
12
13
|
"projen": "^0.98.10"
|
|
13
14
|
},
|
|
14
15
|
"dependencyClosure": {
|
|
16
|
+
"@nikovirtala/projen-colima": {
|
|
17
|
+
"targets": {
|
|
18
|
+
"js": {
|
|
19
|
+
"npm": "@nikovirtala/projen-colima"
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
},
|
|
15
23
|
"@nikovirtala/projen-homebrew": {
|
|
16
24
|
"targets": {
|
|
17
25
|
"js": {
|
|
@@ -102,7 +110,7 @@
|
|
|
102
110
|
},
|
|
103
111
|
"name": "@nikovirtala/projen-localstack",
|
|
104
112
|
"readme": {
|
|
105
|
-
"markdown": "# projen-localstack\n\nLocalStack component for projen projects.\n\n## Installation\n\n```bash\nnpm install @nikovirtala/projen-localstack\n```\n\n## Usage\n\nAdd the LocalStack component to your projen project:\n\n```typescript\nimport { LocalStack } from \"@nikovirtala/projen-localstack\";\nimport { javascript } from \"projen\";\n\nconst project = new javascript.NodeProject({\n name: \"my-project\",\n defaultReleaseBranch: \"main\",\n});\n\nnew LocalStack(project);\n\nproject.synth();\n```\n\n## Configuration\n\nThe LocalStack component accepts the following options:\n\n```typescript\nnew LocalStack(project, {\n services: [\"s3\", \"lambda\", \"dynamodb\"], // Specific services to enable\n port: 4566, // LocalStack gateway port (default: 4566)\n debug: true, // Enable debug mode (default: false)\n imageTag: \"latest\", // Docker image tag (default: \"latest\")\n});\n```\n\n## Features\n\n- Automatically installs LocalStack
|
|
113
|
+
"markdown": "# projen-localstack\n\nLocalStack component for projen projects.\n\n## Installation\n\n```bash\nnpm install @nikovirtala/projen-localstack\n```\n\n## Usage\n\nAdd the LocalStack component to your projen project:\n\n```typescript\nimport { LocalStack } from \"@nikovirtala/projen-localstack\";\nimport { javascript } from \"projen\";\n\nconst project = new javascript.NodeProject({\n name: \"my-project\",\n defaultReleaseBranch: \"main\",\n});\n\nnew LocalStack(project);\n\nproject.synth();\n```\n\n## Configuration\n\nThe LocalStack component accepts the following options:\n\n```typescript\nnew LocalStack(project, {\n services: [\"s3\", \"lambda\", \"dynamodb\"], // Specific services to enable\n port: 4566, // LocalStack gateway port (default: 4566)\n debug: true, // Enable debug mode (default: false)\n imageTag: \"latest\", // Docker image tag (default: \"latest\")\n});\n```\n\n## Features\n\n- Automatically installs LocalStack via Homebrew\n- Integrates with [@nikovirtala/projen-colima](https://github.com/nikovirtala/projen-colima) for Docker runtime\n- Creates task to manage LocalStack\n- Adds `aws-cdk-local` to devDependencies\n- Integrates with test task to start LocalStack before tests\n\n## Tasks\n\nThe component creates the following task:\n\n- `localstack` - Starts LocalStack if not already running (depends on `colima` task from [@nikovirtala/projen-colima](https://github.com/nikovirtala/projen-colima))\n\n## License\n\nMIT\n"
|
|
106
114
|
},
|
|
107
115
|
"repository": {
|
|
108
116
|
"type": "git",
|
|
@@ -130,7 +138,7 @@
|
|
|
130
138
|
},
|
|
131
139
|
"locationInModule": {
|
|
132
140
|
"filename": "src/index.ts",
|
|
133
|
-
"line":
|
|
141
|
+
"line": 41
|
|
134
142
|
},
|
|
135
143
|
"parameters": [
|
|
136
144
|
{
|
|
@@ -151,7 +159,7 @@
|
|
|
151
159
|
"kind": "class",
|
|
152
160
|
"locationInModule": {
|
|
153
161
|
"filename": "src/index.ts",
|
|
154
|
-
"line":
|
|
162
|
+
"line": 40
|
|
155
163
|
},
|
|
156
164
|
"name": "LocalStack",
|
|
157
165
|
"symbolId": "src/index:LocalStack"
|
|
@@ -167,7 +175,7 @@
|
|
|
167
175
|
"kind": "interface",
|
|
168
176
|
"locationInModule": {
|
|
169
177
|
"filename": "src/index.ts",
|
|
170
|
-
"line":
|
|
178
|
+
"line": 9
|
|
171
179
|
},
|
|
172
180
|
"name": "LocalStackOptions",
|
|
173
181
|
"properties": [
|
|
@@ -181,7 +189,7 @@
|
|
|
181
189
|
"immutable": true,
|
|
182
190
|
"locationInModule": {
|
|
183
191
|
"filename": "src/index.ts",
|
|
184
|
-
"line":
|
|
192
|
+
"line": 26
|
|
185
193
|
},
|
|
186
194
|
"name": "debug",
|
|
187
195
|
"optional": true,
|
|
@@ -199,7 +207,7 @@
|
|
|
199
207
|
"immutable": true,
|
|
200
208
|
"locationInModule": {
|
|
201
209
|
"filename": "src/index.ts",
|
|
202
|
-
"line":
|
|
210
|
+
"line": 32
|
|
203
211
|
},
|
|
204
212
|
"name": "imageTag",
|
|
205
213
|
"optional": true,
|
|
@@ -217,7 +225,7 @@
|
|
|
217
225
|
"immutable": true,
|
|
218
226
|
"locationInModule": {
|
|
219
227
|
"filename": "src/index.ts",
|
|
220
|
-
"line":
|
|
228
|
+
"line": 20
|
|
221
229
|
},
|
|
222
230
|
"name": "port",
|
|
223
231
|
"optional": true,
|
|
@@ -235,7 +243,7 @@
|
|
|
235
243
|
"immutable": true,
|
|
236
244
|
"locationInModule": {
|
|
237
245
|
"filename": "src/index.ts",
|
|
238
|
-
"line":
|
|
246
|
+
"line": 14
|
|
239
247
|
},
|
|
240
248
|
"name": "services",
|
|
241
249
|
"optional": true,
|
|
@@ -252,6 +260,6 @@
|
|
|
252
260
|
"symbolId": "src/index:LocalStackOptions"
|
|
253
261
|
}
|
|
254
262
|
},
|
|
255
|
-
"version": "1.0.
|
|
256
|
-
"fingerprint": "
|
|
263
|
+
"version": "1.0.4",
|
|
264
|
+
"fingerprint": "WsV0Eng2eU85IXxVn1wggvDVEdWwk6+ULCXpZWEzSNY="
|
|
257
265
|
}
|
package/README.md
CHANGED
|
@@ -41,17 +41,17 @@ new LocalStack(project, {
|
|
|
41
41
|
|
|
42
42
|
## Features
|
|
43
43
|
|
|
44
|
-
- Automatically installs LocalStack
|
|
45
|
-
-
|
|
44
|
+
- Automatically installs LocalStack via Homebrew
|
|
45
|
+
- Integrates with [@nikovirtala/projen-colima](https://github.com/nikovirtala/projen-colima) for Docker runtime
|
|
46
|
+
- Creates task to manage LocalStack
|
|
46
47
|
- Adds `aws-cdk-local` to devDependencies
|
|
47
48
|
- Integrates with test task to start LocalStack before tests
|
|
48
49
|
|
|
49
50
|
## Tasks
|
|
50
51
|
|
|
51
|
-
The component creates the following
|
|
52
|
+
The component creates the following task:
|
|
52
53
|
|
|
53
|
-
- `
|
|
54
|
-
- `localstack` - Starts LocalStack if not already running
|
|
54
|
+
- `localstack` - Starts LocalStack if not already running (depends on `colima` task from [@nikovirtala/projen-colima](https://github.com/nikovirtala/projen-colima))
|
|
55
55
|
|
|
56
56
|
## License
|
|
57
57
|
|
package/lib/index.js
CHANGED
|
@@ -3,6 +3,7 @@ var _a;
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.LocalStack = void 0;
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const projen_colima_1 = require("@nikovirtala/projen-colima");
|
|
6
7
|
const projen_homebrew_1 = require("@nikovirtala/projen-homebrew");
|
|
7
8
|
const component_1 = require("projen/lib/component");
|
|
8
9
|
/**
|
|
@@ -15,16 +16,13 @@ class LocalStack extends component_1.Component {
|
|
|
15
16
|
super(project);
|
|
16
17
|
const port = options.port ?? 4566;
|
|
17
18
|
const debug = options.debug ?? false;
|
|
19
|
+
new projen_colima_1.Colima(project);
|
|
18
20
|
let homebrew = projen_homebrew_1.Homebrew.of(project);
|
|
19
21
|
if (!homebrew) {
|
|
20
22
|
homebrew = new projen_homebrew_1.Homebrew(project);
|
|
21
23
|
}
|
|
22
|
-
homebrew.addPackage("colima");
|
|
23
|
-
homebrew.addPackage("docker");
|
|
24
24
|
homebrew.addPackage("localstack");
|
|
25
|
-
const colimaTask = project.
|
|
26
|
-
exec: "colima status >/dev/null 2>&1 || colima start",
|
|
27
|
-
});
|
|
25
|
+
const colimaTask = project.tasks.tryFind("colima");
|
|
28
26
|
const envVars = [`LOCALSTACK_PORT=${port}`, `LOCALSTACK_DEBUG=${debug ? "1" : "0"}`];
|
|
29
27
|
if (options.services) {
|
|
30
28
|
envVars.push(`SERVICES=${options.services.join(",")}`);
|
|
@@ -32,7 +30,9 @@ class LocalStack extends component_1.Component {
|
|
|
32
30
|
const localstackTask = project.addTask("localstack", {
|
|
33
31
|
exec: `localstack status | grep -q running || ${envVars.join(" ")} localstack start -d`,
|
|
34
32
|
});
|
|
35
|
-
|
|
33
|
+
if (colimaTask) {
|
|
34
|
+
localstackTask.prependSpawn(colimaTask);
|
|
35
|
+
}
|
|
36
36
|
project.addDevDeps("aws-cdk-local");
|
|
37
37
|
const testTask = project.tasks.tryFind("test");
|
|
38
38
|
if (testTask) {
|
|
@@ -42,5 +42,5 @@ class LocalStack extends component_1.Component {
|
|
|
42
42
|
}
|
|
43
43
|
exports.LocalStack = LocalStack;
|
|
44
44
|
_a = JSII_RTTI_SYMBOL_1;
|
|
45
|
-
LocalStack[_a] = { fqn: "@nikovirtala/projen-localstack.LocalStack", version: "1.0.
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
LocalStack[_a] = { fqn: "@nikovirtala/projen-localstack.LocalStack", version: "1.0.4" };
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw4REFBb0Q7QUFDcEQsa0VBQXdEO0FBQ3hELG9EQUFpRDtBQWdDakQ7Ozs7R0FJRztBQUNILE1BQWEsVUFBVyxTQUFRLHFCQUFTO0lBQ3JDLFlBQVksT0FBb0IsRUFBRSxVQUE2QixFQUFFO1FBQzdELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDO1FBQ2xDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDO1FBRXJDLElBQUksc0JBQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVwQixJQUFJLFFBQVEsR0FBRywwQkFBUSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDWixRQUFRLEdBQUcsSUFBSSwwQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFFRCxRQUFRLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRWxDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRW5ELE1BQU0sT0FBTyxHQUFHLENBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFFLG9CQUFvQixLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNyRixJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQixPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNELENBQUM7UUFFRCxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtZQUNqRCxJQUFJLEVBQUUsMENBQTBDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLHNCQUFzQjtTQUMxRixDQUFDLENBQUM7UUFFSCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2IsY0FBYyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBRUQsT0FBTyxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUVwQyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ1gsUUFBUSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMxQyxDQUFDO0lBQ0wsQ0FBQzs7QUFyQ0wsZ0NBc0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29saW1hIH0gZnJvbSBcIkBuaWtvdmlydGFsYS9wcm9qZW4tY29saW1hXCI7XG5pbXBvcnQgeyBIb21lYnJldyB9IGZyb20gXCJAbmlrb3ZpcnRhbGEvcHJvamVuLWhvbWVicmV3XCI7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwicHJvamVuL2xpYi9jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgTm9kZVByb2plY3QgfSBmcm9tIFwicHJvamVuL2xpYi9qYXZhc2NyaXB0XCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgTG9jYWxTdGFjayBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYWxTdGFja09wdGlvbnMge1xuICAgIC8qKlxuICAgICAqIExvY2FsU3RhY2sgc2VydmljZXMgdG8gZW5hYmxlLlxuICAgICAqIEBkZWZhdWx0IC0gYWxsIHNlcnZpY2VzIGVuYWJsZWRcbiAgICAgKi9cbiAgICByZWFkb25seSBzZXJ2aWNlcz86IHN0cmluZ1tdO1xuXG4gICAgLyoqXG4gICAgICogTG9jYWxTdGFjayBnYXRld2F5IHBvcnQuXG4gICAgICogQGRlZmF1bHQgNDU2NlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHBvcnQ/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBFbmFibGUgTG9jYWxTdGFjayBkZWJ1ZyBtb2RlLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGVidWc/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogTG9jYWxTdGFjayBEb2NrZXIgaW1hZ2UgdGFnLlxuICAgICAqIEBkZWZhdWx0IFwibGF0ZXN0XCJcbiAgICAgKi9cbiAgICByZWFkb25seSBpbWFnZVRhZz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBMb2NhbFN0YWNrIGNvbXBvbmVudCBmb3IgcHJvamVuIHByb2plY3RzLlxuICpcbiAqIEFkZHMgTG9jYWxTdGFjayBzdXBwb3J0IHRvIHlvdXIgcHJvamVjdCB3aXRoIGF1dG9tYXRpYyBEb2NrZXIvQ29saW1hIHNldHVwLlxuICovXG5leHBvcnQgY2xhc3MgTG9jYWxTdGFjayBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgY29uc3RydWN0b3IocHJvamVjdDogTm9kZVByb2plY3QsIG9wdGlvbnM6IExvY2FsU3RhY2tPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICAgICAgY29uc3QgcG9ydCA9IG9wdGlvbnMucG9ydCA/PyA0NTY2O1xuICAgICAgICBjb25zdCBkZWJ1ZyA9IG9wdGlvbnMuZGVidWcgPz8gZmFsc2U7XG5cbiAgICAgICAgbmV3IENvbGltYShwcm9qZWN0KTtcblxuICAgICAgICBsZXQgaG9tZWJyZXcgPSBIb21lYnJldy5vZihwcm9qZWN0KTtcbiAgICAgICAgaWYgKCFob21lYnJldykge1xuICAgICAgICAgICAgaG9tZWJyZXcgPSBuZXcgSG9tZWJyZXcocHJvamVjdCk7XG4gICAgICAgIH1cblxuICAgICAgICBob21lYnJldy5hZGRQYWNrYWdlKFwibG9jYWxzdGFja1wiKTtcblxuICAgICAgICBjb25zdCBjb2xpbWFUYXNrID0gcHJvamVjdC50YXNrcy50cnlGaW5kKFwiY29saW1hXCIpO1xuXG4gICAgICAgIGNvbnN0IGVudlZhcnMgPSBbYExPQ0FMU1RBQ0tfUE9SVD0ke3BvcnR9YCwgYExPQ0FMU1RBQ0tfREVCVUc9JHtkZWJ1ZyA/IFwiMVwiIDogXCIwXCJ9YF07XG4gICAgICAgIGlmIChvcHRpb25zLnNlcnZpY2VzKSB7XG4gICAgICAgICAgICBlbnZWYXJzLnB1c2goYFNFUlZJQ0VTPSR7b3B0aW9ucy5zZXJ2aWNlcy5qb2luKFwiLFwiKX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxvY2Fsc3RhY2tUYXNrID0gcHJvamVjdC5hZGRUYXNrKFwibG9jYWxzdGFja1wiLCB7XG4gICAgICAgICAgICBleGVjOiBgbG9jYWxzdGFjayBzdGF0dXMgfCBncmVwIC1xIHJ1bm5pbmcgfHwgJHtlbnZWYXJzLmpvaW4oXCIgXCIpfSBsb2NhbHN0YWNrIHN0YXJ0IC1kYCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGNvbGltYVRhc2spIHtcbiAgICAgICAgICAgIGxvY2Fsc3RhY2tUYXNrLnByZXBlbmRTcGF3bihjb2xpbWFUYXNrKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHByb2plY3QuYWRkRGV2RGVwcyhcImF3cy1jZGstbG9jYWxcIik7XG5cbiAgICAgICAgY29uc3QgdGVzdFRhc2sgPSBwcm9qZWN0LnRhc2tzLnRyeUZpbmQoXCJ0ZXN0XCIpO1xuICAgICAgICBpZiAodGVzdFRhc2spIHtcbiAgICAgICAgICAgIHRlc3RUYXNrLnByZXBlbmRTcGF3bihsb2NhbHN0YWNrVGFzayk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"projen": "^0.98.10"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
+
"@nikovirtala/projen-colima": "^1.0.0",
|
|
35
36
|
"@nikovirtala/projen-homebrew": "^1.0.0",
|
|
36
37
|
"projen": "^0.98.10"
|
|
37
38
|
},
|
|
@@ -43,7 +44,7 @@
|
|
|
43
44
|
"publishConfig": {
|
|
44
45
|
"access": "public"
|
|
45
46
|
},
|
|
46
|
-
"version": "1.0.
|
|
47
|
+
"version": "1.0.4",
|
|
47
48
|
"types": "lib/index.d.ts",
|
|
48
49
|
"stability": "stable",
|
|
49
50
|
"jsii": {
|