-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.projenrc.ts
60 lines (48 loc) · 1.81 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
import { Changesets, Husky, VscodeExtensionRecommendations } from "@floydspace/projen-components";
import { YamlFile } from "projen";
import { Docgen, Examples, TypeScriptLibProject } from "./projenrc";
const org = "floydspace";
const name = "effect-kafka";
const repo = `${org}/${name}`;
const project = new TypeScriptLibProject({
name: name,
homepage: `https://${org}.github.io/${name}`,
typescriptVersion: "~5.5.4",
prettierOptions: { settings: { printWidth: 120 } },
github: true,
githubOptions: { mergify: false, pullRequestLint: false },
release: false,
buildWorkflowOptions: { mutableBuild: false },
pullRequestTemplate: false,
workflowNodeVersion: "lts/*",
workflowPackageCache: true,
devDeps: ["@floydspace/projen-components@next"],
});
new YamlFile(project, ".github/FUNDING.yml", { obj: { github: org } });
new Husky(project, {
huskyHooks: {
"pre-push": ["CI=true pnpm test", "pnpm docgen"],
},
});
new Docgen(project, { repoOwner: org });
new Changesets(project, { repo });
const recommendations = new VscodeExtensionRecommendations(project);
recommendations.addRecommendations("effectful-tech.effect-vscode");
new Examples(project);
project.addGitIgnore(".direnv/"); // flake environment creates .direnv folder
project.addPackageIgnore("/.envrc");
project.addPackageIgnore("/flake.lock");
project.addPackageIgnore("/flake.nix");
project.addPackageIgnore("/docker-compose.yml");
// Effect dependencies
project.addDevDeps("@effect/platform-node", "@effect/vitest", "@fluffy-spoon/substitute");
project.addPeerDeps("effect");
// Kafka dependencies
project.addPeerDeps("kafkajs@^2", "@confluentinc/kafka-javascript@>=0.2.1 <1.0.0");
project.addFields({
peerDependenciesMeta: {
kafkajs: { optional: true },
"@confluentinc/kafka-javascript": { optional: true },
},
});
project.synth();