@hiiretail/gcp-infra-generators 1.0.0 → 1.0.1

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 (55) hide show
  1. package/dist/generators/clan-resources/clan-project/index.js +89 -189
  2. package/dist/generators/common-resources/bigquery/index.js +172 -267
  3. package/dist/generators/common-resources/budget/index.js +67 -153
  4. package/dist/generators/common-resources/cloud-armor/index.js +17 -167
  5. package/dist/generators/common-resources/cloud-storage/index.js +96 -205
  6. package/dist/generators/common-resources/cloudsql/index.js +71 -177
  7. package/dist/generators/common-resources/cloudsql-database/index.js +40 -287
  8. package/dist/generators/common-resources/confluent-cluster/index.js +23 -132
  9. package/dist/generators/common-resources/datastore/index.js +48 -194
  10. package/dist/generators/common-resources/elastic-cloud/index.js +22 -132
  11. package/dist/generators/common-resources/elastic-index-policy/handle-yaml.js +76 -0
  12. package/dist/generators/common-resources/elastic-index-policy/index.js +131 -286
  13. package/dist/generators/common-resources/elastic-template/index.js +52 -162
  14. package/dist/generators/common-resources/firestore/index.js +93 -233
  15. package/dist/generators/common-resources/iam/index.js +35 -157
  16. package/dist/generators/common-resources/iam/valid-prefix.js +8 -0
  17. package/dist/generators/common-resources/kafka-connect/index.js +35 -144
  18. package/dist/generators/common-resources/kafka-topics/index.js +20 -129
  19. package/dist/generators/common-resources/kms/index.js +31 -141
  20. package/dist/generators/common-resources/memorystore/index.js +42 -328
  21. package/dist/generators/common-resources/monitoring/handle-yaml.js +49 -0
  22. package/dist/generators/common-resources/monitoring/index.js +144 -322
  23. package/dist/generators/common-resources/monitoring/validate.js +58 -0
  24. package/dist/generators/common-resources/pubsub/append.js +130 -0
  25. package/dist/generators/common-resources/pubsub/get-gcp-projects.js +34 -0
  26. package/dist/generators/common-resources/pubsub/handle-subscribers.js +68 -0
  27. package/dist/generators/common-resources/pubsub/index.js +194 -536
  28. package/dist/generators/common-resources/pubsub/validate.js +53 -0
  29. package/dist/generators/common-resources/scheduler/append.js +85 -0
  30. package/dist/generators/common-resources/scheduler/index.js +62 -249
  31. package/dist/generators/common-resources/spanner/append.js +31 -0
  32. package/dist/generators/common-resources/spanner/index.js +102 -269
  33. package/dist/generators/common-resources/spanner/validate.js +38 -0
  34. package/dist/generators/docs/rca/index.js +25 -135
  35. package/dist/generators/docs/runbook/index.js +16 -126
  36. package/dist/generators/docs/srb/index.js +33 -147
  37. package/dist/generators/docs/srb/run-docker.js +2 -0
  38. package/dist/generators/init/clan-infra/gcp-projects.js +47 -0
  39. package/dist/generators/init/clan-infra/index.js +95 -290
  40. package/dist/generators/init/clan-infra/tribe-clan-repo.js +38 -0
  41. package/dist/generators/init/clan-infra/validate.js +8 -0
  42. package/dist/generators/maintenance/manage-states/index.js +142 -219
  43. package/dist/generators/maintenance/update-modules/index.js +56 -155
  44. package/dist/generators/organization/clan-project/googlecloud.js +124 -0
  45. package/dist/generators/organization/clan-project/index.js +81 -303
  46. package/dist/node_modules/.package-lock.json +81 -23
  47. package/dist/package.json +45 -0
  48. package/dist/src/BaseGenerator.js +84 -0
  49. package/dist/src/SecretsGenerator.js +137 -0
  50. package/dist/src/cli.js +54 -255
  51. package/dist/src/dependency-check.js +48 -0
  52. package/dist/src/update-check.js +38 -0
  53. package/dist/src/validators.js +33 -0
  54. package/dist/src/yeoman.js +80 -0
  55. package/package.json +1 -2
@@ -0,0 +1,80 @@
1
+ const fs = require('fs');
2
+ const path = require('path');
3
+ const inquirer = require('inquirer');
4
+ const yeoman = require('yeoman-environment');
5
+
6
+ let env;
7
+
8
+ const lookupGenerators = (dir) => {
9
+ const opts = {
10
+ packagePaths: dir,
11
+ localOnly: true,
12
+ filePatterns: '*/index.js',
13
+ };
14
+
15
+ const generators = [];
16
+
17
+ env.lookup(opts, () => {
18
+ Object.values(env.getGeneratorsMeta()).forEach(
19
+ ({ resolved, namespace }) => {
20
+ env.register(resolved, namespace);
21
+ const generatorJson = path.join(
22
+ path.dirname(resolved),
23
+ 'generator.json',
24
+ );
25
+ const name =
26
+ JSON.parse(fs.readFileSync(generatorJson, 'utf8')).name || namespace;
27
+ generators.push({
28
+ name,
29
+ value: namespace,
30
+ });
31
+ },
32
+ );
33
+ });
34
+
35
+ return generators;
36
+ };
37
+
38
+ const runYeoman = async (dir, name, query) => {
39
+ if (!env) {
40
+ env = yeoman.createEnv();
41
+ }
42
+
43
+ const generators = lookupGenerators(dir);
44
+ if (generators.length === 1) {
45
+ return env.run(generators[0].value);
46
+ }
47
+
48
+ if (name) {
49
+ const match = generators.find((g) => g.value.endsWith(`:${name}`));
50
+ if (match) {
51
+ return env.run(match.value);
52
+ }
53
+ }
54
+
55
+ return env.adapter
56
+ .prompt([
57
+ {
58
+ type: 'list',
59
+ name: 'generator',
60
+ message: query,
61
+ choices: [...generators, new inquirer.Separator(), 'Exit'],
62
+ store: false,
63
+ },
64
+ ])
65
+ .then(({ generator }) => {
66
+ if (generator !== 'Exit') {
67
+ return env.run(generator);
68
+ }
69
+ return null;
70
+ });
71
+ };
72
+
73
+ const setEnvironment = (yeomanEnv) => {
74
+ env = yeomanEnv;
75
+ };
76
+
77
+ module.exports = {
78
+ runYeoman,
79
+ setEnvironment,
80
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hiiretail/gcp-infra-generators",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Infrastructure as code generator for GCP.",
5
5
  "scripts": {
6
6
  "build": "node esbuild.js && npm run build:deps",
@@ -38,7 +38,6 @@
38
38
  "yeoman-generator": "^4.13.0"
39
39
  },
40
40
  "devDependencies": {
41
- "esbuild": "^0.25.8",
42
41
  "mock-fs": "^5.5.0",
43
42
  "yeoman-assert": "^3.1.1",
44
43
  "yeoman-test": "^2.7.0"