skuba 8.1.0-test-20240430085832 → 8.2.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/lib/api/git/index.d.ts +1 -0
- package/lib/api/git/index.js +3 -0
- package/lib/api/git/index.js.map +2 -2
- package/lib/api/git/isFileGitIgnored.d.ts +4 -0
- package/lib/api/git/isFileGitIgnored.js +49 -0
- package/lib/api/git/isFileGitIgnored.js.map +7 -0
- package/lib/api/git/pull.js.map +2 -2
- package/lib/api/git/push.d.ts +10 -1
- package/lib/api/git/push.js.map +2 -2
- package/lib/api/github/checkRun.js +2 -2
- package/lib/api/github/checkRun.js.map +2 -2
- package/lib/api/github/environment.d.ts +0 -1
- package/lib/api/github/issueComment.js +2 -2
- package/lib/api/github/issueComment.js.map +2 -2
- package/lib/api/github/octokit.d.ts +4 -0
- package/lib/api/github/octokit.js +3 -0
- package/lib/api/github/octokit.js.map +2 -2
- package/lib/api/github/pullRequest.d.ts +1 -1
- package/lib/api/github/pullRequest.js +2 -2
- package/lib/api/github/pullRequest.js.map +2 -2
- package/lib/api/github/push.d.ts +7 -1
- package/lib/api/github/push.js.map +2 -2
- package/lib/api/jest/index.d.ts +1 -1
- package/lib/cli/adapter/eslint.d.ts +1 -1
- package/lib/cli/adapter/prettier.d.ts +2 -2
- package/lib/cli/configure/ensureTemplateCompletion.js +18 -2
- package/lib/cli/configure/ensureTemplateCompletion.js.map +2 -2
- package/lib/cli/configure/index.js +6 -3
- package/lib/cli/configure/index.js.map +2 -2
- package/lib/cli/configure/processing/configFile.d.ts +1 -1
- package/lib/cli/configure/processing/package.d.ts +56 -58
- package/lib/cli/init/getConfig.d.ts +2 -1
- package/lib/cli/init/getConfig.js +7 -1
- package/lib/cli/init/getConfig.js.map +2 -2
- package/lib/cli/init/index.js +15 -1
- package/lib/cli/init/index.js.map +2 -2
- package/lib/cli/init/prompts.d.ts +0 -1
- package/lib/cli/init/types.d.ts +22 -5
- package/lib/cli/lint/external.d.ts +0 -2
- package/lib/cli/lint/index.d.ts +0 -1
- package/lib/cli/lint/internal.d.ts +1 -1
- package/lib/cli/lint/internalLints/noSkubaTemplateJs.d.ts +1 -1
- package/lib/cli/lint/internalLints/patchRenovateConfig.d.ts +1 -1
- package/lib/cli/lint/internalLints/patchRenovateConfig.js +4 -1
- package/lib/cli/lint/internalLints/patchRenovateConfig.js.map +2 -2
- package/lib/cli/lint/internalLints/refreshConfigFiles.d.ts +2 -2
- package/lib/cli/lint/internalLints/refreshConfigFiles.js +14 -3
- package/lib/cli/lint/internalLints/refreshConfigFiles.js.map +2 -2
- package/lib/cli/lint/internalLints/upgrade/index.d.ts +10 -2
- package/lib/cli/lint/internalLints/upgrade/index.js +15 -5
- package/lib/cli/lint/internalLints/upgrade/index.js.map +2 -2
- package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/addEmptyExports.js +1 -1
- package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/addEmptyExports.js.map +2 -2
- package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/moveNpmrcOutOfIgnoreManagedSection.d.ts +1 -1
- package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/moveNpmrcOutOfIgnoreManagedSection.js +1 -1
- package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/moveNpmrcOutOfIgnoreManagedSection.js.map +2 -2
- package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchDockerfile.js +4 -1
- package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchDockerfile.js.map +2 -2
- package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchServerListener.js +4 -1
- package/lib/cli/lint/internalLints/upgrade/patches/7.3.1/patchServerListener.js.map +2 -2
- package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/index.d.ts +2 -0
- package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/index.js +35 -0
- package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/index.js.map +7 -0
- package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/patchPnpmPackageManager.d.ts +2 -0
- package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/patchPnpmPackageManager.js +147 -0
- package/lib/cli/lint/internalLints/upgrade/patches/8.0.0/patchPnpmPackageManager.js.map +7 -0
- package/lib/cli/lint/types.d.ts +0 -1
- package/lib/utils/args.d.ts +0 -1
- package/lib/utils/copy.d.ts +1 -1
- package/lib/utils/env.d.ts +0 -1
- package/lib/utils/error.d.ts +0 -1
- package/lib/utils/exec.d.ts +0 -1
- package/lib/utils/template.d.ts +3 -3
- package/lib/wrapper/http.d.ts +0 -1
- package/package.json +22 -21
- package/template/base/.vscode/extensions.json +3 -0
- package/template/base/_.gitignore +2 -0
- package/template/base/_.npmrc +1 -0
- package/template/express-rest-api/.buildkite/pipeline.yml +1 -0
- package/template/express-rest-api/.gantry/dev.yml +0 -2
- package/template/express-rest-api/.gantry/prod.yml +0 -2
- package/template/express-rest-api/Dockerfile.dev-deps +1 -1
- package/template/express-rest-api/README.md +3 -3
- package/template/express-rest-api/docker-compose.yml +0 -2
- package/template/express-rest-api/gantry.apply.yml +0 -7
- package/template/express-rest-api/package.json +5 -2
- package/template/express-rest-api/src/config.ts +14 -6
- package/template/express-rest-api/src/framework/logging.ts +1 -1
- package/template/express-rest-api/src/framework/metrics.ts +11 -0
- package/template/express-rest-api/src/listen.ts +2 -2
- package/template/greeter/.buildkite/pipeline.yml +1 -0
- package/template/greeter/Dockerfile +1 -1
- package/template/greeter/README.md +3 -3
- package/template/greeter/docker-compose.yml +0 -2
- package/template/greeter/package.json +2 -1
- package/template/koa-rest-api/.buildkite/pipeline.yml +1 -0
- package/template/koa-rest-api/.gantry/dev.yml +0 -2
- package/template/koa-rest-api/.gantry/prod.yml +0 -2
- package/template/koa-rest-api/Dockerfile.dev-deps +1 -1
- package/template/koa-rest-api/README.md +3 -3
- package/template/koa-rest-api/docker-compose.yml +0 -2
- package/template/koa-rest-api/gantry.apply.yml +0 -7
- package/template/koa-rest-api/package.json +12 -12
- package/template/koa-rest-api/src/api/jobs/index.ts +1 -1
- package/template/koa-rest-api/src/app.test.ts +5 -10
- package/template/koa-rest-api/src/config.ts +14 -4
- package/template/koa-rest-api/src/framework/validation.test.ts +1 -1
- package/template/lambda-sqs-worker/.buildkite/pipeline.yml +1 -0
- package/template/lambda-sqs-worker/Dockerfile +1 -1
- package/template/lambda-sqs-worker/README.md +3 -3
- package/template/lambda-sqs-worker/_.npmrc +1 -0
- package/template/lambda-sqs-worker/docker-compose.yml +0 -2
- package/template/lambda-sqs-worker/package.json +3 -2
- package/template/lambda-sqs-worker/src/config.ts +9 -4
- package/template/lambda-sqs-worker-cdk/.buildkite/pipeline.yml +1 -0
- package/template/lambda-sqs-worker-cdk/Dockerfile +1 -1
- package/template/lambda-sqs-worker-cdk/docker-compose.yml +0 -2
- package/template/lambda-sqs-worker-cdk/infra/__snapshots__/appStack.test.ts.snap +42 -0
- package/template/lambda-sqs-worker-cdk/infra/config.ts +14 -6
- package/template/lambda-sqs-worker-cdk/package.json +4 -1
- package/template/lambda-sqs-worker-cdk/src/app.ts +14 -2
- package/template/lambda-sqs-worker-cdk/src/config.ts +47 -0
- package/template/oss-npm-package/.github/workflows/validate.yml +1 -0
- package/template/oss-npm-package/README.md +3 -3
- package/template/private-npm-package/.buildkite/pipeline.yml +1 -0
- package/template/private-npm-package/README.md +1 -1
- /package/template/koa-rest-api/src/framework/{middleware.ts → bodyParser.ts} +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
+
"name": "@seek/<%- serviceName %>",
|
|
2
3
|
"private": true,
|
|
3
4
|
"license": "UNLICENSED",
|
|
4
5
|
"scripts": {
|
|
@@ -31,13 +32,13 @@
|
|
|
31
32
|
"aws-sdk-client-mock-jest": "^4.0.0",
|
|
32
33
|
"chance": "^1.1.8",
|
|
33
34
|
"pino-pretty": "^11.0.0",
|
|
34
|
-
"serverless": "^3.
|
|
35
|
+
"serverless": "^3.39.0",
|
|
35
36
|
"serverless-plugin-canary-deployments": "^0.8.0",
|
|
36
37
|
"serverless-plugin-datadog": "^5.12.0",
|
|
37
38
|
"serverless-prune-plugin": "^2.0.0",
|
|
38
39
|
"skuba": "*"
|
|
39
40
|
},
|
|
40
|
-
"packageManager": "pnpm@9.0
|
|
41
|
+
"packageManager": "pnpm@9.4.0",
|
|
41
42
|
"engines": {
|
|
42
43
|
"node": ">=20"
|
|
43
44
|
}
|
|
@@ -29,16 +29,21 @@ const configs: Record<Environment, () => Omit<Config, 'environment'>> = {
|
|
|
29
29
|
}),
|
|
30
30
|
|
|
31
31
|
test: () => ({
|
|
32
|
-
...configs.local(),
|
|
33
|
-
|
|
34
32
|
logLevel: Env.string('LOG_LEVEL', { default: 'silent' }),
|
|
33
|
+
metrics: false,
|
|
34
|
+
name: '<%- serviceName %>',
|
|
35
35
|
version: 'test',
|
|
36
|
+
|
|
37
|
+
destinationSnsTopicArn: 'arn:aws:sns:us-east-2:123456789012:destination',
|
|
36
38
|
}),
|
|
37
39
|
|
|
38
40
|
dev: () => ({
|
|
39
|
-
...configs.prod(),
|
|
40
|
-
|
|
41
41
|
logLevel: 'debug',
|
|
42
|
+
metrics: true,
|
|
43
|
+
name: Env.string('SERVICE'),
|
|
44
|
+
version: Env.string('VERSION'),
|
|
45
|
+
|
|
46
|
+
destinationSnsTopicArn: Env.string('DESTINATION_SNS_TOPIC_ARN'),
|
|
42
47
|
}),
|
|
43
48
|
|
|
44
49
|
prod: () => ({
|
|
@@ -37,9 +37,18 @@ exports[`returns expected CloudFormation stack for dev 1`] = `
|
|
|
37
37
|
"ap-southeast-4": {
|
|
38
38
|
"codedeploy": "codedeploy.ap-southeast-4.amazonaws.com",
|
|
39
39
|
},
|
|
40
|
+
"ap-southeast-5": {
|
|
41
|
+
"codedeploy": "codedeploy.ap-southeast-5.amazonaws.com",
|
|
42
|
+
},
|
|
43
|
+
"ap-southeast-7": {
|
|
44
|
+
"codedeploy": "codedeploy.ap-southeast-7.amazonaws.com",
|
|
45
|
+
},
|
|
40
46
|
"ca-central-1": {
|
|
41
47
|
"codedeploy": "codedeploy.ca-central-1.amazonaws.com",
|
|
42
48
|
},
|
|
49
|
+
"ca-west-1": {
|
|
50
|
+
"codedeploy": "codedeploy.ca-west-1.amazonaws.com",
|
|
51
|
+
},
|
|
43
52
|
"cn-north-1": {
|
|
44
53
|
"codedeploy": "codedeploy.cn-north-1.amazonaws.com.cn",
|
|
45
54
|
},
|
|
@@ -52,6 +61,9 @@ exports[`returns expected CloudFormation stack for dev 1`] = `
|
|
|
52
61
|
"eu-central-2": {
|
|
53
62
|
"codedeploy": "codedeploy.eu-central-2.amazonaws.com",
|
|
54
63
|
},
|
|
64
|
+
"eu-isoe-west-1": {
|
|
65
|
+
"codedeploy": "codedeploy.eu-isoe-west-1.amazonaws.com",
|
|
66
|
+
},
|
|
55
67
|
"eu-north-1": {
|
|
56
68
|
"codedeploy": "codedeploy.eu-north-1.amazonaws.com",
|
|
57
69
|
},
|
|
@@ -79,6 +91,9 @@ exports[`returns expected CloudFormation stack for dev 1`] = `
|
|
|
79
91
|
"me-south-1": {
|
|
80
92
|
"codedeploy": "codedeploy.me-south-1.amazonaws.com",
|
|
81
93
|
},
|
|
94
|
+
"mx-central-1": {
|
|
95
|
+
"codedeploy": "codedeploy.mx-central-1.amazonaws.com",
|
|
96
|
+
},
|
|
82
97
|
"sa-east-1": {
|
|
83
98
|
"codedeploy": "codedeploy.sa-east-1.amazonaws.com",
|
|
84
99
|
},
|
|
@@ -451,6 +466,8 @@ exports[`returns expected CloudFormation stack for dev 1`] = `
|
|
|
451
466
|
"ENVIRONMENT": "dev",
|
|
452
467
|
"NODE_ENV": "production",
|
|
453
468
|
"NODE_OPTIONS": "--enable-source-maps",
|
|
469
|
+
"SERVICE": "serviceName",
|
|
470
|
+
"VERSION": "local",
|
|
454
471
|
},
|
|
455
472
|
},
|
|
456
473
|
"FunctionName": "serviceName",
|
|
@@ -644,6 +661,8 @@ exports[`returns expected CloudFormation stack for dev 1`] = `
|
|
|
644
661
|
},
|
|
645
662
|
"NODE_ENV": "production",
|
|
646
663
|
"NODE_OPTIONS": "--enable-source-maps",
|
|
664
|
+
"SERVICE": "serviceName",
|
|
665
|
+
"VERSION": "local",
|
|
647
666
|
},
|
|
648
667
|
},
|
|
649
668
|
"FunctionName": "serviceName-post-hook",
|
|
@@ -796,6 +815,8 @@ exports[`returns expected CloudFormation stack for dev 1`] = `
|
|
|
796
815
|
},
|
|
797
816
|
"NODE_ENV": "production",
|
|
798
817
|
"NODE_OPTIONS": "--enable-source-maps",
|
|
818
|
+
"SERVICE": "serviceName",
|
|
819
|
+
"VERSION": "local",
|
|
799
820
|
},
|
|
800
821
|
},
|
|
801
822
|
"FunctionName": "serviceName-pre-hook",
|
|
@@ -1079,9 +1100,18 @@ exports[`returns expected CloudFormation stack for prod 1`] = `
|
|
|
1079
1100
|
"ap-southeast-4": {
|
|
1080
1101
|
"codedeploy": "codedeploy.ap-southeast-4.amazonaws.com",
|
|
1081
1102
|
},
|
|
1103
|
+
"ap-southeast-5": {
|
|
1104
|
+
"codedeploy": "codedeploy.ap-southeast-5.amazonaws.com",
|
|
1105
|
+
},
|
|
1106
|
+
"ap-southeast-7": {
|
|
1107
|
+
"codedeploy": "codedeploy.ap-southeast-7.amazonaws.com",
|
|
1108
|
+
},
|
|
1082
1109
|
"ca-central-1": {
|
|
1083
1110
|
"codedeploy": "codedeploy.ca-central-1.amazonaws.com",
|
|
1084
1111
|
},
|
|
1112
|
+
"ca-west-1": {
|
|
1113
|
+
"codedeploy": "codedeploy.ca-west-1.amazonaws.com",
|
|
1114
|
+
},
|
|
1085
1115
|
"cn-north-1": {
|
|
1086
1116
|
"codedeploy": "codedeploy.cn-north-1.amazonaws.com.cn",
|
|
1087
1117
|
},
|
|
@@ -1094,6 +1124,9 @@ exports[`returns expected CloudFormation stack for prod 1`] = `
|
|
|
1094
1124
|
"eu-central-2": {
|
|
1095
1125
|
"codedeploy": "codedeploy.eu-central-2.amazonaws.com",
|
|
1096
1126
|
},
|
|
1127
|
+
"eu-isoe-west-1": {
|
|
1128
|
+
"codedeploy": "codedeploy.eu-isoe-west-1.amazonaws.com",
|
|
1129
|
+
},
|
|
1097
1130
|
"eu-north-1": {
|
|
1098
1131
|
"codedeploy": "codedeploy.eu-north-1.amazonaws.com",
|
|
1099
1132
|
},
|
|
@@ -1121,6 +1154,9 @@ exports[`returns expected CloudFormation stack for prod 1`] = `
|
|
|
1121
1154
|
"me-south-1": {
|
|
1122
1155
|
"codedeploy": "codedeploy.me-south-1.amazonaws.com",
|
|
1123
1156
|
},
|
|
1157
|
+
"mx-central-1": {
|
|
1158
|
+
"codedeploy": "codedeploy.mx-central-1.amazonaws.com",
|
|
1159
|
+
},
|
|
1124
1160
|
"sa-east-1": {
|
|
1125
1161
|
"codedeploy": "codedeploy.sa-east-1.amazonaws.com",
|
|
1126
1162
|
},
|
|
@@ -1493,6 +1529,8 @@ exports[`returns expected CloudFormation stack for prod 1`] = `
|
|
|
1493
1529
|
"ENVIRONMENT": "prod",
|
|
1494
1530
|
"NODE_ENV": "production",
|
|
1495
1531
|
"NODE_OPTIONS": "--enable-source-maps",
|
|
1532
|
+
"SERVICE": "serviceName",
|
|
1533
|
+
"VERSION": "local",
|
|
1496
1534
|
},
|
|
1497
1535
|
},
|
|
1498
1536
|
"FunctionName": "serviceName",
|
|
@@ -1686,6 +1724,8 @@ exports[`returns expected CloudFormation stack for prod 1`] = `
|
|
|
1686
1724
|
},
|
|
1687
1725
|
"NODE_ENV": "production",
|
|
1688
1726
|
"NODE_OPTIONS": "--enable-source-maps",
|
|
1727
|
+
"SERVICE": "serviceName",
|
|
1728
|
+
"VERSION": "local",
|
|
1689
1729
|
},
|
|
1690
1730
|
},
|
|
1691
1731
|
"FunctionName": "serviceName-post-hook",
|
|
@@ -1838,6 +1878,8 @@ exports[`returns expected CloudFormation stack for prod 1`] = `
|
|
|
1838
1878
|
},
|
|
1839
1879
|
"NODE_ENV": "production",
|
|
1840
1880
|
"NODE_OPTIONS": "--enable-source-maps",
|
|
1881
|
+
"SERVICE": "serviceName",
|
|
1882
|
+
"VERSION": "local",
|
|
1841
1883
|
},
|
|
1842
1884
|
},
|
|
1843
1885
|
"FunctionName": "serviceName-pre-hook",
|
|
@@ -1,27 +1,33 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Env } from 'skuba-dive';
|
|
2
2
|
|
|
3
|
-
const
|
|
3
|
+
const ENVIRONMENTS = ['dev', 'prod'] as const;
|
|
4
4
|
|
|
5
|
-
type Environment = typeof
|
|
5
|
+
type Environment = (typeof ENVIRONMENTS)[number];
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
const environment = Env.oneOf(ENVIRONMENTS)('ENVIRONMENT');
|
|
8
|
+
|
|
9
|
+
interface Config {
|
|
8
10
|
appName: string;
|
|
9
11
|
workerLambda: {
|
|
10
12
|
reservedConcurrency: number;
|
|
11
13
|
environment: {
|
|
12
14
|
ENVIRONMENT: Environment;
|
|
15
|
+
SERVICE: string;
|
|
16
|
+
VERSION: string;
|
|
13
17
|
};
|
|
14
18
|
};
|
|
15
19
|
sourceSnsTopicArn: string;
|
|
16
20
|
}
|
|
17
21
|
|
|
18
|
-
|
|
22
|
+
const configs: Record<Environment, Config> = {
|
|
19
23
|
dev: {
|
|
20
24
|
appName: '<%- serviceName %>',
|
|
21
25
|
workerLambda: {
|
|
22
26
|
reservedConcurrency: 2,
|
|
23
27
|
environment: {
|
|
24
28
|
ENVIRONMENT: 'dev',
|
|
29
|
+
SERVICE: '<%- serviceName %>',
|
|
30
|
+
VERSION: Env.string('VERSION', { default: 'local' }),
|
|
25
31
|
},
|
|
26
32
|
},
|
|
27
33
|
sourceSnsTopicArn: 'TODO: sourceSnsTopicArn',
|
|
@@ -32,10 +38,12 @@ export const configs: Record<Environment, Config> = {
|
|
|
32
38
|
reservedConcurrency: 20,
|
|
33
39
|
environment: {
|
|
34
40
|
ENVIRONMENT: 'prod',
|
|
41
|
+
SERVICE: '<%- serviceName %>',
|
|
42
|
+
VERSION: Env.string('VERSION', { default: 'local' }),
|
|
35
43
|
},
|
|
36
44
|
},
|
|
37
45
|
sourceSnsTopicArn: 'TODO: sourceSnsTopicArn',
|
|
38
46
|
},
|
|
39
47
|
};
|
|
40
48
|
|
|
41
|
-
export const config = configs[environment];
|
|
49
|
+
export const config: Config = configs[environment];
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
+
"name": "@seek/<%- serviceName %>",
|
|
2
3
|
"private": true,
|
|
3
4
|
"license": "UNLICENSED",
|
|
4
5
|
"scripts": {
|
|
@@ -16,6 +17,7 @@
|
|
|
16
17
|
"@aws-sdk/client-lambda": "^3.363.0",
|
|
17
18
|
"@aws-sdk/client-sns": "^3.363.0",
|
|
18
19
|
"@seek/logger": "^6.0.0",
|
|
20
|
+
"skuba-dive": "^2.0.0",
|
|
19
21
|
"zod": "^3.19.1"
|
|
20
22
|
},
|
|
21
23
|
"devDependencies": {
|
|
@@ -24,9 +26,10 @@
|
|
|
24
26
|
"aws-cdk": "^2.109.0",
|
|
25
27
|
"aws-cdk-lib": "^2.109.0",
|
|
26
28
|
"constructs": "^10.0.17",
|
|
29
|
+
"pino-pretty": "^11.0.0",
|
|
27
30
|
"skuba": "*"
|
|
28
31
|
},
|
|
29
|
-
"packageManager": "pnpm@9.0
|
|
32
|
+
"packageManager": "pnpm@9.4.0",
|
|
30
33
|
"engines": {
|
|
31
34
|
"node": ">=20"
|
|
32
35
|
}
|
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
import createLogger from '@seek/logger';
|
|
2
2
|
import type { SQSEvent, SQSHandler } from 'aws-lambda';
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
import { config } from './config';
|
|
5
|
+
|
|
6
|
+
export const logger = createLogger({
|
|
7
|
+
base: {
|
|
8
|
+
environment: config.environment,
|
|
9
|
+
version: config.version,
|
|
10
|
+
},
|
|
11
|
+
|
|
12
|
+
level: config.logLevel,
|
|
13
|
+
|
|
14
|
+
name: config.name,
|
|
15
|
+
|
|
16
|
+
transport:
|
|
17
|
+
config.environment === 'local' ? { target: 'pino-pretty' } : undefined,
|
|
6
18
|
});
|
|
7
19
|
|
|
8
20
|
/**
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Env } from 'skuba-dive';
|
|
2
|
+
|
|
3
|
+
interface Config {
|
|
4
|
+
environment: Environment;
|
|
5
|
+
|
|
6
|
+
logLevel: string;
|
|
7
|
+
name: string;
|
|
8
|
+
version: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
type Environment = (typeof environments)[number];
|
|
12
|
+
|
|
13
|
+
const environments = ['local', 'test', 'dev', 'prod'] as const;
|
|
14
|
+
|
|
15
|
+
const environment = Env.oneOf(environments)('ENVIRONMENT');
|
|
16
|
+
|
|
17
|
+
/* istanbul ignore next: config verification makes more sense in a smoke test */
|
|
18
|
+
const configs: Record<Environment, () => Omit<Config, 'environment'>> = {
|
|
19
|
+
local: () => ({
|
|
20
|
+
logLevel: 'debug',
|
|
21
|
+
name: '<%- serviceName %>',
|
|
22
|
+
version: 'local',
|
|
23
|
+
}),
|
|
24
|
+
|
|
25
|
+
test: () => ({
|
|
26
|
+
logLevel: Env.string('LOG_LEVEL', { default: 'silent' }),
|
|
27
|
+
name: '<%- serviceName %>',
|
|
28
|
+
version: 'test',
|
|
29
|
+
}),
|
|
30
|
+
|
|
31
|
+
dev: () => ({
|
|
32
|
+
logLevel: 'debug',
|
|
33
|
+
name: Env.string('SERVICE'),
|
|
34
|
+
version: Env.string('VERSION'),
|
|
35
|
+
}),
|
|
36
|
+
|
|
37
|
+
prod: () => ({
|
|
38
|
+
logLevel: 'info',
|
|
39
|
+
name: Env.string('SERVICE'),
|
|
40
|
+
version: Env.string('VERSION'),
|
|
41
|
+
}),
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export const config: Config = {
|
|
45
|
+
...configs[environment](),
|
|
46
|
+
environment,
|
|
47
|
+
};
|
|
@@ -17,9 +17,9 @@ Next steps:
|
|
|
17
17
|
6. [ ] Delete this checklist 😌.
|
|
18
18
|
|
|
19
19
|
[#open-source]: https://slack.com/app_redirect?channel=C39P1H2SU
|
|
20
|
-
[
|
|
21
|
-
[
|
|
22
|
-
[
|
|
20
|
+
[GitHub repository settings]: https://github.com/<%-orgName%>/<%-repoName%>/settings
|
|
21
|
+
[Renovate]: https://github.com/apps/renovate
|
|
22
|
+
[SEEK's Open Source RFC]: https://rfc.skinfra.xyz/RFC016-Open-Source.html
|
|
23
23
|
|
|
24
24
|
## API
|
|
25
25
|
|
|
@@ -14,7 +14,7 @@ Next steps:
|
|
|
14
14
|
4. [ ] Configure [GitHub repository settings].
|
|
15
15
|
5. [ ] Delete this checklist 😌.
|
|
16
16
|
|
|
17
|
-
[
|
|
17
|
+
[GitHub repository settings]: https://github.com/<%-orgName%>/<%-repoName%>/settings
|
|
18
18
|
[installing on your repository]: https://github.com/SEEK-Jobs/gutenberg#installing-on-your-repository
|
|
19
19
|
|
|
20
20
|
## API
|
|
File without changes
|