create-joist-app 1.0.0 → 1.0.2
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/build/index.js +51 -32
- package/build/index.js.map +1 -1
- package/package.json +1 -1
- package/templates/basic/README.md +70 -0
- package/templates/basic/gitignore +28 -0
- package/templates/basic/jest.config.js +14 -0
- package/templates/basic/joist-config.json +7 -0
- package/templates/basic/migrations/1580658856631_initial.ts +22 -0
- package/templates/basic/package.json +28 -0
- package/templates/basic/src/context.ts +14 -0
- package/templates/basic/src/entities/Author.test.ts +17 -0
- package/templates/basic/src/entities/Author.ts +7 -0
- package/templates/basic/src/entities/Book.ts +3 -0
- package/templates/basic/src/entities/entities.ts +14 -0
- package/templates/basic/src/entities/factories/index.ts +2 -0
- package/templates/basic/src/entities/factories/newAuthor.ts +6 -0
- package/templates/basic/src/entities/factories/newBook.ts +6 -0
- package/templates/basic/src/entities/index.ts +3 -0
- package/templates/basic/src/setupTestEnv.ts +5 -0
- package/templates/basic/src/setupTests.ts +29 -0
- package/templates/basic/tsconfig.json +23 -0
- package/templates/graphql/README.md +84 -0
- package/templates/graphql/codegen.yml +11 -0
- package/templates/graphql/gitignore +28 -0
- package/templates/graphql/graphql-codegen-joist.js +5 -0
- package/templates/graphql/graphql-codegen.js +26 -0
- package/templates/graphql/jest.config.js +14 -0
- package/templates/graphql/joist-config.json +8 -0
- package/templates/graphql/migrations/1580658856631_initial.ts +38 -0
- package/templates/graphql/package.json +41 -0
- package/templates/graphql/schema/.history.json +9 -0
- package/templates/graphql/schema/author.graphql +20 -0
- package/templates/graphql/schema/book.graphql +19 -0
- package/templates/graphql/schema/enums.graphql +0 -0
- package/templates/graphql/schema/root.graphql +0 -0
- package/templates/graphql/src/.history.json +12 -0
- package/templates/graphql/src/context.ts +14 -0
- package/templates/graphql/src/entities/Author.test.ts +36 -0
- package/templates/graphql/src/entities/Author.ts +7 -0
- package/templates/graphql/src/entities/Book.ts +3 -0
- package/templates/graphql/src/entities/entities.ts +14 -0
- package/templates/graphql/src/entities/factories/index.ts +2 -0
- package/templates/graphql/src/entities/factories/newAuthor.ts +6 -0
- package/templates/graphql/src/entities/factories/newBook.ts +6 -0
- package/templates/graphql/src/entities/index.ts +3 -0
- package/templates/graphql/src/jest.d.ts +9 -0
- package/templates/graphql/src/resolvers/author/authorResolvers.test.ts +17 -0
- package/templates/graphql/src/resolvers/author/authorResolvers.ts +5 -0
- package/templates/graphql/src/resolvers/author/saveAuthorMutation.test.ts +13 -0
- package/templates/graphql/src/resolvers/author/saveAuthorMutation.ts +9 -0
- package/templates/graphql/src/resolvers/book/bookResolvers.test.ts +17 -0
- package/templates/graphql/src/resolvers/book/bookResolvers.ts +5 -0
- package/templates/graphql/src/resolvers/book/saveBookMutation.test.ts +16 -0
- package/templates/graphql/src/resolvers/book/saveBookMutation.ts +9 -0
- package/templates/graphql/src/resolvers/enumResolvers.ts +5 -0
- package/templates/graphql/src/resolvers/index.ts +15 -0
- package/templates/graphql/src/resolvers/mutations/index.ts +7 -0
- package/templates/graphql/src/resolvers/objects/index.ts +6 -0
- package/templates/graphql/src/resolvers/testUtils.ts +10 -0
- package/templates/graphql/src/resolvers/utils.ts +1 -0
- package/templates/graphql/src/server.ts +37 -0
- package/templates/graphql/src/setupIt.ts +17 -0
- package/templates/graphql/src/setupTestEnv.ts +5 -0
- package/templates/graphql/src/setupTests.ts +37 -0
- package/templates/graphql/tsconfig.json +23 -0
package/build/index.js
CHANGED
|
@@ -21,7 +21,7 @@ async function main() {
|
|
|
21
21
|
.version(packageJson.version)
|
|
22
22
|
.description("Create a new Joist ORM project")
|
|
23
23
|
.argument("[project-directory]", "Directory to create the project in")
|
|
24
|
-
.option("-t, --template <template>", "Template to use (basic, graphql)"
|
|
24
|
+
.option("-t, --template <template>", "Template to use (basic, graphql)")
|
|
25
25
|
.option("--use-yarn", "Use Yarn as the package manager")
|
|
26
26
|
.option("--use-npm", "Use npm as the package manager")
|
|
27
27
|
.option("--use-pnpm", "Use pnpm as the package manager")
|
|
@@ -95,6 +95,39 @@ async function main() {
|
|
|
95
95
|
console.error(picocolors_1.default.red(`Directory is not empty: ${resolvedPath}`));
|
|
96
96
|
process.exit(1);
|
|
97
97
|
}
|
|
98
|
+
// Get database configuration
|
|
99
|
+
let dbConfig = {
|
|
100
|
+
host: opts.dbHost || "localhost",
|
|
101
|
+
port: opts.dbPort || "5432",
|
|
102
|
+
user: opts.dbUser || projectName.replace(/-/g, "_") + "_user",
|
|
103
|
+
password: opts.dbPassword || "local",
|
|
104
|
+
name: opts.dbName || projectName.replace(/-/g, "_"),
|
|
105
|
+
};
|
|
106
|
+
if (!opts.yes) {
|
|
107
|
+
const response = await (0, prompts_1.default)([
|
|
108
|
+
{
|
|
109
|
+
type: "text",
|
|
110
|
+
name: "dbName",
|
|
111
|
+
message: "Database name:",
|
|
112
|
+
initial: dbConfig.name,
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
type: "text",
|
|
116
|
+
name: "dbUser",
|
|
117
|
+
message: "Database user:",
|
|
118
|
+
initial: dbConfig.user,
|
|
119
|
+
},
|
|
120
|
+
]);
|
|
121
|
+
if (response.dbName === undefined) {
|
|
122
|
+
console.log(picocolors_1.default.red("Cancelled."));
|
|
123
|
+
process.exit(1);
|
|
124
|
+
}
|
|
125
|
+
dbConfig = {
|
|
126
|
+
...dbConfig,
|
|
127
|
+
name: response.dbName || dbConfig.name,
|
|
128
|
+
user: response.dbUser || dbConfig.user,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
98
131
|
// Determine template
|
|
99
132
|
let template = opts.template || "basic";
|
|
100
133
|
if (!opts.yes && !opts.template) {
|
|
@@ -112,7 +145,7 @@ async function main() {
|
|
|
112
145
|
],
|
|
113
146
|
initial: 0,
|
|
114
147
|
});
|
|
115
|
-
if (
|
|
148
|
+
if (response.template === undefined) {
|
|
116
149
|
console.log(picocolors_1.default.red("Cancelled."));
|
|
117
150
|
process.exit(1);
|
|
118
151
|
}
|
|
@@ -132,41 +165,27 @@ async function main() {
|
|
|
132
165
|
else if (opts.useBun) {
|
|
133
166
|
packageManager = "bun";
|
|
134
167
|
}
|
|
135
|
-
else {
|
|
168
|
+
else if (opts.yes) {
|
|
136
169
|
packageManager = (0, get_package_manager_1.getPackageManager)();
|
|
137
170
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
initial: dbConfig.name,
|
|
153
|
-
},
|
|
154
|
-
{
|
|
155
|
-
type: "text",
|
|
156
|
-
name: "dbUser",
|
|
157
|
-
message: "Database user:",
|
|
158
|
-
initial: dbConfig.user,
|
|
159
|
-
},
|
|
160
|
-
]);
|
|
161
|
-
if (response.dbName === undefined) {
|
|
171
|
+
else {
|
|
172
|
+
const response = await (0, prompts_1.default)({
|
|
173
|
+
type: "select",
|
|
174
|
+
name: "packageManager",
|
|
175
|
+
message: "Which package manager would you like to use?",
|
|
176
|
+
choices: [
|
|
177
|
+
{ title: "npm", value: "npm" },
|
|
178
|
+
{ title: "yarn", value: "yarn" },
|
|
179
|
+
{ title: "pnpm", value: "pnpm" },
|
|
180
|
+
{ title: "bun", value: "bun" },
|
|
181
|
+
],
|
|
182
|
+
initial: 0,
|
|
183
|
+
});
|
|
184
|
+
if (response.packageManager === undefined) {
|
|
162
185
|
console.log(picocolors_1.default.red("Cancelled."));
|
|
163
186
|
process.exit(1);
|
|
164
187
|
}
|
|
165
|
-
|
|
166
|
-
...dbConfig,
|
|
167
|
-
name: response.dbName || dbConfig.name,
|
|
168
|
-
user: response.dbUser || dbConfig.user,
|
|
169
|
-
};
|
|
188
|
+
packageManager = response.packageManager;
|
|
170
189
|
}
|
|
171
190
|
console.log();
|
|
172
191
|
console.log(`Creating a new Joist app in ${picocolors_1.default.green(resolvedPath)}`);
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AACA,yCAAoC;AACpC,4DAA4B;AAC5B,sDAA8B;AAC9B,0FAA+D;AAC/D,6CAAyC;AACzC,uEAAuF;AACvF,+DAA0D;AAC1D,yDAAqD;AACrD,gDAAwB;AACxB,4CAAoB;AAEpB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,YAAE,CAAC,YAAY,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CACrE,CAAC;AAmBF,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE;SAC1B,IAAI,CAAC,kBAAkB,CAAC;SACxB,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;SAC5B,WAAW,CAAC,gCAAgC,CAAC;SAC7C,QAAQ,CAAC,qBAAqB,EAAE,oCAAoC,CAAC;SACrE,MAAM,CAAC,2BAA2B,EAAE,kCAAkC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# {{PROJECT_NAME}}
|
|
2
|
+
|
|
3
|
+
A [Joist ORM](https://joist-orm.io/) project.
|
|
4
|
+
|
|
5
|
+
## Getting Started
|
|
6
|
+
|
|
7
|
+
### Prerequisites
|
|
8
|
+
|
|
9
|
+
- Node.js 18+
|
|
10
|
+
- Docker (for PostgreSQL)
|
|
11
|
+
|
|
12
|
+
### Setup
|
|
13
|
+
|
|
14
|
+
1. Start the database and run initial setup:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
yarn db
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
This command will:
|
|
21
|
+
- Start a PostgreSQL container
|
|
22
|
+
- Run database migrations
|
|
23
|
+
- Generate Joist entity code
|
|
24
|
+
|
|
25
|
+
### Development
|
|
26
|
+
|
|
27
|
+
#### Running Tests
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
yarn test
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
#### Creating a New Migration
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
yarn migrate:new my-migration-name
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Then edit the generated file in `migrations/` and run:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
yarn migrate
|
|
43
|
+
yarn codegen
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
#### Resetting the Database
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
yarn redb
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Project Structure
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
├── migrations/ # Database migrations
|
|
56
|
+
├── src/
|
|
57
|
+
│ ├── entities/ # Joist entities
|
|
58
|
+
│ │ ├── codegen/ # Generated code (do not edit)
|
|
59
|
+
│ │ └── factories/ # Test factories
|
|
60
|
+
│ ├── context.ts # Request context
|
|
61
|
+
│ ├── setupTestEnv.ts # Global test setup
|
|
62
|
+
│ └── setupTests.ts # Per-suite test setup
|
|
63
|
+
├── docker-compose.yml # PostgreSQL service
|
|
64
|
+
└── joist-config.json # Joist configuration
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Learn More
|
|
68
|
+
|
|
69
|
+
- [Joist Documentation](https://joist-orm.io/)
|
|
70
|
+
- [GitHub Repository](https://github.com/joist-orm/joist-orm)
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Dependencies
|
|
2
|
+
node_modules/
|
|
3
|
+
|
|
4
|
+
# Build output
|
|
5
|
+
build/
|
|
6
|
+
dist/
|
|
7
|
+
|
|
8
|
+
# IDE
|
|
9
|
+
.idea/
|
|
10
|
+
.vscode/
|
|
11
|
+
*.swp
|
|
12
|
+
*.swo
|
|
13
|
+
|
|
14
|
+
# OS
|
|
15
|
+
.DS_Store
|
|
16
|
+
Thumbs.db
|
|
17
|
+
|
|
18
|
+
# Test output
|
|
19
|
+
coverage/
|
|
20
|
+
|
|
21
|
+
# Logs
|
|
22
|
+
*.log
|
|
23
|
+
npm-debug.log*
|
|
24
|
+
yarn-debug.log*
|
|
25
|
+
yarn-error.log*
|
|
26
|
+
|
|
27
|
+
# TypeScript
|
|
28
|
+
*.tsbuildinfo
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** @type {import('jest').Config} */
|
|
2
|
+
module.exports = {
|
|
3
|
+
transform: {
|
|
4
|
+
"^.+\\.tsx?$": "@swc/jest",
|
|
5
|
+
},
|
|
6
|
+
moduleNameMapper: {
|
|
7
|
+
"^src/(.*)$": "<rootDir>/src/$1",
|
|
8
|
+
},
|
|
9
|
+
testMatch: ["<rootDir>/src/**/*.test.{ts,tsx}"],
|
|
10
|
+
testEnvironment: "node",
|
|
11
|
+
globalSetup: "./src/setupTestEnv.ts",
|
|
12
|
+
setupFilesAfterEnv: ["./src/setupTests.ts"],
|
|
13
|
+
maxWorkers: 1,
|
|
14
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createCreatedAtFunction,
|
|
3
|
+
createEntityTable,
|
|
4
|
+
createUpdatedAtFunction,
|
|
5
|
+
foreignKey,
|
|
6
|
+
} from "joist-migration-utils";
|
|
7
|
+
import { MigrationBuilder } from "node-pg-migrate";
|
|
8
|
+
|
|
9
|
+
export function up(b: MigrationBuilder): void {
|
|
10
|
+
createUpdatedAtFunction(b);
|
|
11
|
+
createCreatedAtFunction(b);
|
|
12
|
+
|
|
13
|
+
createEntityTable(b, "authors", {
|
|
14
|
+
first_name: { type: "varchar(255)", notNull: true },
|
|
15
|
+
last_name: { type: "varchar(255)", notNull: false },
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
createEntityTable(b, "books", {
|
|
19
|
+
title: { type: "varchar(255)", notNull: true },
|
|
20
|
+
author_id: foreignKey("authors", { notNull: true }),
|
|
21
|
+
});
|
|
22
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "basic-template",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"scripts": {
|
|
6
|
+
"build": "tsc",
|
|
7
|
+
"test": "env-cmd jest --runInBand",
|
|
8
|
+
"codegen": "env-cmd yarn joist-codegen",
|
|
9
|
+
"format": "prettier --write \"src/**/*.{ts,tsx}\""
|
|
10
|
+
},
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"@types/pg": "^8.18.0",
|
|
13
|
+
"joist-orm": "2.0.3-next.36",
|
|
14
|
+
"pg": "^8.16.3"
|
|
15
|
+
},
|
|
16
|
+
"devDependencies": {
|
|
17
|
+
"@swc/core": "^1.13.0",
|
|
18
|
+
"@swc/jest": "^0.2.39",
|
|
19
|
+
"@types/jest": "^30.0.0",
|
|
20
|
+
"@types/node": "^24.0.0",
|
|
21
|
+
"env-cmd": "^11.0.0",
|
|
22
|
+
"jest": "^30.0.0",
|
|
23
|
+
"node-pg-migrate": "^8.0.4",
|
|
24
|
+
"prettier": "^3.6.0",
|
|
25
|
+
"tsx": "^4.20.0",
|
|
26
|
+
"typescript": "^5.9.0"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { EntityManager, newPgConnectionConfig } from "joist-orm";
|
|
2
|
+
import { PostgresDriver } from "joist-orm/pg";
|
|
3
|
+
import { Pool } from "pg";
|
|
4
|
+
|
|
5
|
+
export interface Context {
|
|
6
|
+
pool: Pool;
|
|
7
|
+
em: EntityManager;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export function newContext(): Context {
|
|
11
|
+
const pool = new Pool(newPgConnectionConfig());
|
|
12
|
+
const em = new EntityManager({}, new PostgresDriver(pool));
|
|
13
|
+
return { em, pool };
|
|
14
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { newEm } from "../setupTests";
|
|
2
|
+
import { newAuthor, newBook } from "./factories";
|
|
3
|
+
|
|
4
|
+
describe("Author", () => {
|
|
5
|
+
it("can create an author", async () => {
|
|
6
|
+
const em = newEm();
|
|
7
|
+
newAuthor(em, { firstName: "John", lastName: "Doe" });
|
|
8
|
+
await em.flush();
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
it("can have books", async () => {
|
|
12
|
+
const em = newEm();
|
|
13
|
+
const author = newAuthor(em, { firstName: "Test", lastName: "Author" });
|
|
14
|
+
newBook(em, { title: "Test Book", author });
|
|
15
|
+
await em.flush();
|
|
16
|
+
});
|
|
17
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// organize-imports-ignore
|
|
2
|
+
|
|
3
|
+
// This file drives our import order to avoid undefined errors
|
|
4
|
+
// when the subclasses extend the base classes, see:
|
|
5
|
+
// https://medium.com/visual-development/how-to-fix-nasty-circular-dependency-issues-once-and-for-all-in-javascript-typescript-a04c987cf0de
|
|
6
|
+
|
|
7
|
+
export * from "./codegen/AuthorCodegen";
|
|
8
|
+
export * from "./codegen/BookCodegen";
|
|
9
|
+
export * from "./Author";
|
|
10
|
+
export * from "./Book";
|
|
11
|
+
|
|
12
|
+
export * from "./factories/newAuthor";
|
|
13
|
+
export * from "./factories/newBook";
|
|
14
|
+
export * from "./codegen/metadata";
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import expect from "expect";
|
|
2
|
+
import { newPgConnectionConfig } from "joist-orm";
|
|
3
|
+
import { PostgresDriver } from "joist-orm/pg";
|
|
4
|
+
import { toMatchEntity } from "joist-orm/tests";
|
|
5
|
+
import pg from "pg";
|
|
6
|
+
import { Context } from "./context";
|
|
7
|
+
import { EntityManager } from "./entities";
|
|
8
|
+
|
|
9
|
+
expect.extend({ toMatchEntity });
|
|
10
|
+
|
|
11
|
+
let pool: pg.Pool;
|
|
12
|
+
|
|
13
|
+
beforeAll(async () => {
|
|
14
|
+
pool = new pg.Pool(newPgConnectionConfig());
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
beforeEach(async () => {
|
|
18
|
+
await pool.query("select flush_database()");
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
afterAll(async () => {
|
|
22
|
+
await pool.end();
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
export function newEm(): EntityManager {
|
|
26
|
+
const driver = new PostgresDriver(pool);
|
|
27
|
+
const ctx = { pool, em: null as any } satisfies Context;
|
|
28
|
+
return new EntityManager(ctx, driver);
|
|
29
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2022",
|
|
4
|
+
"module": "nodenext",
|
|
5
|
+
"lib": ["ES2022"],
|
|
6
|
+
"moduleResolution": "nodenext",
|
|
7
|
+
"esModuleInterop": true,
|
|
8
|
+
"strict": true,
|
|
9
|
+
"skipLibCheck": true,
|
|
10
|
+
"forceConsistentCasingInFileNames": true,
|
|
11
|
+
"declaration": true,
|
|
12
|
+
"declarationMap": true,
|
|
13
|
+
"sourceMap": true,
|
|
14
|
+
"outDir": "./build",
|
|
15
|
+
"rootDir": "./src",
|
|
16
|
+
"baseUrl": "./src",
|
|
17
|
+
"paths": {
|
|
18
|
+
"src/*": ["./*"]
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"include": ["src"],
|
|
22
|
+
"exclude": ["node_modules", "build"]
|
|
23
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# {{PROJECT_NAME}}
|
|
2
|
+
|
|
3
|
+
A [Joist ORM](https://joist-orm.io/) project with GraphQL.
|
|
4
|
+
|
|
5
|
+
## Getting Started
|
|
6
|
+
|
|
7
|
+
### Prerequisites
|
|
8
|
+
|
|
9
|
+
- Node.js 18+
|
|
10
|
+
- Docker (for PostgreSQL)
|
|
11
|
+
|
|
12
|
+
### Setup
|
|
13
|
+
|
|
14
|
+
1. Start the database and run initial setup:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
yarn db
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
This command will:
|
|
21
|
+
- Start a PostgreSQL container
|
|
22
|
+
- Run database migrations
|
|
23
|
+
- Generate Joist entity code and GraphQL types
|
|
24
|
+
|
|
25
|
+
### Development
|
|
26
|
+
|
|
27
|
+
#### Starting the Server
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
yarn dev
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
The GraphQL server will start at http://localhost:4000
|
|
34
|
+
|
|
35
|
+
#### Running Tests
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
yarn test
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
#### Creating a New Migration
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
yarn migrate:new my-migration-name
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Then edit the generated file in `migrations/` and run:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
yarn migrate
|
|
51
|
+
yarn codegen
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
#### Resetting the Database
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
yarn redb
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Project Structure
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
├── migrations/ # Database migrations
|
|
64
|
+
├── src/
|
|
65
|
+
│ ├── entities/ # Joist entities
|
|
66
|
+
│ │ ├── codegen/ # Generated entity code (do not edit)
|
|
67
|
+
│ │ └── factories/ # Test factories
|
|
68
|
+
│ ├── resolvers/ # GraphQL resolvers
|
|
69
|
+
│ ├── generated/ # Generated GraphQL types (do not edit)
|
|
70
|
+
│ ├── context.ts # Request context
|
|
71
|
+
│ ├── schema.graphql # GraphQL schema
|
|
72
|
+
│ ├── server.ts # Apollo Server setup
|
|
73
|
+
│ ├── setupTestEnv.ts # Global test setup
|
|
74
|
+
│ └── setupTests.ts # Per-suite test setup
|
|
75
|
+
├── docker-compose.yml # PostgreSQL service
|
|
76
|
+
├── joist-config.json # Joist configuration
|
|
77
|
+
└── codegen.yml # GraphQL codegen configuration
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Learn More
|
|
81
|
+
|
|
82
|
+
- [Joist Documentation](https://joist-orm.io/)
|
|
83
|
+
- [Apollo Server](https://www.apollographql.com/docs/apollo-server/)
|
|
84
|
+
- [GitHub Repository](https://github.com/joist-orm/joist-orm)
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Dependencies
|
|
2
|
+
node_modules/
|
|
3
|
+
|
|
4
|
+
# Build output
|
|
5
|
+
build/
|
|
6
|
+
dist/
|
|
7
|
+
|
|
8
|
+
# IDE
|
|
9
|
+
.idea/
|
|
10
|
+
.vscode/
|
|
11
|
+
*.swp
|
|
12
|
+
*.swo
|
|
13
|
+
|
|
14
|
+
# OS
|
|
15
|
+
.DS_Store
|
|
16
|
+
Thumbs.db
|
|
17
|
+
|
|
18
|
+
# Test output
|
|
19
|
+
coverage/
|
|
20
|
+
|
|
21
|
+
# Logs
|
|
22
|
+
*.log
|
|
23
|
+
npm-debug.log*
|
|
24
|
+
yarn-debug.log*
|
|
25
|
+
yarn-error.log*
|
|
26
|
+
|
|
27
|
+
# TypeScript
|
|
28
|
+
*.tsbuildinfo
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const { mappers, enumValues } = require("./graphql-codegen-joist");
|
|
2
|
+
|
|
3
|
+
module.exports = {
|
|
4
|
+
overwrite: true,
|
|
5
|
+
schema: "./schema/**/*.graphql",
|
|
6
|
+
documents: null,
|
|
7
|
+
generates: {
|
|
8
|
+
"src/generated/graphql-types.ts": {
|
|
9
|
+
config: {
|
|
10
|
+
contextType: "src/context#Context",
|
|
11
|
+
noSchemaStitching: true,
|
|
12
|
+
avoidOptionals: true,
|
|
13
|
+
scaffolding: {
|
|
14
|
+
ignoreObjectsPattern: "Detail$",
|
|
15
|
+
},
|
|
16
|
+
mappers,
|
|
17
|
+
enumValues,
|
|
18
|
+
},
|
|
19
|
+
plugins: [
|
|
20
|
+
"@homebound/graphql-typescript-simple-resolvers",
|
|
21
|
+
"@homebound/graphql-typescript-resolver-scaffolding",
|
|
22
|
+
"@homebound/graphql-typescript-possible-types",
|
|
23
|
+
],
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** @type {import('jest').Config} */
|
|
2
|
+
module.exports = {
|
|
3
|
+
transform: {
|
|
4
|
+
"^.+\\.tsx?$": "@swc/jest",
|
|
5
|
+
},
|
|
6
|
+
moduleNameMapper: {
|
|
7
|
+
"^src/(.*)$": "<rootDir>/src/$1",
|
|
8
|
+
},
|
|
9
|
+
testMatch: ["<rootDir>/src/**/*.test.{ts,tsx}"],
|
|
10
|
+
testEnvironment: "node",
|
|
11
|
+
globalSetup: "./src/setupTestEnv.ts",
|
|
12
|
+
setupFilesAfterEnv: ["./src/setupTests.ts"],
|
|
13
|
+
maxWorkers: 1,
|
|
14
|
+
};
|