projalf 0.0.4 → 0.0.5

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.
Files changed (3) hide show
  1. package/.jsii +4 -4
  2. package/lib/Projalf.js +74 -1
  3. package/package.json +1 -1
package/.jsii CHANGED
@@ -119,7 +119,7 @@
119
119
  },
120
120
  "locationInModule": {
121
121
  "filename": "src/Projalf.ts",
122
- "line": 6
122
+ "line": 8
123
123
  },
124
124
  "parameters": [
125
125
  {
@@ -133,7 +133,7 @@
133
133
  "kind": "class",
134
134
  "locationInModule": {
135
135
  "filename": "src/Projalf.ts",
136
- "line": 5
136
+ "line": 7
137
137
  },
138
138
  "name": "Projalf",
139
139
  "symbolId": "src/Projalf:Projalf"
@@ -151,12 +151,12 @@
151
151
  "kind": "interface",
152
152
  "locationInModule": {
153
153
  "filename": "src/Projalf.ts",
154
- "line": 3
154
+ "line": 5
155
155
  },
156
156
  "name": "ProjalfOptions",
157
157
  "symbolId": "src/Projalf:ProjalfOptions"
158
158
  }
159
159
  },
160
160
  "version": "0.0.0",
161
- "fingerprint": "bH5iLEGfcJfbnS6TpyVCQXEJ6SnscidJ9SfZBg82tUk="
161
+ "fingerprint": "4uffwuxPP2iOBkqQhQeQV1ju+e8swpOB1iA0mCR8QnI="
162
162
  }
package/lib/Projalf.js CHANGED
@@ -3,20 +3,93 @@ var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.Projalf = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const cp = require("child_process");
7
+ const path = require("path");
6
8
  const projen_1 = require("projen");
7
9
  class Projalf extends projen_1.awscdk.AwsCdkTypeScriptApp {
8
10
  constructor(options) {
11
+ const inferredName = options.name ?? inferNameFromGit() ?? inferNameFromCwd();
12
+ const className = toPascalCase(inferredName);
13
+ const fileBase = inferredName.toLowerCase();
14
+ const mergedContext = { ...(options.context ?? {}) };
15
+ if (mergedContext.serviceName === undefined) {
16
+ mergedContext.serviceName = inferredName;
17
+ }
9
18
  super({
10
19
  ...options,
20
+ name: inferredName,
11
21
  defaultReleaseBranch: options.defaultReleaseBranch ?? 'main',
12
22
  packageManager: options.packageManager ?? projen_1.javascript.NodePackageManager.NPM,
13
23
  projenrcTs: options.projenrcTs ?? true,
24
+ cdkVersion: options.cdkVersion ?? '2.156.0',
25
+ context: mergedContext,
14
26
  deps: options.deps ?? [],
15
27
  devDeps: options.devDeps ?? [],
16
28
  });
29
+ new projen_1.SampleFile(this, `src/${fileBase}.ts`, {
30
+ contents: `import * as cdk from 'aws-cdk-lib';
31
+ import { Construct } from 'constructs';
32
+
33
+ export interface ${className}Props extends cdk.StackProps {
34
+ serviceName: string;
35
+ }
36
+
37
+ export class ${className} extends cdk.Stack {
38
+ constructor(scope: Construct, id: string, props: ${className}Props) {
39
+ super(scope, id, props);
40
+ }
41
+ }
42
+ `,
43
+ });
44
+ new projen_1.SampleFile(this, 'src/main.ts', {
45
+ contents: `import * as cdk from 'aws-cdk-lib';
46
+ import { ${className} } from './${fileBase}';
47
+
48
+ const env = {
49
+ account: process.env.CDK_DEPLOY_ACCOUNT ?? process.env.CDK_DEFAULT_ACCOUNT,
50
+ region: process.env.CDK_DEPLOY_REGION ?? process.env.CDK_DEFAULT_REGION,
51
+ };
52
+
53
+ const app = new cdk.App();
54
+
55
+ const serviceName = (app.node.tryGetContext('serviceName') as string | undefined) ?? '${inferredName}';
56
+
57
+ new ${className}(app, serviceName, { env, serviceName });
58
+
59
+ app.synth();
60
+ `,
61
+ });
17
62
  }
18
63
  }
19
64
  exports.Projalf = Projalf;
20
65
  _a = JSII_RTTI_SYMBOL_1;
21
66
  Projalf[_a] = { fqn: "projalf.Projalf", version: "0.0.0" };
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvamFsZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Qcm9qYWxmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQTRDO0FBSTVDLE1BQWEsT0FBUSxTQUFRLGVBQU0sQ0FBQyxtQkFBbUI7SUFDckQsWUFBWSxPQUF1QjtRQUNqQyxLQUFLLENBQUM7WUFDSixHQUFHLE9BQU87WUFDVixvQkFBb0IsRUFBRSxPQUFPLENBQUMsb0JBQW9CLElBQUksTUFBTTtZQUM1RCxjQUFjLEVBQ1osT0FBTyxDQUFDLGNBQWMsSUFBSSxtQkFBVSxDQUFDLGtCQUFrQixDQUFDLEdBQUc7WUFDN0QsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVLElBQUksSUFBSTtZQUN0QyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFO1lBQ3hCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUU7U0FDL0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFYSCwwQkFZQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGF3c2NkaywgamF2YXNjcmlwdCB9IGZyb20gJ3Byb2plbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvamFsZk9wdGlvbnMgZXh0ZW5kcyBhd3NjZGsuQXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMge31cblxuZXhwb3J0IGNsYXNzIFByb2phbGYgZXh0ZW5kcyBhd3NjZGsuQXdzQ2RrVHlwZVNjcmlwdEFwcCB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFByb2phbGZPcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiBvcHRpb25zLmRlZmF1bHRSZWxlYXNlQnJhbmNoID8/ICdtYWluJyxcbiAgICAgIHBhY2thZ2VNYW5hZ2VyOlxuICAgICAgICBvcHRpb25zLnBhY2thZ2VNYW5hZ2VyID8/IGphdmFzY3JpcHQuTm9kZVBhY2thZ2VNYW5hZ2VyLk5QTSxcbiAgICAgIHByb2plbnJjVHM6IG9wdGlvbnMucHJvamVucmNUcyA/PyB0cnVlLFxuICAgICAgZGVwczogb3B0aW9ucy5kZXBzID8/IFtdLFxuICAgICAgZGV2RGVwczogb3B0aW9ucy5kZXZEZXBzID8/IFtdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
67
+ function inferNameFromGit() {
68
+ try {
69
+ const remote = cp
70
+ .execSync('git config --get remote.origin.url', {
71
+ stdio: ['ignore', 'pipe', 'ignore'],
72
+ })
73
+ .toString()
74
+ .trim();
75
+ if (!remote)
76
+ return undefined;
77
+ const match = remote.match(/\/([^\/]+?)(?:\.git)?$/);
78
+ return match?.[1];
79
+ }
80
+ catch {
81
+ return undefined;
82
+ }
83
+ }
84
+ function inferNameFromCwd() {
85
+ return path.basename(process.cwd());
86
+ }
87
+ function toPascalCase(input) {
88
+ return input
89
+ .replace(/[^a-zA-Z0-9]+/g, ' ')
90
+ .split(' ')
91
+ .filter(Boolean)
92
+ .map((part) => part.charAt(0).toUpperCase() + part.slice(1).toLowerCase())
93
+ .join('');
94
+ }
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvamFsZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Qcm9qYWxmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0NBQW9DO0FBQ3BDLDZCQUE2QjtBQUM3QixtQ0FBd0Q7QUFJeEQsTUFBYSxPQUFRLFNBQVEsZUFBTSxDQUFDLG1CQUFtQjtJQUNyRCxZQUFZLE9BQXVCO1FBQ2pDLE1BQU0sWUFBWSxHQUNoQixPQUFPLENBQUMsSUFBSSxJQUFJLGdCQUFnQixFQUFFLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUMzRCxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0MsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRTVDLE1BQU0sYUFBYSxHQUFHLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLEVBQXlCLENBQUM7UUFDNUUsSUFBSSxhQUFhLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDO1FBQzNDLENBQUM7UUFFRCxLQUFLLENBQUM7WUFDSixHQUFHLE9BQU87WUFDVixJQUFJLEVBQUUsWUFBWTtZQUNsQixvQkFBb0IsRUFBRSxPQUFPLENBQUMsb0JBQW9CLElBQUksTUFBTTtZQUM1RCxjQUFjLEVBQ1osT0FBTyxDQUFDLGNBQWMsSUFBSSxtQkFBVSxDQUFDLGtCQUFrQixDQUFDLEdBQUc7WUFDN0QsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVLElBQUksSUFBSTtZQUN0QyxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsSUFBSSxTQUFTO1lBQzNDLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxJQUFJLEVBQUU7WUFDeEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRTtTQUMvQixDQUFDLENBQUM7UUFFSCxJQUFJLG1CQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sUUFBUSxLQUFLLEVBQUU7WUFDekMsUUFBUSxFQUFFOzs7bUJBR0csU0FBUzs7OztlQUliLFNBQVM7cURBQzZCLFNBQVM7Ozs7Q0FJN0Q7U0FDSSxDQUFDLENBQUM7UUFFSCxJQUFJLG1CQUFVLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtZQUNsQyxRQUFRLEVBQUU7V0FDTCxTQUFTLGNBQWMsUUFBUTs7Ozs7Ozs7O3dGQVM4QyxZQUFZOztNQUU5RixTQUFTOzs7Q0FHZDtTQUNJLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBM0RILDBCQTREQzs7O0FBRUQsU0FBUyxnQkFBZ0I7SUFDdkIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxNQUFNLEdBQUcsRUFBRTthQUNkLFFBQVEsQ0FBQyxvQ0FBb0MsRUFBRTtZQUM5QyxLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQztTQUNwQyxDQUFDO2FBQ0QsUUFBUSxFQUFFO2FBQ1YsSUFBSSxFQUFFLENBQUM7UUFDVixJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQzlCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUNyRCxPQUFPLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsZ0JBQWdCO0lBQ3ZCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsS0FBYTtJQUNqQyxPQUFPLEtBQUs7U0FDVCxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDO1NBQzlCLEtBQUssQ0FBQyxHQUFHLENBQUM7U0FDVixNQUFNLENBQUMsT0FBTyxDQUFDO1NBQ2YsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDekUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNwIGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGF3c2NkaywgamF2YXNjcmlwdCwgU2FtcGxlRmlsZSB9IGZyb20gJ3Byb2plbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvamFsZk9wdGlvbnMgZXh0ZW5kcyBhd3NjZGsuQXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMge31cblxuZXhwb3J0IGNsYXNzIFByb2phbGYgZXh0ZW5kcyBhd3NjZGsuQXdzQ2RrVHlwZVNjcmlwdEFwcCB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFByb2phbGZPcHRpb25zKSB7XG4gICAgY29uc3QgaW5mZXJyZWROYW1lID1cbiAgICAgIG9wdGlvbnMubmFtZSA/PyBpbmZlck5hbWVGcm9tR2l0KCkgPz8gaW5mZXJOYW1lRnJvbUN3ZCgpO1xuICAgIGNvbnN0IGNsYXNzTmFtZSA9IHRvUGFzY2FsQ2FzZShpbmZlcnJlZE5hbWUpO1xuICAgIGNvbnN0IGZpbGVCYXNlID0gaW5mZXJyZWROYW1lLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBjb25zdCBtZXJnZWRDb250ZXh0ID0geyAuLi4ob3B0aW9ucy5jb250ZXh0ID8/IHt9KSB9IGFzIFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgaWYgKG1lcmdlZENvbnRleHQuc2VydmljZU5hbWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgbWVyZ2VkQ29udGV4dC5zZXJ2aWNlTmFtZSA9IGluZmVycmVkTmFtZTtcbiAgICB9XG5cbiAgICBzdXBlcih7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgbmFtZTogaW5mZXJyZWROYW1lLFxuICAgICAgZGVmYXVsdFJlbGVhc2VCcmFuY2g6IG9wdGlvbnMuZGVmYXVsdFJlbGVhc2VCcmFuY2ggPz8gJ21haW4nLFxuICAgICAgcGFja2FnZU1hbmFnZXI6XG4gICAgICAgIG9wdGlvbnMucGFja2FnZU1hbmFnZXIgPz8gamF2YXNjcmlwdC5Ob2RlUGFja2FnZU1hbmFnZXIuTlBNLFxuICAgICAgcHJvamVucmNUczogb3B0aW9ucy5wcm9qZW5yY1RzID8/IHRydWUsXG4gICAgICBjZGtWZXJzaW9uOiBvcHRpb25zLmNka1ZlcnNpb24gPz8gJzIuMTU2LjAnLFxuICAgICAgY29udGV4dDogbWVyZ2VkQ29udGV4dCxcbiAgICAgIGRlcHM6IG9wdGlvbnMuZGVwcyA/PyBbXSxcbiAgICAgIGRldkRlcHM6IG9wdGlvbnMuZGV2RGVwcyA/PyBbXSxcbiAgICB9KTtcblxuICAgIG5ldyBTYW1wbGVGaWxlKHRoaXMsIGBzcmMvJHtmaWxlQmFzZX0udHNgLCB7XG4gICAgICBjb250ZW50czogYGltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSAke2NsYXNzTmFtZX1Qcm9wcyBleHRlbmRzIGNkay5TdGFja1Byb3BzIHtcbiAgc2VydmljZU5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzICR7Y2xhc3NOYW1lfSBleHRlbmRzIGNkay5TdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiAke2NsYXNzTmFtZX1Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICB9XG59XG5gLFxuICAgIH0pO1xuXG4gICAgbmV3IFNhbXBsZUZpbGUodGhpcywgJ3NyYy9tYWluLnRzJywge1xuICAgICAgY29udGVudHM6IGBpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgJHtjbGFzc05hbWV9IH0gZnJvbSAnLi8ke2ZpbGVCYXNlfSc7XG5cbmNvbnN0IGVudiA9IHtcbiAgYWNjb3VudDogcHJvY2Vzcy5lbnYuQ0RLX0RFUExPWV9BQ0NPVU5UID8/IHByb2Nlc3MuZW52LkNES19ERUZBVUxUX0FDQ09VTlQsXG4gIHJlZ2lvbjogcHJvY2Vzcy5lbnYuQ0RLX0RFUExPWV9SRUdJT04gPz8gcHJvY2Vzcy5lbnYuQ0RLX0RFRkFVTFRfUkVHSU9OLFxufTtcblxuY29uc3QgYXBwID0gbmV3IGNkay5BcHAoKTtcblxuY29uc3Qgc2VydmljZU5hbWUgPSAoYXBwLm5vZGUudHJ5R2V0Q29udGV4dCgnc2VydmljZU5hbWUnKSBhcyBzdHJpbmcgfCB1bmRlZmluZWQpID8/ICcke2luZmVycmVkTmFtZX0nO1xuXG5uZXcgJHtjbGFzc05hbWV9KGFwcCwgc2VydmljZU5hbWUsIHsgZW52LCBzZXJ2aWNlTmFtZSB9KTtcblxuYXBwLnN5bnRoKCk7XG5gLFxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGluZmVyTmFtZUZyb21HaXQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgdHJ5IHtcbiAgICBjb25zdCByZW1vdGUgPSBjcFxuICAgICAgLmV4ZWNTeW5jKCdnaXQgY29uZmlnIC0tZ2V0IHJlbW90ZS5vcmlnaW4udXJsJywge1xuICAgICAgICBzdGRpbzogWydpZ25vcmUnLCAncGlwZScsICdpZ25vcmUnXSxcbiAgICAgIH0pXG4gICAgICAudG9TdHJpbmcoKVxuICAgICAgLnRyaW0oKTtcbiAgICBpZiAoIXJlbW90ZSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCBtYXRjaCA9IHJlbW90ZS5tYXRjaCgvXFwvKFteXFwvXSs/KSg/OlxcLmdpdCk/JC8pO1xuICAgIHJldHVybiBtYXRjaD8uWzFdO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbmZ1bmN0aW9uIGluZmVyTmFtZUZyb21Dd2QoKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhdGguYmFzZW5hbWUocHJvY2Vzcy5jd2QoKSk7XG59XG5cbmZ1bmN0aW9uIHRvUGFzY2FsQ2FzZShpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGlucHV0XG4gICAgLnJlcGxhY2UoL1teYS16QS1aMC05XSsvZywgJyAnKVxuICAgIC5zcGxpdCgnICcpXG4gICAgLmZpbHRlcihCb29sZWFuKVxuICAgIC5tYXAoKHBhcnQpID0+IHBhcnQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBwYXJ0LnNsaWNlKDEpLnRvTG93ZXJDYXNlKCkpXG4gICAgLmpvaW4oJycpO1xufVxuIl19
package/package.json CHANGED
@@ -64,7 +64,7 @@
64
64
  "publishConfig": {
65
65
  "access": "public"
66
66
  },
67
- "version": "0.0.4",
67
+ "version": "0.0.5",
68
68
  "jest": {
69
69
  "coverageProvider": "v8",
70
70
  "testMatch": [