declastruct 1.7.3 → 1.8.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/dist/contract/cli/apply.js +13 -1
- package/dist/contract/cli/apply.js.map +1 -1
- package/dist/contract/cli/invoke.js +21 -1
- package/dist/contract/cli/invoke.js.map +1 -1
- package/dist/contract/cli/plan.d.ts +2 -1
- package/dist/contract/cli/plan.js +14 -3
- package/dist/contract/cli/plan.js.map +1 -1
- package/dist/domain.objects/ContextDeclastructCli.d.ts +15 -0
- package/dist/domain.objects/ContextDeclastructCli.js +3 -0
- package/dist/domain.objects/ContextDeclastructCli.js.map +1 -0
- package/dist/domain.objects/DeclastructPlan.d.ts +7 -1
- package/dist/domain.objects/DeclastructPlan.js.map +1 -1
- package/dist/domain.operations/apply/applyChanges.d.ts +2 -1
- package/dist/domain.operations/apply/applyChanges.js.map +1 -1
- package/dist/domain.operations/plan/planChanges.d.ts +2 -1
- package/dist/domain.operations/plan/planChanges.js +1 -0
- package/dist/domain.operations/plan/planChanges.js.map +1 -1
- package/package.json +9 -4
- package/readme.md +42 -0
|
@@ -90,6 +90,17 @@ const executeApplyCommand = async (input) => {
|
|
|
90
90
|
log.info(` plan: ${relativePlanPath}`);
|
|
91
91
|
log.info(` wish: ${relativeWishPath}`);
|
|
92
92
|
log.info('');
|
|
93
|
+
// create cli context with passthrough args from plan
|
|
94
|
+
const cliContext = {
|
|
95
|
+
passthrough: { argv: plan?.wish.argv ?? [] },
|
|
96
|
+
};
|
|
97
|
+
// inject argv from plan so wish file sees same args as plan time
|
|
98
|
+
// this ensures staleness check compares same resources
|
|
99
|
+
process.argv = [
|
|
100
|
+
process.argv[0],
|
|
101
|
+
process.argv[1],
|
|
102
|
+
...cliContext.passthrough.argv,
|
|
103
|
+
];
|
|
93
104
|
// import wish file
|
|
94
105
|
const wish = await Promise.resolve(`${resolvedWishPath}`).then(s => __importStar(require(s)));
|
|
95
106
|
// validate exports
|
|
@@ -103,10 +114,11 @@ const executeApplyCommand = async (input) => {
|
|
|
103
114
|
// initialize providers
|
|
104
115
|
// log.info('✨ start providers...');
|
|
105
116
|
await Promise.all(providers.map((p) => p.hooks.beforeAll()));
|
|
106
|
-
// create context
|
|
117
|
+
// create context with passthrough args
|
|
107
118
|
const context = {
|
|
108
119
|
bottleneck: new bottleneck_1.default({ maxConcurrent: 1 }),
|
|
109
120
|
log,
|
|
121
|
+
passthrough: cliContext.passthrough,
|
|
110
122
|
};
|
|
111
123
|
// apply changes (plan=null triggers yolo mode, skipping validation)
|
|
112
124
|
const result = await (0, applyChanges_1.applyChanges)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/contract/cli/apply.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,4DAAoC;AACpC,2BAAgC;AAChC,0CAAuC;AACvC,mDAAiD;AACjD,+BAAyC;AACzC,+DAAsD;
|
|
1
|
+
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/contract/cli/apply.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,11 +25,30 @@ const invoke = async ({ args }) => {
|
|
|
25
25
|
.description('Generate a change plan from a wish file')
|
|
26
26
|
.requiredOption('--wish <file>', 'Path to wish file')
|
|
27
27
|
.requiredOption('--into <file>', 'Path to output plan file')
|
|
28
|
-
.
|
|
28
|
+
.usage('--wish <file> --into <file> [-- <wish-args>]')
|
|
29
|
+
.allowExcessArguments(true)
|
|
30
|
+
.configureOutput({
|
|
31
|
+
writeErr: (str) => {
|
|
32
|
+
// intercept unknown option errors and add hint
|
|
33
|
+
if (str.includes('unknown option')) {
|
|
34
|
+
const match = str.match(/unknown option '([^']+)'/);
|
|
35
|
+
const flag = match?.[1] ?? '';
|
|
36
|
+
log.error(str.trim());
|
|
37
|
+
log.error(`hint: to pass args to your wish file, use: -- ${flag}`);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
log.error(str.trim());
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
})
|
|
44
|
+
.action(async (options, command) => {
|
|
29
45
|
try {
|
|
46
|
+
// capture args after -- separator
|
|
47
|
+
const passthroughArgs = command.args;
|
|
30
48
|
await (0, plan_1.executePlanCommand)({
|
|
31
49
|
wishFilePath: options.wish,
|
|
32
50
|
planFilePath: options.into,
|
|
51
|
+
passthroughArgs,
|
|
33
52
|
});
|
|
34
53
|
}
|
|
35
54
|
catch (error) {
|
|
@@ -42,6 +61,7 @@ const invoke = async ({ args }) => {
|
|
|
42
61
|
.description('Apply changes from a plan file')
|
|
43
62
|
.option('--plan <file>', 'Path to plan file, or "yolo" for immediate apply')
|
|
44
63
|
.option('--wish <file>', 'Path to wish file (required when --plan yolo)')
|
|
64
|
+
.allowExcessArguments(true) // ignore passthrough args - apply uses plan's captured state
|
|
45
65
|
.action(async (options) => {
|
|
46
66
|
try {
|
|
47
67
|
await (0, apply_1.executeApplyCommand)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../../src/contract/cli/invoke.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAoC;AAEpC,yEAAwC;AACxC,mCAA8C;AAC9C,iCAA4C;AAE5C,MAAM,GAAG,GAAG,OAAO,CAAC;AAEpB;;;;GAIG;AACI,MAAM,MAAM,GAAG,KAAK,EAAE,EAAE,IAAI,EAAsB,EAAiB,EAAE;IAC1E,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,aAAa,CAAC;SACnB,WAAW,CAAC,wCAAwC,CAAC;SACrD,OAAO,CAAC,sBAAG,CAAC,OAAO,CAAC,CAAC;IAExB,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,yCAAyC,CAAC;SACtD,cAAc,CAAC,eAAe,EAAE,mBAAmB,CAAC;SACpD,cAAc,CAAC,eAAe,EAAE,0BAA0B,CAAC;SAC3D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../../src/contract/cli/invoke.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAoC;AAEpC,yEAAwC;AACxC,mCAA8C;AAC9C,iCAA4C;AAE5C,MAAM,GAAG,GAAG,OAAO,CAAC;AAEpB;;;;GAIG;AACI,MAAM,MAAM,GAAG,KAAK,EAAE,EAAE,IAAI,EAAsB,EAAiB,EAAE;IAC1E,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,aAAa,CAAC;SACnB,WAAW,CAAC,wCAAwC,CAAC;SACrD,OAAO,CAAC,sBAAG,CAAC,OAAO,CAAC,CAAC;IAExB,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,yCAAyC,CAAC;SACtD,cAAc,CAAC,eAAe,EAAE,mBAAmB,CAAC;SACpD,cAAc,CAAC,eAAe,EAAE,0BAA0B,CAAC;SAC3D,KAAK,CAAC,8CAA8C,CAAC;SACrD,oBAAoB,CAAC,IAAI,CAAC;SAC1B,eAAe,CAAC;QACf,QAAQ,EAAE,CAAC,GAAW,EAAE,EAAE;YACxB,+CAA+C;YAC/C,IAAI,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBACpD,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC9B,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtB,GAAG,CAAC,KAAK,CAAC,iDAAiD,IAAI,EAAE,CAAC,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;KACF,CAAC;SACD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;QACjC,IAAI,CAAC;YACH,kCAAkC;YAClC,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YACrC,MAAM,IAAA,yBAAkB,EAAC;gBACvB,YAAY,EAAE,OAAO,CAAC,IAAI;gBAC1B,YAAY,EAAE,OAAO,CAAC,IAAI;gBAC1B,eAAe;aAChB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,gCAAgC,CAAC;SAC7C,MAAM,CAAC,eAAe,EAAE,kDAAkD,CAAC;SAC3E,MAAM,CAAC,eAAe,EAAE,+CAA+C,CAAC;SACxE,oBAAoB,CAAC,IAAI,CAAC,CAAC,6DAA6D;SACxF,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,IAAA,2BAAmB,EAAC;gBACxB,YAAY,EAAE,OAAO,CAAC,IAAI;gBAC1B,YAAY,EAAE,OAAO,CAAC,IAAI;aAC3B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;YAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AACnD,CAAC,CAAC;AA9DW,QAAA,MAAM,UA8DjB"}
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
* .why = provides CLI interface for planning infrastructure changes
|
|
5
5
|
* .note = requires wish file with getResources() and getProviders() exports
|
|
6
6
|
*/
|
|
7
|
-
export declare const executePlanCommand: ({ wishFilePath, planFilePath, }: {
|
|
7
|
+
export declare const executePlanCommand: ({ wishFilePath, planFilePath, passthroughArgs, }: {
|
|
8
8
|
wishFilePath: string;
|
|
9
9
|
planFilePath: string;
|
|
10
|
+
passthroughArgs?: string[];
|
|
10
11
|
}) => Promise<void>;
|
|
@@ -41,7 +41,7 @@ const log = console;
|
|
|
41
41
|
* .why = provides CLI interface for planning infrastructure changes
|
|
42
42
|
* .note = requires wish file with getResources() and getProviders() exports
|
|
43
43
|
*/
|
|
44
|
-
const executePlanCommand = async ({ wishFilePath, planFilePath, }) => {
|
|
44
|
+
const executePlanCommand = async ({ wishFilePath, planFilePath, passthroughArgs = [], }) => {
|
|
45
45
|
// resolve paths
|
|
46
46
|
const resolvedWishPath = (0, path_1.resolve)(process.cwd(), wishFilePath);
|
|
47
47
|
const resolvedPlanPath = (0, path_1.resolve)(process.cwd(), planFilePath);
|
|
@@ -58,7 +58,17 @@ const executePlanCommand = async ({ wishFilePath, planFilePath, }) => {
|
|
|
58
58
|
log.info(` wish: ${relativeWishPath}`);
|
|
59
59
|
log.info(` plan: ${relativePlanPath}`);
|
|
60
60
|
log.info('');
|
|
61
|
-
//
|
|
61
|
+
// create cli context with passthrough args
|
|
62
|
+
const cliContext = {
|
|
63
|
+
passthrough: { argv: passthroughArgs },
|
|
64
|
+
};
|
|
65
|
+
// inject passthrough args into process.argv before import
|
|
66
|
+
process.argv = [
|
|
67
|
+
process.argv[0],
|
|
68
|
+
process.argv[1],
|
|
69
|
+
...cliContext.passthrough.argv,
|
|
70
|
+
];
|
|
71
|
+
// import wish file (now sees passthrough.argv in process.argv)
|
|
62
72
|
const wish = await Promise.resolve(`${resolvedWishPath}`).then(s => __importStar(require(s)));
|
|
63
73
|
// validate exports
|
|
64
74
|
if (typeof wish.getResources !== 'function') {
|
|
@@ -73,10 +83,11 @@ const executePlanCommand = async ({ wishFilePath, planFilePath, }) => {
|
|
|
73
83
|
// initialize providers
|
|
74
84
|
// log.info('✨ start providers...');
|
|
75
85
|
await Promise.all(providers.map((p) => p.hooks.beforeAll()));
|
|
76
|
-
// create context
|
|
86
|
+
// create context with passthrough args
|
|
77
87
|
const context = {
|
|
78
88
|
bottleneck: new bottleneck_1.default({ maxConcurrent: 1 }),
|
|
79
89
|
log,
|
|
90
|
+
passthrough: cliContext.passthrough,
|
|
80
91
|
};
|
|
81
92
|
// plan changes (logs emitted in real-time by planChanges)
|
|
82
93
|
const plan = await (0, planChanges_1.planChanges)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/contract/cli/plan.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,4DAAoC;AACpC,2BAAgC;AAChC,0CAA+C;AAC/C,mDAAiD;AACjD,+BAAkD;AAClD,+DAAsD;
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/contract/cli/plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* .what = context for CLI operations with passthrough args
|
|
3
|
+
* .why = enables wish files to receive args passed via -- separator
|
|
4
|
+
*/
|
|
5
|
+
export type ContextDeclastructCli = {
|
|
6
|
+
/**
|
|
7
|
+
* args passed through from CLI via -- separator
|
|
8
|
+
*/
|
|
9
|
+
passthrough: {
|
|
10
|
+
/**
|
|
11
|
+
* argv to inject into process.argv before wish file import
|
|
12
|
+
*/
|
|
13
|
+
argv: string[];
|
|
14
|
+
};
|
|
15
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContextDeclastructCli.js","sourceRoot":"","sources":["../../src/domain.objects/ContextDeclastructCli.ts"],"names":[],"mappings":""}
|
|
@@ -19,9 +19,15 @@ export interface DeclastructPlan {
|
|
|
19
19
|
*/
|
|
20
20
|
wish: {
|
|
21
21
|
/**
|
|
22
|
-
* file path URI to the wish file
|
|
22
|
+
* file path URI to the wish file
|
|
23
23
|
*/
|
|
24
24
|
uri: string;
|
|
25
|
+
/**
|
|
26
|
+
* args passed via -- separator at plan time
|
|
27
|
+
*
|
|
28
|
+
* .why = apply must replay these to get same resources for staleness check
|
|
29
|
+
*/
|
|
30
|
+
argv: string[];
|
|
25
31
|
};
|
|
26
32
|
/**
|
|
27
33
|
* all proposed changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeclastructPlan.js","sourceRoot":"","sources":["../../src/domain.objects/DeclastructPlan.ts"],"names":[],"mappings":";;;AAAA,mDAA8C;
|
|
1
|
+
{"version":3,"file":"DeclastructPlan.js","sourceRoot":"","sources":["../../src/domain.objects/DeclastructPlan.ts"],"names":[],"mappings":";;;AAAA,mDAA8C;AA2C9C,MAAa,eACX,SAAQ,6BAA6B;;AADvC,0CAOC;AAHe,uBAAO,GAAG,CAAC,MAAM,CAAU,CAAC;AAC5B,sBAAM,GAAG,CAAC,MAAM,CAAU,CAAC;AAC3B,yBAAS,GAAG,EAAW,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type DomainEntity } from 'domain-objects';
|
|
2
2
|
import type { ContextLogTrail } from 'simple-log-methods';
|
|
3
3
|
import type { ContextDeclastruct } from '../../domain.objects/ContextDeclastruct';
|
|
4
|
+
import type { ContextDeclastructCli } from '../../domain.objects/ContextDeclastructCli';
|
|
4
5
|
import { type DeclastructChange } from '../../domain.objects/DeclastructChange';
|
|
5
6
|
import type { DeclastructPlan } from '../../domain.objects/DeclastructPlan';
|
|
6
7
|
import type { DeclastructProvider } from '../../domain.objects/DeclastructProvider';
|
|
@@ -15,6 +16,6 @@ export declare const applyChanges: (input: {
|
|
|
15
16
|
plan: DeclastructPlan | null;
|
|
16
17
|
resources: DomainEntity<any>[];
|
|
17
18
|
providers: DeclastructProvider<any, any>[];
|
|
18
|
-
}, context: ContextLogTrail & ContextDeclastruct) => Promise<{
|
|
19
|
+
}, context: ContextLogTrail & ContextDeclastruct & ContextDeclastructCli) => Promise<{
|
|
19
20
|
appliedChanges: DeclastructChange[];
|
|
20
21
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applyChanges.js","sourceRoot":"","sources":["../../../src/domain.operations/apply/applyChanges.ts"],"names":[],"mappings":";;;AAAA,mDAA4E;AAC5E,mDAAyD;
|
|
1
|
+
{"version":3,"file":"applyChanges.js","sourceRoot":"","sources":["../../../src/domain.operations/apply/applyChanges.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type DomainEntity } from 'domain-objects';
|
|
2
2
|
import type { ContextLogTrail } from 'simple-log-methods';
|
|
3
3
|
import type { ContextDeclastruct } from '../../domain.objects/ContextDeclastruct';
|
|
4
|
+
import type { ContextDeclastructCli } from '../../domain.objects/ContextDeclastructCli';
|
|
4
5
|
import { DeclastructPlan } from '../../domain.objects/DeclastructPlan';
|
|
5
6
|
import type { DeclastructProvider } from '../../domain.objects/DeclastructProvider';
|
|
6
7
|
/**
|
|
@@ -12,4 +13,4 @@ export declare const planChanges: (input: {
|
|
|
12
13
|
resources: DomainEntity<any>[];
|
|
13
14
|
providers: DeclastructProvider<any, any>[];
|
|
14
15
|
wishFilePath: string;
|
|
15
|
-
}, context: ContextLogTrail & ContextDeclastruct) => Promise<DeclastructPlan>;
|
|
16
|
+
}, context: ContextLogTrail & ContextDeclastruct & ContextDeclastructCli) => Promise<DeclastructPlan>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planChanges.js","sourceRoot":"","sources":["../../../src/domain.operations/plan/planChanges.ts"],"names":[],"mappings":";;;AAAA,mDAA4E;
|
|
1
|
+
{"version":3,"file":"planChanges.js","sourceRoot":"","sources":["../../../src/domain.operations/plan/planChanges.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "declastruct",
|
|
3
3
|
"author": "ehmpathy",
|
|
4
4
|
"description": "Add declarative control to any resource constructs. Declare, plan, and apply within an observable pit-of-success.",
|
|
5
|
-
"version": "1.
|
|
5
|
+
"version": "1.8.0",
|
|
6
6
|
"repository": "ehmpathy/declastruct",
|
|
7
7
|
"homepage": "https://github.com/ehmpathy/declastruct",
|
|
8
8
|
"keywords": [
|
|
@@ -53,7 +53,8 @@
|
|
|
53
53
|
"preversion": "npm run prepush",
|
|
54
54
|
"postversion": "git push origin HEAD --tags --no-verify",
|
|
55
55
|
"prepare:husky": "npx husky install && chmod ug+x .husky/*",
|
|
56
|
-
"prepare": "[ -e .git ] && npm run prepare:husky || exit 0"
|
|
56
|
+
"prepare": "[ -e .git ] && npm run prepare:husky || exit 0 && npm run prepare:rhachet",
|
|
57
|
+
"prepare:rhachet": "rhachet init --hooks --roles mechanic behaver driver reviewer librarian ergonomist architect reflector dreamer dispatcher"
|
|
57
58
|
},
|
|
58
59
|
"dependencies": {
|
|
59
60
|
"bottleneck": "2.19.5",
|
|
@@ -90,8 +91,12 @@
|
|
|
90
91
|
"esbuild-register": "3.6.0",
|
|
91
92
|
"husky": "8.0.3",
|
|
92
93
|
"jest": "30.2.0",
|
|
93
|
-
"rhachet": "1.
|
|
94
|
-
"rhachet-
|
|
94
|
+
"rhachet": "1.39.10",
|
|
95
|
+
"rhachet-brains-anthropic": "0.4.0",
|
|
96
|
+
"rhachet-brains-xai": "0.3.3",
|
|
97
|
+
"rhachet-roles-bhrain": "0.23.12",
|
|
98
|
+
"rhachet-roles-bhuild": "0.17.1",
|
|
99
|
+
"rhachet-roles-ehmpathy": "1.34.27",
|
|
95
100
|
"test-fns": "1.7.2",
|
|
96
101
|
"tsc-alias": "1.8.10",
|
|
97
102
|
"tsx": "4.20.6",
|
package/readme.md
CHANGED
|
@@ -120,6 +120,48 @@ planned changes:
|
|
|
120
120
|
+ metadata: { source: "app-web" }
|
|
121
121
|
```
|
|
122
122
|
|
|
123
|
+
#### pass args to your wish file
|
|
124
|
+
|
|
125
|
+
pass args to your wish file via `--` separator:
|
|
126
|
+
|
|
127
|
+
```sh
|
|
128
|
+
npx declastruct plan \
|
|
129
|
+
--wish provision/resources.ts \
|
|
130
|
+
--into provision/.temp/plan.json \
|
|
131
|
+
-- --env prod --region us-west-2
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
args after `--` are injected into `process.argv` before the wish file loads. parse them with node's `parseArgs`:
|
|
135
|
+
|
|
136
|
+
```ts
|
|
137
|
+
import { parseArgs } from 'util';
|
|
138
|
+
|
|
139
|
+
const { values } = parseArgs({
|
|
140
|
+
args: process.argv.slice(2),
|
|
141
|
+
options: {
|
|
142
|
+
env: { type: 'string', default: 'test' },
|
|
143
|
+
region: { type: 'string', default: 'us-east-1' },
|
|
144
|
+
},
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
export const getResources = async () => {
|
|
148
|
+
// use values.env, values.region to configure resources
|
|
149
|
+
return [
|
|
150
|
+
DeclaredAwsS3Bucket.as({
|
|
151
|
+
name: `app-${values.env}-assets`,
|
|
152
|
+
region: values.region,
|
|
153
|
+
}),
|
|
154
|
+
];
|
|
155
|
+
};
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
**typo safety:** unknown flags without `--` trigger an error with guidance:
|
|
159
|
+
|
|
160
|
+
```
|
|
161
|
+
error: unknown option '--env'
|
|
162
|
+
hint: to pass args to your wish file, use: -- --env
|
|
163
|
+
```
|
|
164
|
+
|
|
123
165
|
### 3. **apply** the plan 🪄
|
|
124
166
|
|
|
125
167
|
apply the plan to make your wish come true
|