-
Notifications
You must be signed in to change notification settings - Fork 0
/
.projenrc.ts
94 lines (81 loc) · 2.5 KB
/
.projenrc.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
import { typescript } from 'projen'
import { NodePackageManager, TrailingComma } from 'projen/lib/javascript'
import { ReleaseTrigger } from 'projen/lib/release'
import { TypedocDocgen } from 'projen/lib/typescript'
const project = new typescript.TypeScriptProject({
defaultReleaseBranch: 'master',
name: 'effect-lambda',
description: 'Effects as AWS lambda handlers',
repository: 'https://github.com/successkrisz/effect-lambda.git',
projenrcTs: true,
packageManager: NodePackageManager.PNPM,
pnpmVersion: '9.12.0',
minNodeVersion: '20.17.0',
prettier: true,
eslint: true,
vscode: true,
authorOrganization: false,
authorName: 'Krisztian Balla',
authorUrl: 'https://github.com/successkrisz',
releaseTrigger: ReleaseTrigger.manual(),
github: true,
releaseToNpm: true,
entrypoint: 'index.js',
deps: ['@types/aws-lambda'],
peerDeps: ['effect@^3.9.2', '@effect/schema@^0.75.5'],
devDeps: ['helmet'],
})
new TypedocDocgen(project)
project.npmignore?.exclude('docs')
project.package.addField('publishConfig', {
access: 'public',
directory: 'lib',
})
project.addScripts({
prepack:
'rm -rf lib/LICENSE lib/package.json lib/.npmignore lib/README.md && cp package.json LICENSE README.md .npmignore lib/',
})
project.npmignore?.addPatterns('lib/dist')
project.vscode?.settings.addSettings({
'editor.defaultFormatter': 'esbenp.prettier-vscode',
'editor.formatOnSave': true,
'editor.codeActionsOnSave': {
'source.fixAll': 'always',
'source.organizeImports': 'never',
},
})
project.vscode?.extensions.addRecommendations(
'dbaeumer.vscode-eslint',
'esbenp.prettier-vscode',
)
project.eslint?.addRules({
semi: ['error', 'never'],
quotes: ['error', 'single'],
'import/order': [
'warn',
{
groups: ['builtin', 'external'],
alphabetize: {
order: 'asc',
caseInsensitive: true,
},
},
],
})
project.prettier?.addOverride({
files: '*.ts',
options: {
singleQuote: true,
semi: false,
tabWidth: 4,
trailingComma: TrailingComma.ALL,
printWidth: 80,
},
})
project.tsconfig?.compilerOptions?.lib?.push('DOM')
project.gitignore.exclude('.DS_Store')
project.package.addField(
'packageManager',
'pnpm@9.12.0+sha512.4abf725084d7bcbafbd728bfc7bee61f2f791f977fd87542b3579dcb23504d170d46337945e4c66485cd12d588a0c0e570ed9c477e7ccdd8507cf05f3f92eaca',
)
project.synth()