Skip to content

Commit b1f0ed4

Browse files
committed
[db] Replace faker with @faker-js/faker
1 parent 651bccf commit b1f0ed4

File tree

7 files changed

+23
-29
lines changed

7 files changed

+23
-29
lines changed

.husky/pre-commit

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,5 @@
22
. "$(dirname "$0")/_/husky.sh"
33

44
yarn lint
5+
yarn prettier --check .
6+

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
## Features
1313

14-
- Monorepo project structure powered by Yarn v2 with PnP
14+
- Monorepo project structure powered by Yarn with PnP
1515
- GraphQL API using code-first development approach (TypeScript, GraphQL.js, Knex, PostgreSQL)
1616
- Stateless JWT cookie-based authentication (supporting SSR, OAuth 2.0 via Google, Facebook, etc.)
1717
- Database tooling — seed files, migrations, Knex.js REPL shell, etc.

api/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ assistance.
1313

1414
## Tech Stack
1515

16-
- [Node.js](https://nodejs.org/) `v16`, [Yarn](https://yarnpkg.com/) `v2`, [TypeScript](https://www.typescriptlang.org/), [Babel](https://babeljs.io/), [Prettier](https://prettier.io/), [ESLint](https://eslint.org/) — core platform and dev tools
16+
- [Node.js](https://nodejs.org/) `v16`, [Yarn](https://yarnpkg.com/), [TypeScript](https://www.typescriptlang.org/), [Babel](https://babeljs.io/), [Prettier](https://prettier.io/), [ESLint](https://eslint.org/) — core platform and dev tools
1717
- [GraphQL.js](https://github.com/graphql/graphql-js), [GraphQL.js Relay](https://github.com/graphql/graphql-relay-js), [DataLoader](https://github.com/graphql/dataloader), [Validator.js](https://github.com/validatorjs/validator.js)[GraphQL](https://graphql.org/) schema and API endpoint(s)
1818
- [PostgreSQL](https://www.postgresql.org/), [Knex.js](https://knexjs.org/), [`pg`](https://node-postgres.com/), [`@google-cloud/storage`](https://googleapis.dev/nodejs/storage/latest) — data access
1919
- [`jswonwebtoken`](https://github.com/auth0/node-jsonwebtoken), [`google-auth-library`](https://github.com/googleapis/google-auth-library-nodejs) — stateless JWT-based sessions and authentication

db/package.json

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,30 +11,29 @@
1111
"db:migrate": "knex migrate:latest",
1212
"db:rollback": "knex migrate:rollback",
1313
"db:seed": "knex seed:run",
14-
"db:reset": "babel-node --root-mode=upward -x .ts ./scripts/reset.ts",
14+
"db:reset": "babel-node --root-mode=upward -o .,../api -x .ts ./scripts/reset.ts",
1515
"db:reset-test": "knex migrate:rollback --env=test 001_initial && knex migrate:latest --env=test && yarn db:restore --env=test",
1616
"db:reset-prod": "knex migrate:rollback --env=prod 001_initial && knex migrate:latest --env=prod && yarn db:restore --env=prod",
1717
"db:backup": "babel-node --root-mode=upward -x .ts ./scripts/backup.ts",
1818
"db:restore": "babel-node --root-mode=upward -x .ts ./scripts/restore.ts",
19-
"db:import-seeds": "babel-node --root-mode=upward -x .ts ./scripts/import-seeds.ts",
20-
"db:update-types": "babel-node --root-mode=upward -x .ts ./scripts/update-types.ts",
19+
"db:import-seeds": "babel-node --root-mode=upward -o .,../api -x .ts ./scripts/import-seeds.ts",
20+
"db:update-types": "babel-node --root-mode=upward -o .,../api -x .ts ./scripts/update-types.ts",
2121
"db:repl": "babel-node --root-mode=upward -o .,../api -x .ts --experimental-repl-await ./scripts/repl.ts",
22-
"db:psql": "babel-node --root-mode=upward -x .ts ./scripts/psql.ts"
22+
"db:psql": "babel-node --root-mode=upward -o .,../api -x .ts ./scripts/psql.ts"
2323
},
2424
"devDependencies": {
2525
"@babel/core": "^7.17.2",
2626
"@babel/node": "^7.16.8",
2727
"@babel/register": "^7.17.0",
28+
"@faker-js/faker": "^6.0.0-alpha.6",
2829
"@types/babel__core": "^7.1.18",
2930
"@types/cross-spawn": "^6.0.2",
30-
"@types/faker": "^6.6.9",
3131
"@types/lodash": "^4.14.178",
3232
"@types/minimist": "^1.2.2",
3333
"@types/prettier": "^2.4.4",
3434
"chalk": "^4.1.2",
3535
"cross-spawn": "^7.0.3",
3636
"envars": "^0.4.0",
37-
"faker": "^6.6.6",
3837
"knex": "^1.0.3",
3938
"knex-types": "^0.3.2",
4039
"lodash": "^4.17.21",

db/seeds/01_users.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* SPDX-FileCopyrightText: 2016-present Kriasoft <hello@kriasoft.com> */
22
/* SPDX-License-Identifier: MIT */
33

4-
import { date, image, internet, name, random } from "faker";
4+
import faker from "@faker-js/faker";
55
import { type Knex } from "knex";
66
import nanoid from "nanoid";
77
import fs from "node:fs/promises";
@@ -11,6 +11,7 @@ import prettier from "prettier";
1111
// https://zelark.github.io/nano-id-cc/
1212
const alphabet = "0123456789abcdefghijklmnopqrstuvwxyz";
1313
const newUserId = nanoid.customAlphabet(alphabet, 6);
14+
const { date, image, internet, name, random } = faker;
1415

1516
function stringify(obj: Record<string, unknown>) {
1617
return prettier.format(JSON.stringify(obj), { parser: "json" });
@@ -62,5 +63,5 @@ export async function seed(db: Knex) {
6263
await fs.writeFile(jsonFile, stringify(users));
6364
}
6465

65-
await db.table("user").insert(users);
66+
await db.table("user").insert(users).onConflict(["id"]).ignore();
6667
}

scripts/api-deploy.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ const args = minimist(process.argv.slice(2));
1919
process.env.NODE_ENV = "production";
2020
process.env.APP_ENV = args.env ?? process.env.APP_ENV ?? "test";
2121
envars.config({ env: process.env.APP_ENV });
22+
delete process.env.PGSSLMODE;
2223

2324
// Load the list of environment variables required by the app (api/env.ts)
2425
/** @type {import("../api/env").default} */
@@ -47,7 +48,8 @@ await $`gcloud functions deploy ${name} ${[
4748
// `--signature-type=http`,
4849
`--source=./dist`,
4950
`--timeout=30`,
50-
`--trigger-http`,
5151
`--set-env-vars=NODE_OPTIONS=--require=./.pnp.cjs --require=source-map-support/register --no-warnings`,
5252
...Object.keys(env).map((key) => `--set-env-vars=${key}=${env[key]}`),
53+
`--max-instances=4`,
54+
`--trigger-http`,
5355
]}`;

yarn.lock

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1749,6 +1749,13 @@ __metadata:
17491749
languageName: node
17501750
linkType: hard
17511751

1752+
"@faker-js/faker@npm:^6.0.0-alpha.6":
1753+
version: 6.0.0-alpha.6
1754+
resolution: "@faker-js/faker@npm:6.0.0-alpha.6"
1755+
checksum: 7da62a22a8e1bfbcd8b6517a6f3aa74cf468a681cea4b3cd306a285ec670dc591d48cb5191fc1131fba9fc669ba12f9c1b4849eb47f9be50c8476f72705bcc99
1756+
languageName: node
1757+
linkType: hard
1758+
17521759
"@gar/promisify@npm:^1.0.1":
17531760
version: 1.1.2
17541761
resolution: "@gar/promisify@npm:1.1.2"
@@ -3020,15 +3027,6 @@ __metadata:
30203027
languageName: node
30213028
linkType: hard
30223029

3023-
"@types/faker@npm:^6.6.9":
3024-
version: 6.6.9
3025-
resolution: "@types/faker@npm:6.6.9"
3026-
dependencies:
3027-
faker: "*"
3028-
checksum: 8fb069b6f2bf2cefec42a214395f49695b881d70e651a215a61c2fa7494bb173d1a598c895882ff89df3702ab51c49c23433b3d4bcfd8323cf4f608ed9fb6ce8
3029-
languageName: node
3030-
linkType: hard
3031-
30323030
"@types/fs-extra@npm:^8.0.1":
30333031
version: 8.1.2
30343032
resolution: "@types/fs-extra@npm:8.1.2"
@@ -5612,16 +5610,15 @@ __metadata:
56125610
"@babel/core": ^7.17.2
56135611
"@babel/node": ^7.16.8
56145612
"@babel/register": ^7.17.0
5613+
"@faker-js/faker": ^6.0.0-alpha.6
56155614
"@types/babel__core": ^7.1.18
56165615
"@types/cross-spawn": ^6.0.2
5617-
"@types/faker": ^6.6.9
56185616
"@types/lodash": ^4.14.178
56195617
"@types/minimist": ^1.2.2
56205618
"@types/prettier": ^2.4.4
56215619
chalk: ^4.1.2
56225620
cross-spawn: ^7.0.3
56235621
envars: ^0.4.0
5624-
faker: ^6.6.6
56255622
knex: ^1.0.3
56265623
knex-types: ^0.3.2
56275624
lodash: ^4.17.21
@@ -6708,13 +6705,6 @@ __metadata:
67086705
languageName: node
67096706
linkType: hard
67106707

6711-
"faker@npm:*, faker@npm:^6.6.6":
6712-
version: 6.6.6
6713-
resolution: "faker@npm:6.6.6"
6714-
checksum: bfb0d581ab4d76095f2c6bff213fe1735ce077f0f8df849c144ad26035e105bce1b7a704cc030366338c52e25b636ac097a712426a78c9b8804af78f6f2bffe7
6715-
languageName: node
6716-
linkType: hard
6717-
67186708
"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3":
67196709
version: 3.1.3
67206710
resolution: "fast-deep-equal@npm:3.1.3"

0 commit comments

Comments
 (0)