Skip to content

Commit

Permalink
feat: vitest
Browse files Browse the repository at this point in the history
  • Loading branch information
nikovirtala committed Jan 18, 2025
1 parent 094c7bd commit ade1b38
Show file tree
Hide file tree
Showing 11 changed files with 3,579 additions and 9 deletions.
1 change: 1 addition & 0 deletions .gitattributes

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions .gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 16 additions & 0 deletions .projen/deps.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions .projen/tasks.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

31 changes: 30 additions & 1 deletion .projenrc.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import { PrimitiveType } from "@jsii/spec";
import { ProjenStruct, Struct } from "@mrgrain/jsii-struct-builder";
import { cdk, javascript, TextFile } from "projen";

const nodeVersion = "22.12.0";
Expand All @@ -14,6 +16,7 @@ const project = new cdk.JsiiProject({
labels: ["auto-approve", "auto-merge"],
},
},
devDeps: ["@mrgrain/jsii-struct-builder", "@jsii/spec"],
autoApproveOptions: {
secret: "GITHUB_TOKEN",
allowedUsernames: ["nikovirtala"],
Expand All @@ -29,7 +32,7 @@ const project = new cdk.JsiiProject({
npmAccess: javascript.NpmAccess.PUBLIC,
packageManager: javascript.NodePackageManager.PNPM,
packageName: "@nikovirtala/projen-aws-cdk-app",
peerDeps: ["projen", "constructs"],
peerDeps: ["aws-cdk-lib", "@nikovirtala/projen-vitest", "constructs", "projen"],
pnpmVersion: "9",
prettier: true,
prettierOptions: {
Expand All @@ -45,6 +48,32 @@ const project = new cdk.JsiiProject({
typescriptVersion: "5.7.2",
});

// TypeScript utility types are **not** allowed in `jsii` applications :´(
new ProjenStruct(project, { name: "AwsCdkAppOptions", outputFileOptions: { readonly: false } })
.mixin(Struct.fromFqn("projen.awscdk.AwsCdkTypeScriptAppOptions"))
.withoutDeprecated()
.omit("jest")
.omit("jestOptions")
.omit("tsJestOptions")
.add(
{
name: "vitest",
type: { primitive: PrimitiveType.Boolean },
docs: {
summary: "Enable testing with Vitest.",
default: "true",
},
},
{
name: "vitestOptions",
type: { fqn: "@nikovirtala/projen-vitest.VitestOptions" },
docs: {
summary: "The Vitest configuration (when enabled).",
default: "- `@nikovirtala/projen-vitest` defaults",
},
},
);

project.vscode?.extensions.addRecommendations("dbaeumer.vscode-eslint", "esbenp.prettier-vscode");

project.vscode?.settings.addSettings({
Expand Down
2,347 changes: 2,344 additions & 3 deletions API.md

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ This template is mostly like the projen's standard [`AwsCdkTypeScriptApp`](https

- The code is executed using [`tsx`](https://github.com/privatenumber/tsx) instead of the default `ts-node`
- ES Modules (ECMAScript modules) (ESM) are used instead of the default CommonJS
- Jest is replaced with [Vitest](https://github.com/nikovirtala/projen-vitest)
6 changes: 6 additions & 0 deletions package.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

84 changes: 84 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit ade1b38

Please sign in to comment.