@codedrifters/utils 0.0.1 → 0.0.2
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/README.md +23 -14
- package/lib/aws/aws-types.d.ts +26 -4
- package/lib/aws/aws-types.js +11 -6
- package/package.json +1 -3
package/README.md
CHANGED
|
@@ -209,42 +209,49 @@ function configureDeployment(stage: AwsStageType) {
|
|
|
209
209
|
- `AWS_STAGE_TYPE.STAGE` - Staging environment
|
|
210
210
|
- `AWS_STAGE_TYPE.PROD` - Production environment
|
|
211
211
|
|
|
212
|
-
#### `
|
|
212
|
+
#### `DEPLOYMENT_TARGET_ROLE` and `DeploymentTargetRoleType`
|
|
213
213
|
|
|
214
|
-
Constants and types for
|
|
214
|
+
Constants and types for deployment target role (primary vs secondary region).
|
|
215
215
|
|
|
216
216
|
```typescript
|
|
217
|
-
import {
|
|
217
|
+
import { DEPLOYMENT_TARGET_ROLE, DeploymentTargetRoleType } from '@codedrifters/utils/lib/aws/aws-types';
|
|
218
218
|
|
|
219
219
|
// Use the constant
|
|
220
|
-
const
|
|
221
|
-
const
|
|
220
|
+
const role = DEPLOYMENT_TARGET_ROLE.PRIMARY; // "primary"
|
|
221
|
+
const replicaRole = DEPLOYMENT_TARGET_ROLE.SECONDARY; // "secondary"
|
|
222
222
|
|
|
223
223
|
// Use the type
|
|
224
|
-
function configureRegion(
|
|
225
|
-
//
|
|
224
|
+
function configureRegion(role: DeploymentTargetRoleType) {
|
|
225
|
+
// role can be "primary" or "secondary"
|
|
226
226
|
}
|
|
227
227
|
```
|
|
228
228
|
|
|
229
229
|
**Available Values:**
|
|
230
|
-
- `
|
|
231
|
-
- `
|
|
230
|
+
- `DEPLOYMENT_TARGET_ROLE.PRIMARY` - Primary deployment target (account/region)
|
|
231
|
+
- `DEPLOYMENT_TARGET_ROLE.SECONDARY` - Secondary/replica deployment target
|
|
232
232
|
|
|
233
233
|
**Example Usage:**
|
|
234
234
|
|
|
235
235
|
```typescript
|
|
236
|
-
import { AWS_STAGE_TYPE,
|
|
236
|
+
import { AWS_STAGE_TYPE, DEPLOYMENT_TARGET_ROLE } from '@codedrifters/utils/lib/aws/aws-types';
|
|
237
237
|
import { AwsDeploymentTarget } from '@codedrifters/configulator';
|
|
238
238
|
|
|
239
|
-
// Configure a deployment target
|
|
239
|
+
// Configure a deployment target (preferred: deploymentTargetRole)
|
|
240
240
|
new AwsDeploymentTarget(project, {
|
|
241
241
|
account: '123456789012',
|
|
242
242
|
region: 'us-east-1',
|
|
243
243
|
awsStageType: AWS_STAGE_TYPE.PROD,
|
|
244
|
-
|
|
244
|
+
deploymentTargetRole: DEPLOYMENT_TARGET_ROLE.PRIMARY,
|
|
245
245
|
});
|
|
246
246
|
```
|
|
247
247
|
|
|
248
|
+
#### `AWS_ENVIRONMENT_TYPE` and `AwsEnvironmentType` (deprecated)
|
|
249
|
+
|
|
250
|
+
**Deprecated.** Use `DEPLOYMENT_TARGET_ROLE` and `DeploymentTargetRoleType` instead. These names are maintained for backward compatibility.
|
|
251
|
+
|
|
252
|
+
- `AWS_ENVIRONMENT_TYPE` - Same as `DEPLOYMENT_TARGET_ROLE` (PRIMARY, SECONDARY)
|
|
253
|
+
- `AwsEnvironmentType` - Same as `DeploymentTargetRoleType`
|
|
254
|
+
|
|
248
255
|
## API Reference
|
|
249
256
|
|
|
250
257
|
### Exports
|
|
@@ -262,8 +269,10 @@ The package exports the following utility functions:
|
|
|
262
269
|
**AWS Types:**
|
|
263
270
|
- `AWS_STAGE_TYPE` - Constants for deployment stages (DEV, STAGE, PROD)
|
|
264
271
|
- `AwsStageType` - Type for deployment stage values
|
|
265
|
-
- `
|
|
266
|
-
- `
|
|
272
|
+
- `DEPLOYMENT_TARGET_ROLE` - Constants for deployment target role (PRIMARY, SECONDARY)
|
|
273
|
+
- `DeploymentTargetRoleType` - Type for deployment target role values
|
|
274
|
+
- `AWS_ENVIRONMENT_TYPE` - (Deprecated) Use `DEPLOYMENT_TARGET_ROLE` instead
|
|
275
|
+
- `AwsEnvironmentType` - (Deprecated) Use `DeploymentTargetRoleType` instead
|
|
267
276
|
|
|
268
277
|
### Import Paths
|
|
269
278
|
|
package/lib/aws/aws-types.d.ts
CHANGED
|
@@ -22,9 +22,29 @@ export declare const AWS_STAGE_TYPE: {
|
|
|
22
22
|
*/
|
|
23
23
|
export type AwsStageType = (typeof AWS_STAGE_TYPE)[keyof typeof AWS_STAGE_TYPE];
|
|
24
24
|
/**
|
|
25
|
-
*
|
|
25
|
+
* Deployment target role: whether an (account, region) is the primary or
|
|
26
|
+
* secondary deployment target (e.g. primary vs replica region).
|
|
27
|
+
*/
|
|
28
|
+
export declare const DEPLOYMENT_TARGET_ROLE: {
|
|
29
|
+
/**
|
|
30
|
+
* Account and region that represents the primary region for this service.
|
|
31
|
+
* For example, the base DynamoDB Region for global tables.
|
|
32
|
+
*/
|
|
33
|
+
readonly PRIMARY: "primary";
|
|
34
|
+
/**
|
|
35
|
+
* Account and region that represents a secondary region for this service.
|
|
36
|
+
* For example, a replica region for a global DynamoDB table.
|
|
37
|
+
*/
|
|
38
|
+
readonly SECONDARY: "secondary";
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Type for deployment target role values.
|
|
42
|
+
*/
|
|
43
|
+
export type DeploymentTargetRoleType = (typeof DEPLOYMENT_TARGET_ROLE)[keyof typeof DEPLOYMENT_TARGET_ROLE];
|
|
44
|
+
/**
|
|
45
|
+
* Environment types (primary/secondary).
|
|
26
46
|
*
|
|
27
|
-
*
|
|
47
|
+
* @deprecated Use {@link DEPLOYMENT_TARGET_ROLE} instead. This constant is maintained for backward compatibility.
|
|
28
48
|
*/
|
|
29
49
|
export declare const AWS_ENVIRONMENT_TYPE: {
|
|
30
50
|
/**
|
|
@@ -39,6 +59,8 @@ export declare const AWS_ENVIRONMENT_TYPE: {
|
|
|
39
59
|
readonly SECONDARY: "secondary";
|
|
40
60
|
};
|
|
41
61
|
/**
|
|
42
|
-
*
|
|
62
|
+
* Type for environment type values.
|
|
63
|
+
*
|
|
64
|
+
* @deprecated Use {@link DeploymentTargetRoleType} instead. This type is maintained for backward compatibility.
|
|
43
65
|
*/
|
|
44
|
-
export type AwsEnvironmentType =
|
|
66
|
+
export type AwsEnvironmentType = DeploymentTargetRoleType;
|
package/lib/aws/aws-types.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AWS_ENVIRONMENT_TYPE = exports.AWS_STAGE_TYPE = void 0;
|
|
3
|
+
exports.AWS_ENVIRONMENT_TYPE = exports.DEPLOYMENT_TARGET_ROLE = exports.AWS_STAGE_TYPE = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Stage Types
|
|
6
6
|
*
|
|
@@ -21,11 +21,10 @@ exports.AWS_STAGE_TYPE = {
|
|
|
21
21
|
PROD: "prod",
|
|
22
22
|
};
|
|
23
23
|
/**
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
* Is this a primary of secondary region / environment?
|
|
24
|
+
* Deployment target role: whether an (account, region) is the primary or
|
|
25
|
+
* secondary deployment target (e.g. primary vs replica region).
|
|
27
26
|
*/
|
|
28
|
-
exports.
|
|
27
|
+
exports.DEPLOYMENT_TARGET_ROLE = {
|
|
29
28
|
/**
|
|
30
29
|
* Account and region that represents the primary region for this service.
|
|
31
30
|
* For example, the base DynamoDB Region for global tables.
|
|
@@ -37,4 +36,10 @@ exports.AWS_ENVIRONMENT_TYPE = {
|
|
|
37
36
|
*/
|
|
38
37
|
SECONDARY: "secondary",
|
|
39
38
|
};
|
|
40
|
-
|
|
39
|
+
/**
|
|
40
|
+
* Environment types (primary/secondary).
|
|
41
|
+
*
|
|
42
|
+
* @deprecated Use {@link DEPLOYMENT_TARGET_ROLE} instead. This constant is maintained for backward compatibility.
|
|
43
|
+
*/
|
|
44
|
+
exports.AWS_ENVIRONMENT_TYPE = exports.DEPLOYMENT_TARGET_ROLE;
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3cy9hd3MtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7R0FJRztBQUNVLFFBQUEsY0FBYyxHQUFHO0lBQzVCOztPQUVHO0lBQ0gsR0FBRyxFQUFFLEtBQUs7SUFFVjs7T0FFRztJQUNILEtBQUssRUFBRSxPQUFPO0lBRWQ7O09BRUc7SUFDSCxJQUFJLEVBQUUsTUFBTTtDQUNKLENBQUM7QUFPWDs7O0dBR0c7QUFDVSxRQUFBLHNCQUFzQixHQUFHO0lBQ3BDOzs7T0FHRztJQUNILE9BQU8sRUFBRSxTQUFTO0lBQ2xCOzs7T0FHRztJQUNILFNBQVMsRUFBRSxXQUFXO0NBQ2QsQ0FBQztBQVFYOzs7O0dBSUc7QUFDVSxRQUFBLG9CQUFvQixHQUFHLDhCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTdGFnZSBUeXBlc1xuICpcbiAqIFdoYXQgc3RhZ2Ugb2YgZGVwbG95bWVudCBpcyB0aGlzPyBEZXYsIHN0YWdpbmcsIG9yIHByb2Q/XG4gKi9cbmV4cG9ydCBjb25zdCBBV1NfU1RBR0VfVFlQRSA9IHtcbiAgLyoqXG4gICAqIERldmVsb3BtZW50IGVudmlyb25tZW50LCB0eXBpY2FsbHkgdXNlZCBmb3IgdGVzdGluZyBhbmQgZGV2ZWxvcG1lbnQuXG4gICAqL1xuICBERVY6IFwiZGV2XCIsXG5cbiAgLyoqXG4gICAqIFN0YWdpbmcgZW52aXJvbm1lbnQsIHVzZWQgZm9yIHByZS1wcm9kdWN0aW9uIHRlc3RpbmcuXG4gICAqL1xuICBTVEFHRTogXCJzdGFnZVwiLFxuXG4gIC8qKlxuICAgKiBQcm9kdWN0aW9uIGVudmlyb25tZW50LCB1c2VkIGZvciBsaXZlIGRlcGxveW1lbnRzLlxuICAgKi9cbiAgUFJPRDogXCJwcm9kXCIsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIEFib3ZlIGNvbnN0IGFzIGEgdHlwZS5cbiAqL1xuZXhwb3J0IHR5cGUgQXdzU3RhZ2VUeXBlID0gKHR5cGVvZiBBV1NfU1RBR0VfVFlQRSlba2V5b2YgdHlwZW9mIEFXU19TVEFHRV9UWVBFXTtcblxuLyoqXG4gKiBEZXBsb3ltZW50IHRhcmdldCByb2xlOiB3aGV0aGVyIGFuIChhY2NvdW50LCByZWdpb24pIGlzIHRoZSBwcmltYXJ5IG9yXG4gKiBzZWNvbmRhcnkgZGVwbG95bWVudCB0YXJnZXQgKGUuZy4gcHJpbWFyeSB2cyByZXBsaWNhIHJlZ2lvbikuXG4gKi9cbmV4cG9ydCBjb25zdCBERVBMT1lNRU5UX1RBUkdFVF9ST0xFID0ge1xuICAvKipcbiAgICogQWNjb3VudCBhbmQgcmVnaW9uIHRoYXQgcmVwcmVzZW50cyB0aGUgcHJpbWFyeSByZWdpb24gZm9yIHRoaXMgc2VydmljZS5cbiAgICogRm9yIGV4YW1wbGUsIHRoZSBiYXNlIER5bmFtb0RCIFJlZ2lvbiBmb3IgZ2xvYmFsIHRhYmxlcy5cbiAgICovXG4gIFBSSU1BUlk6IFwicHJpbWFyeVwiLFxuICAvKipcbiAgICogQWNjb3VudCBhbmQgcmVnaW9uIHRoYXQgcmVwcmVzZW50cyBhIHNlY29uZGFyeSByZWdpb24gZm9yIHRoaXMgc2VydmljZS5cbiAgICogRm9yIGV4YW1wbGUsIGEgcmVwbGljYSByZWdpb24gZm9yIGEgZ2xvYmFsIER5bmFtb0RCIHRhYmxlLlxuICAgKi9cbiAgU0VDT05EQVJZOiBcInNlY29uZGFyeVwiLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBUeXBlIGZvciBkZXBsb3ltZW50IHRhcmdldCByb2xlIHZhbHVlcy5cbiAqL1xuZXhwb3J0IHR5cGUgRGVwbG95bWVudFRhcmdldFJvbGVUeXBlID1cbiAgKHR5cGVvZiBERVBMT1lNRU5UX1RBUkdFVF9ST0xFKVtrZXlvZiB0eXBlb2YgREVQTE9ZTUVOVF9UQVJHRVRfUk9MRV07XG5cbi8qKlxuICogRW52aXJvbm1lbnQgdHlwZXMgKHByaW1hcnkvc2Vjb25kYXJ5KS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIERFUExPWU1FTlRfVEFSR0VUX1JPTEV9IGluc3RlYWQuIFRoaXMgY29uc3RhbnQgaXMgbWFpbnRhaW5lZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS5cbiAqL1xuZXhwb3J0IGNvbnN0IEFXU19FTlZJUk9OTUVOVF9UWVBFID0gREVQTE9ZTUVOVF9UQVJHRVRfUk9MRTtcblxuLyoqXG4gKiBUeXBlIGZvciBlbnZpcm9ubWVudCB0eXBlIHZhbHVlcy5cbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIERlcGxveW1lbnRUYXJnZXRSb2xlVHlwZX0gaW5zdGVhZC4gVGhpcyB0eXBlIGlzIG1haW50YWluZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4gKi9cbmV4cG9ydCB0eXBlIEF3c0Vudmlyb25tZW50VHlwZSA9IERlcGxveW1lbnRUYXJnZXRSb2xlVHlwZTtcbiJdfQ==
|
package/package.json
CHANGED
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
},
|
|
30
30
|
"main": "lib/index.js",
|
|
31
31
|
"license": "MIT",
|
|
32
|
-
"version": "0.0.
|
|
32
|
+
"version": "0.0.2",
|
|
33
33
|
"types": "lib/index.d.ts",
|
|
34
34
|
"//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\".",
|
|
35
35
|
"scripts": {
|
|
@@ -40,14 +40,12 @@
|
|
|
40
40
|
"eslint": "npx projen eslint",
|
|
41
41
|
"package": "npx projen package",
|
|
42
42
|
"post-compile": "npx projen post-compile",
|
|
43
|
-
"post-upgrade": "npx projen post-upgrade",
|
|
44
43
|
"pre-compile": "npx projen pre-compile",
|
|
45
44
|
"release": "npx projen release",
|
|
46
45
|
"reset": "npx projen reset",
|
|
47
46
|
"test": "npx projen test",
|
|
48
47
|
"test:watch": "npx projen test:watch",
|
|
49
48
|
"unbump": "npx projen unbump",
|
|
50
|
-
"upgrade": "npx projen upgrade",
|
|
51
49
|
"watch": "npx projen watch",
|
|
52
50
|
"projen": "npx projen"
|
|
53
51
|
}
|