diff --git a/examples/with-docker/README.md b/examples/with-docker/README.md index f6b00324ee924..5bafb934d62a4 100644 --- a/examples/with-docker/README.md +++ b/examples/with-docker/README.md @@ -12,18 +12,17 @@ npx create-turbo@latest -e with-docker ## What's inside? -This turborepo uses [Yarn](https://classic.yarnpkg.com/lang/en/) as a package manager. It includes the following packages/apps: +This Turborepo includes the following: ### Apps and Packages -- `@repo/web`: a [Next.js](https://nextjs.org/) app -- `@repo/api`: an [Express](https://expressjs.com/) server -- `@repo/ui`: ui: a React component library -- `@repo/eslint-config-custom`: `eslint` configurations for client side applications (includes `eslint-config-next` and `eslint-config-prettier`) -- `@repo/eslint-config-custom-server`: `eslint` configurations for server side applications (includes `eslint-config-next` and `eslint-config-prettier`) -- `scripts`: Jest configurations +- `web`: a [Next.js](https://nextjs.org/) app +- `api`: an [Express](https://expressjs.com/) server +- `@repo/ui`: a React component library - `@repo/logger`: Isomorphic logger (a small wrapper around console.log) +- `@repo/eslint-config`: ESLint presets - `@repo/typescript-config`: tsconfig.json's used throughout the monorepo +- `@repo/jest-presets`: Jest configurations Each package/app is 100% [TypeScript](https://www.typescriptlang.org/). diff --git a/examples/with-docker/apps/api/package.json b/examples/with-docker/apps/api/package.json index 871d6949b82b5..205cb3446c4c4 100644 --- a/examples/with-docker/apps/api/package.json +++ b/examples/with-docker/apps/api/package.json @@ -11,7 +11,7 @@ "test": "jest --detectOpenHandles" }, "jest": { - "preset": "@repo/jest-presets/jest/node" + "preset": "@repo/jest-presets/node" }, "dependencies": { "@repo/logger": "*", @@ -39,4 +39,4 @@ "supertest": "^6.3.3", "typescript": "^5.3.3" } -} +} \ No newline at end of file diff --git a/examples/with-docker/apps/api/src/__tests__/server.test.ts b/examples/with-docker/apps/api/src/__tests__/server.test.ts index c0c9806f8a9d7..1385679fb36a5 100644 --- a/examples/with-docker/apps/api/src/__tests__/server.test.ts +++ b/examples/with-docker/apps/api/src/__tests__/server.test.ts @@ -2,9 +2,9 @@ import supertest from "supertest"; import { createServer } from "../server"; describe("server", () => { - it("health check returns 200", async () => { + it("status check returns 200", async () => { await supertest(createServer()) - .get("/healthz") + .get("/status") .expect(200) .then((res) => { expect(res.body.ok).toBe(true); @@ -16,7 +16,7 @@ describe("server", () => { .get("/message/jared") .expect(200) .then((res) => { - expect(res.body).toEqual({ message: "hello jared" }); + expect(res.body.message).toBe("hello jared"); }); }); }); diff --git a/examples/with-docker/apps/api/src/__tests__/tsconfig.json b/examples/with-docker/apps/api/src/__tests__/tsconfig.json deleted file mode 100644 index bf65be62f2d5c..0000000000000 --- a/examples/with-docker/apps/api/src/__tests__/tsconfig.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "include": [".", "../."] -} diff --git a/examples/with-docker/apps/api/src/server.ts b/examples/with-docker/apps/api/src/server.ts index 70ccf0b76b72c..dedb517f21ed5 100644 --- a/examples/with-docker/apps/api/src/server.ts +++ b/examples/with-docker/apps/api/src/server.ts @@ -1,9 +1,9 @@ import { json, urlencoded } from "body-parser"; -import express from "express"; +import express, { type Express } from "express"; import morgan from "morgan"; import cors from "cors"; -export const createServer = () => { +export const createServer = (): Express => { const app = express(); app .disable("x-powered-by") @@ -14,7 +14,7 @@ export const createServer = () => { .get("/message/:name", (req, res) => { return res.json({ message: `hello ${req.params.name}` }); }) - .get("/healthz", (req, res) => { + .get("/status", (_, res) => { return res.json({ ok: true }); }); diff --git a/examples/with-docker/apps/web/src/app/page.tsx b/examples/with-docker/apps/web/src/app/page.tsx index 3f2d7c530356e..0b8db5bafe42e 100644 --- a/examples/with-docker/apps/web/src/app/page.tsx +++ b/examples/with-docker/apps/web/src/app/page.tsx @@ -1,7 +1,7 @@ "use client"; +import { useEffect, useState, ChangeEvent, FormEvent } from "react"; import { Button } from "@repo/ui/button"; -import { useEffect, useState } from "react"; const API_HOST = process.env.NEXT_PUBLIC_API_HOST || "http://localhost:3001"; @@ -15,10 +15,10 @@ export default function Web() { setError(undefined); }, [name]); - const onChange = (e: React.ChangeEvent) => + const onChange = (e: ChangeEvent) => setName(e.target.value); - const onSubmit = async (e: React.FormEvent) => { + const onSubmit = async (e: FormEvent) => { e.preventDefault(); try { diff --git a/examples/with-docker/packages/jest-presets/jest/node/jest-preset.js b/examples/with-docker/packages/jest-presets/node/jest-preset.js similarity index 100% rename from examples/with-docker/packages/jest-presets/jest/node/jest-preset.js rename to examples/with-docker/packages/jest-presets/node/jest-preset.js diff --git a/examples/with-docker/packages/jest-presets/package.json b/examples/with-docker/packages/jest-presets/package.json index 27c42f87b82d7..7457684ee21fe 100644 --- a/examples/with-docker/packages/jest-presets/package.json +++ b/examples/with-docker/packages/jest-presets/package.json @@ -3,7 +3,10 @@ "version": "0.0.0", "private": true, "license": "MIT", + "files": [ + "node/jest-preset.js" + ], "dependencies": { "ts-jest": "^29.1.1" } -} +} \ No newline at end of file diff --git a/examples/with-docker/packages/logger/package.json b/examples/with-docker/packages/logger/package.json index 3b4fef2b5e3fe..728389c0cb294 100644 --- a/examples/with-docker/packages/logger/package.json +++ b/examples/with-docker/packages/logger/package.json @@ -15,15 +15,16 @@ "test": "jest" }, "jest": { - "preset": "@repo/jest-presets/jest/node" + "preset": "@repo/jest-presets/node" }, "devDependencies": { + "@repo/eslint-config": "workspace:*", + "@repo/jest-presets": "workspace:*", + "@repo/typescript-config": "workspace:*", "@types/jest": "^29.5.12", + "@types/node": "^20.11.24", "eslint": "^8.57.0", - "@repo/eslint-config": "*", "jest": "^29.7.0", - "@repo/jest-presets": "*", - "@repo/typescript-config": "*", "typescript": "^5.3.3" } -} +} \ No newline at end of file diff --git a/examples/with-docker/packages/logger/src/__tests__/log.test.ts b/examples/with-docker/packages/logger/src/__tests__/log.test.ts index 67e9dcb68f468..0da12534d68e4 100644 --- a/examples/with-docker/packages/logger/src/__tests__/log.test.ts +++ b/examples/with-docker/packages/logger/src/__tests__/log.test.ts @@ -5,6 +5,6 @@ jest.spyOn(global.console, "log"); describe("@repo/logger", () => { it("prints a message", () => { log("hello"); - expect(console.log).toBeCalled(); + expect(console.log).toHaveBeenCalled(); }); }); diff --git a/examples/with-docker/packages/logger/src/__tests__/tsconfig.json b/examples/with-docker/packages/logger/src/__tests__/tsconfig.json deleted file mode 100644 index bf65be62f2d5c..0000000000000 --- a/examples/with-docker/packages/logger/src/__tests__/tsconfig.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "include": [".", "../."] -} diff --git a/examples/with-docker/packages/logger/tsconfig.json b/examples/with-docker/packages/logger/tsconfig.json index 225dca86b0d49..0ebbe11121b89 100644 --- a/examples/with-docker/packages/logger/tsconfig.json +++ b/examples/with-docker/packages/logger/tsconfig.json @@ -1,9 +1,10 @@ { "extends": "@repo/typescript-config/base.json", "compilerOptions": { - "lib": ["ES2015"], + "lib": ["ES2015", "DOM"], "outDir": "./dist", - "rootDir": "./src" + "rootDir": "./src", + "types": ["jest", "node"] }, "include": ["src"], "exclude": ["node_modules"]