From cc2b18c001904d58ea86bcca06cceccd73fd606d Mon Sep 17 00:00:00 2001 From: Joosep Alviste Date: Sat, 3 Feb 2024 22:42:06 +0200 Subject: [PATCH] refactor: extract db model factories package Related to #83 --- apps/api/.eslintrc.json | 8 +++++ apps/api/package.json | 1 + .../auth/__tests__/auth.schema.test.ts | 2 +- .../series/__tests__/series.schema.test.ts | 13 ++++---- .../series/__tests__/series.service.test.ts | 12 ++++--- apps/api/src/features/series/index.ts | 4 --- .../api/src/features/series/series.service.ts | 3 +- .../__tests__/seriesProgress.schema.test.ts | 17 +++++----- .../__tests__/seriesProgress.service.test.ts | 3 +- apps/api/src/features/seriesProgress/index.ts | 3 -- .../seriesProgress/seriesProgress.service.ts | 4 ++- apps/api/src/features/users/index.ts | 1 - apps/api/src/test/testUtils.ts | 10 ++++-- packages/db-factories/.eslintrc.json | 4 +++ packages/db-factories/.prettierrc.json | 1 + packages/db-factories/package.json | 28 +++++++++++++++++ .../db-factories/src}/episode.factory.ts | 5 ++- packages/db-factories/src/index.ts | 7 +++++ packages/db-factories/src/lib/db.ts | 5 +++ packages/db-factories/src/lib/logger.ts | 3 ++ .../db-factories/src}/season.factory.ts | 5 ++- .../db-factories/src}/seenEpisode.factory.ts | 6 ++-- .../db-factories/src}/series.factory.ts | 4 +-- .../src}/seriesProgress.factory.ts | 7 +++-- .../db-factories/src}/user.factory.ts | 2 +- .../src}/userSeriesStatus.factory.ts | 6 ++-- .../src/utils/generateRandomInt.ts | 3 ++ packages/db-factories/tsconfig.json | 3 ++ .../eslint-config-base/eslint-config-base.js | 6 ---- .../package/files/package.json.template | 2 +- pnpm-lock.yaml | 31 +++++++++++++++++++ 31 files changed, 147 insertions(+), 62 deletions(-) create mode 100644 packages/db-factories/.eslintrc.json create mode 100644 packages/db-factories/.prettierrc.json create mode 100644 packages/db-factories/package.json rename {apps/api/src/features/series => packages/db-factories/src}/episode.factory.ts (90%) create mode 100644 packages/db-factories/src/index.ts create mode 100644 packages/db-factories/src/lib/db.ts create mode 100644 packages/db-factories/src/lib/logger.ts rename {apps/api/src/features/series => packages/db-factories/src}/season.factory.ts (88%) rename {apps/api/src/features/seriesProgress => packages/db-factories/src}/seenEpisode.factory.ts (84%) rename {apps/api/src/features/series => packages/db-factories/src}/series.factory.ts (89%) rename {apps/api/src/features/seriesProgress => packages/db-factories/src}/seriesProgress.factory.ts (87%) rename {apps/api/src/features/users => packages/db-factories/src}/user.factory.ts (95%) rename {apps/api/src/features/series => packages/db-factories/src}/userSeriesStatus.factory.ts (92%) create mode 100644 packages/db-factories/src/utils/generateRandomInt.ts create mode 100644 packages/db-factories/tsconfig.json diff --git a/apps/api/.eslintrc.json b/apps/api/.eslintrc.json index 3b9ca0c7..5797c647 100644 --- a/apps/api/.eslintrc.json +++ b/apps/api/.eslintrc.json @@ -1,6 +1,14 @@ { "extends": "@serieslist/eslint-config-base", "root": true, + "rules": { + "no-restricted-imports": [ + "error", + { + "patterns": ["#/features/*/*", "!#/features/*/jobs"] + } + ] + }, "overrides": [ { "files": ["src/test/mockTMDBServer.ts"], diff --git a/apps/api/package.json b/apps/api/package.json index 0a0c49b5..a9d4a5b0 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -72,6 +72,7 @@ "@graphql-codegen/client-preset": "^4.0.1", "@graphql-tools/executor-http": "^1.0.0", "@graphql-typed-document-node/core": "^3.2.0", + "@serieslist/db-factories": "workspace:^", "@serieslist/esbuild": "workspace:*", "@serieslist/eslint-config-base": "workspace:*", "@serieslist/prettier-config": "workspace:*", diff --git a/apps/api/src/features/auth/__tests__/auth.schema.test.ts b/apps/api/src/features/auth/__tests__/auth.schema.test.ts index f177c01f..a3ef0316 100644 --- a/apps/api/src/features/auth/__tests__/auth.schema.test.ts +++ b/apps/api/src/features/auth/__tests__/auth.schema.test.ts @@ -1,8 +1,8 @@ import { user, type User } from '@serieslist/db' +import { userFactory } from '@serieslist/db-factories' import { eq } from 'drizzle-orm' import { nanoid } from 'nanoid' -import { userFactory } from '#/features/users' import type { LoginInput, RegisterInput } from '#/generated/gql/graphql' import { graphql } from '#/generated/gql/index' import { db } from '#/lib/db' diff --git a/apps/api/src/features/series/__tests__/series.schema.test.ts b/apps/api/src/features/series/__tests__/series.schema.test.ts index d96c7fc8..07c736c6 100644 --- a/apps/api/src/features/series/__tests__/series.schema.test.ts +++ b/apps/api/src/features/series/__tests__/series.schema.test.ts @@ -6,6 +6,13 @@ import { series, userSeriesStatus, } from '@serieslist/db' +import { + episodeFactory, + seasonFactory, + seriesFactory, + userSeriesStatusFactory, + userFactory, +} from '@serieslist/db-factories' import { tmdbSeasonFactory, tmdbEpisodeFactory, @@ -19,7 +26,6 @@ import { subDays } from 'date-fns' import { and, eq } from 'drizzle-orm' import { nanoid } from 'nanoid' -import { userFactory } from '#/features/users' import { graphql } from '#/generated/gql' import type { SeriesUpdateStatusInput } from '#/generated/gql/graphql' import { db } from '#/lib/db' @@ -31,11 +37,6 @@ import { } from '#/test/testUtils' import { parseDate } from '#/utils/date' -import { episodeFactory } from '../episode.factory' -import { seasonFactory } from '../season.factory' -import { seriesFactory } from '../series.factory' -import { userSeriesStatusFactory } from '../userSeriesStatus.factory' - describe('features/series/series.schema', () => { describe('seriesSearch query', () => { const executeSearch = (keyword = 'testing') => diff --git a/apps/api/src/features/series/__tests__/series.service.test.ts b/apps/api/src/features/series/__tests__/series.service.test.ts index c3179509..ff4fe784 100644 --- a/apps/api/src/features/series/__tests__/series.service.test.ts +++ b/apps/api/src/features/series/__tests__/series.service.test.ts @@ -1,4 +1,11 @@ import { episode, season, series, seriesProgress } from '@serieslist/db' +import { + episodeFactory, + seasonFactory, + seriesFactory, + seriesProgressFactory, + userFactory, +} from '@serieslist/db-factories' import { tmdbNotFoundResponseFactory, tmdbSeasonFactory, @@ -9,9 +16,7 @@ import type { LiterallyAnything } from '@serieslist/type-utils' import { subDays } from 'date-fns' import { and, eq } from 'drizzle-orm' -import { seriesProgressFactory } from '#/features/seriesProgress' import { tmdbEpisodeFactory, tmdbSeriesDetailsFactory } from '#/features/tmdb' -import { userFactory } from '#/features/users' import { db } from '#/lib/db' import { createContext, @@ -20,9 +25,6 @@ import { } from '#/test/testUtils' import { formatDate } from '#/utils/date' -import { episodeFactory } from '../episode.factory' -import { seasonFactory } from '../season.factory' -import { seriesFactory } from '../series.factory' import { findStatusForSeries, reSyncSeries, diff --git a/apps/api/src/features/series/index.ts b/apps/api/src/features/series/index.ts index d5b0c9aa..40eb9a46 100644 --- a/apps/api/src/features/series/index.ts +++ b/apps/api/src/features/series/index.ts @@ -1,8 +1,4 @@ export * from './series.schema' -export * from './series.factory' -export * from './season.factory' -export * from './episode.factory' -export * from './userSeriesStatus.factory' export { UserSeriesStatusStatus } from '@serieslist/db' export * as episodesService from './episodes.service' export * as seasonService from './season.service' diff --git a/apps/api/src/features/series/series.service.ts b/apps/api/src/features/series/series.service.ts index 8c5dab1e..de9a5957 100644 --- a/apps/api/src/features/series/series.service.ts +++ b/apps/api/src/features/series/series.service.ts @@ -11,7 +11,8 @@ import { addDays, isFuture, subDays } from 'date-fns' import index from 'just-index' import unique from 'just-unique' -import { seriesProgressService } from '#/features/seriesProgress' +// TODO: This is a circular import +import * as seriesProgressService from '#/features/seriesProgress/seriesProgress.service' import type { SeriesUpdateStatusInput, SeriesSearchInput, diff --git a/apps/api/src/features/seriesProgress/__tests__/seriesProgress.schema.test.ts b/apps/api/src/features/seriesProgress/__tests__/seriesProgress.schema.test.ts index 9c318c45..d399aa8d 100644 --- a/apps/api/src/features/seriesProgress/__tests__/seriesProgress.schema.test.ts +++ b/apps/api/src/features/seriesProgress/__tests__/seriesProgress.schema.test.ts @@ -1,13 +1,15 @@ import { seenEpisode, seriesProgress, type User } from '@serieslist/db' -import { addDays } from 'date-fns' -import { and, eq, inArray } from 'drizzle-orm' - +import { UserSeriesStatusStatus } from '@serieslist/db' import { + seenEpisodeFactory, + seriesProgressFactory, episodeFactory, - UserSeriesStatusStatus, userSeriesStatusFactory, -} from '#/features/series' -import { userFactory } from '#/features/users' + userFactory, +} from '@serieslist/db-factories' +import { addDays } from 'date-fns' +import { and, eq, inArray } from 'drizzle-orm' + import { graphql } from '#/generated/gql' import type { MarkSeriesEpisodesAsSeenInput, @@ -22,9 +24,6 @@ import { executeOperation, } from '#/test/testUtils' -import { seenEpisodeFactory } from '../seenEpisode.factory' -import { seriesProgressFactory } from '../seriesProgress.factory' - describe('features/seriesProgress/seriesProgress.schema', () => { describe('toggleEpisodeSeen mutation', () => { const executeMutation = async ({ diff --git a/apps/api/src/features/seriesProgress/__tests__/seriesProgress.service.test.ts b/apps/api/src/features/seriesProgress/__tests__/seriesProgress.service.test.ts index df486011..d5fc1957 100644 --- a/apps/api/src/features/seriesProgress/__tests__/seriesProgress.service.test.ts +++ b/apps/api/src/features/seriesProgress/__tests__/seriesProgress.service.test.ts @@ -1,7 +1,7 @@ import { seriesProgress } from '@serieslist/db' +import { seriesProgressFactory, seriesFactory } from '@serieslist/db-factories' import { and, eq } from 'drizzle-orm' -import { seriesFactory } from '#/features/series' import { db } from '#/lib/db' import { createContext, @@ -9,7 +9,6 @@ import { createSeriesWithEpisodesAndSeasons, } from '#/test/testUtils' -import { seriesProgressFactory } from '../seriesProgress.factory' import { recalculateSeriesProgress, findLatestSeenEpisodesForSeries, diff --git a/apps/api/src/features/seriesProgress/index.ts b/apps/api/src/features/seriesProgress/index.ts index ef3b650d..620869f9 100644 --- a/apps/api/src/features/seriesProgress/index.ts +++ b/apps/api/src/features/seriesProgress/index.ts @@ -1,4 +1 @@ -export * from './seenEpisode.factory' -export * from './seriesProgress.factory' - export * as seriesProgressService from './seriesProgress.service' diff --git a/apps/api/src/features/seriesProgress/seriesProgress.service.ts b/apps/api/src/features/seriesProgress/seriesProgress.service.ts index ae548849..2d780393 100644 --- a/apps/api/src/features/seriesProgress/seriesProgress.service.ts +++ b/apps/api/src/features/seriesProgress/seriesProgress.service.ts @@ -8,7 +8,9 @@ import type { import type { NonNullableFields } from '@serieslist/type-utils' import index from 'just-index' -import { episodesService, seasonService } from '#/features/series' +// TODO: Importing these from #/features/series causes a circular import error +import * as episodesService from '#/features/series/episodes.service' +import * as seasonService from '#/features/series/season.service' import { isTruthy } from '#/utils/isTruthy' import * as seenEpisodeRepository from './seenEpisode.repository' diff --git a/apps/api/src/features/users/index.ts b/apps/api/src/features/users/index.ts index 239dfe2a..d48b91a0 100644 --- a/apps/api/src/features/users/index.ts +++ b/apps/api/src/features/users/index.ts @@ -1,3 +1,2 @@ export * from './users.schema' -export * from './user.factory' export * as usersService from './users.service' diff --git a/apps/api/src/test/testUtils.ts b/apps/api/src/test/testUtils.ts index cba95719..481c8a1a 100644 --- a/apps/api/src/test/testUtils.ts +++ b/apps/api/src/test/testUtils.ts @@ -1,13 +1,17 @@ import type { TypedDocumentNode } from '@graphql-typed-document-node/core' import type { User, Episode, Season, Series } from '@serieslist/db' +import { + episodeFactory, + seasonFactory, + seriesFactory, + seenEpisodeFactory, + userFactory, +} from '@serieslist/db-factories' import type { AuthenticatedContext, Context } from '@serieslist/graphql-server' import type { NotWorthIt } from '@serieslist/type-utils' import { type ExecutionResult, print } from 'graphql' import { createYoga, type YogaInitialContext } from 'graphql-yoga' -import { episodeFactory, seasonFactory, seriesFactory } from '#/features/series' -import { seenEpisodeFactory } from '#/features/seriesProgress' -import { userFactory } from '#/features/users' import { createArrayOfLength } from '#/lib/createArrayOfLength' import { db } from '#/lib/db' import { schema } from '#/schema' diff --git a/packages/db-factories/.eslintrc.json b/packages/db-factories/.eslintrc.json new file mode 100644 index 00000000..1e861a8f --- /dev/null +++ b/packages/db-factories/.eslintrc.json @@ -0,0 +1,4 @@ +{ + "extends": "@serieslist/eslint-config-base", + "root": true +} diff --git a/packages/db-factories/.prettierrc.json b/packages/db-factories/.prettierrc.json new file mode 100644 index 00000000..418db572 --- /dev/null +++ b/packages/db-factories/.prettierrc.json @@ -0,0 +1 @@ +"@serieslist/prettier-config" diff --git a/packages/db-factories/package.json b/packages/db-factories/package.json new file mode 100644 index 00000000..92050df0 --- /dev/null +++ b/packages/db-factories/package.json @@ -0,0 +1,28 @@ +{ + "name": "@serieslist/db-factories", + "version": "1.0.0", + "type": "module", + "sideEffects": false, + "exports": { + ".": { + "import": "./src/index.ts", + "types": "./src/index.ts" + } + }, + "scripts": { + "lint": "eslint src", + "tsc": "tsc --noEmit" + }, + "devDependencies": { + "@serieslist/eslint-config-base": "workspace:*", + "@serieslist/prettier-config": "workspace:*", + "@serieslist/typescript-config-base": "workspace:*", + "typescript": "^5.3.3" + }, + "dependencies": { + "@serieslist/db": "workspace:^", + "@serieslist/logger": "workspace:^", + "fishery": "^2.2.2", + "nanoid": "^4.0.2" + } +} diff --git a/apps/api/src/features/series/episode.factory.ts b/packages/db-factories/src/episode.factory.ts similarity index 90% rename from apps/api/src/features/series/episode.factory.ts rename to packages/db-factories/src/episode.factory.ts index 9e32a1d8..546e58a9 100644 --- a/apps/api/src/features/series/episode.factory.ts +++ b/packages/db-factories/src/episode.factory.ts @@ -2,10 +2,9 @@ import { episode, type Episode } from '@serieslist/db' import { Factory } from 'fishery' import { nanoid } from 'nanoid' -import { db } from '#/lib/db' -import { generateRandomInt } from '#/utils/generateRandomInt' - +import { db } from './lib/db' import { seasonFactory } from './season.factory' +import { generateRandomInt } from './utils/generateRandomInt' export const episodeFactory = Factory.define( ({ sequence, onCreate, params }) => { diff --git a/packages/db-factories/src/index.ts b/packages/db-factories/src/index.ts new file mode 100644 index 00000000..42d86292 --- /dev/null +++ b/packages/db-factories/src/index.ts @@ -0,0 +1,7 @@ +export * from './episode.factory' +export * from './season.factory' +export * from './seenEpisode.factory' +export * from './series.factory' +export * from './seriesProgress.factory' +export * from './user.factory' +export * from './userSeriesStatus.factory' diff --git a/packages/db-factories/src/lib/db.ts b/packages/db-factories/src/lib/db.ts new file mode 100644 index 00000000..3935eb34 --- /dev/null +++ b/packages/db-factories/src/lib/db.ts @@ -0,0 +1,5 @@ +import { createDbConnection } from '@serieslist/db' + +import { log } from './logger' + +export const { db } = await createDbConnection({ logger: log }) diff --git a/packages/db-factories/src/lib/logger.ts b/packages/db-factories/src/lib/logger.ts new file mode 100644 index 00000000..a05c85af --- /dev/null +++ b/packages/db-factories/src/lib/logger.ts @@ -0,0 +1,3 @@ +import { createLogger } from '@serieslist/logger' + +export const log = createLogger({ name: 'db-factories' }) diff --git a/apps/api/src/features/series/season.factory.ts b/packages/db-factories/src/season.factory.ts similarity index 88% rename from apps/api/src/features/series/season.factory.ts rename to packages/db-factories/src/season.factory.ts index b599048d..c238459e 100644 --- a/apps/api/src/features/series/season.factory.ts +++ b/packages/db-factories/src/season.factory.ts @@ -1,10 +1,9 @@ import { season, type Season } from '@serieslist/db' import { Factory } from 'fishery' -import { db } from '#/lib/db' -import { generateRandomInt } from '#/utils/generateRandomInt' - +import { db } from './lib/db' import { seriesFactory } from './series.factory' +import { generateRandomInt } from './utils/generateRandomInt' export const seasonFactory = Factory.define( ({ sequence, onCreate, params }) => { diff --git a/apps/api/src/features/seriesProgress/seenEpisode.factory.ts b/packages/db-factories/src/seenEpisode.factory.ts similarity index 84% rename from apps/api/src/features/seriesProgress/seenEpisode.factory.ts rename to packages/db-factories/src/seenEpisode.factory.ts index 4243f22f..36eb3d66 100644 --- a/apps/api/src/features/seriesProgress/seenEpisode.factory.ts +++ b/packages/db-factories/src/seenEpisode.factory.ts @@ -1,9 +1,9 @@ import { seenEpisode, type SeenEpisode } from '@serieslist/db' import { Factory } from 'fishery' -import { episodeFactory } from '#/features/series' -import { userFactory } from '#/features/users' -import { db } from '#/lib/db' +import { episodeFactory } from './episode.factory' +import { db } from './lib/db' +import { userFactory } from './user.factory' export const seenEpisodeFactory = Factory.define( ({ onCreate, params }) => { diff --git a/apps/api/src/features/series/series.factory.ts b/packages/db-factories/src/series.factory.ts similarity index 89% rename from apps/api/src/features/series/series.factory.ts rename to packages/db-factories/src/series.factory.ts index 4fe4a085..e74eb8c8 100644 --- a/apps/api/src/features/series/series.factory.ts +++ b/packages/db-factories/src/series.factory.ts @@ -2,8 +2,8 @@ import { series, type Series } from '@serieslist/db' import { Factory } from 'fishery' import { nanoid } from 'nanoid' -import { db } from '#/lib/db' -import { generateRandomInt } from '#/utils/generateRandomInt' +import { db } from './lib/db' +import { generateRandomInt } from './utils/generateRandomInt' export const seriesFactory = Factory.define( ({ sequence, onCreate }) => { diff --git a/apps/api/src/features/seriesProgress/seriesProgress.factory.ts b/packages/db-factories/src/seriesProgress.factory.ts similarity index 87% rename from apps/api/src/features/seriesProgress/seriesProgress.factory.ts rename to packages/db-factories/src/seriesProgress.factory.ts index 1726c64c..902b0f47 100644 --- a/apps/api/src/features/seriesProgress/seriesProgress.factory.ts +++ b/packages/db-factories/src/seriesProgress.factory.ts @@ -1,9 +1,10 @@ import { seriesProgress, type SeriesProgress } from '@serieslist/db' import { Factory } from 'fishery' -import { episodeFactory, seriesFactory } from '#/features/series' -import { userFactory } from '#/features/users' -import { db } from '#/lib/db' +import { episodeFactory } from './episode.factory' +import { db } from './lib/db' +import { seriesFactory } from './series.factory' +import { userFactory } from './user.factory' export const seriesProgressFactory = Factory.define( ({ params, onCreate }) => { diff --git a/apps/api/src/features/users/user.factory.ts b/packages/db-factories/src/user.factory.ts similarity index 95% rename from apps/api/src/features/users/user.factory.ts rename to packages/db-factories/src/user.factory.ts index d5464558..c8d8924a 100644 --- a/apps/api/src/features/users/user.factory.ts +++ b/packages/db-factories/src/user.factory.ts @@ -2,7 +2,7 @@ import { user, type User } from '@serieslist/db' import { Factory } from 'fishery' import { nanoid } from 'nanoid' -import { db } from '#/lib/db' +import { db } from './lib/db' export const userFactory = Factory.define(({ sequence, onCreate }) => { onCreate(async (userArgs) => { diff --git a/apps/api/src/features/series/userSeriesStatus.factory.ts b/packages/db-factories/src/userSeriesStatus.factory.ts similarity index 92% rename from apps/api/src/features/series/userSeriesStatus.factory.ts rename to packages/db-factories/src/userSeriesStatus.factory.ts index 993c3543..07569bb0 100644 --- a/apps/api/src/features/series/userSeriesStatus.factory.ts +++ b/packages/db-factories/src/userSeriesStatus.factory.ts @@ -2,11 +2,9 @@ import type { UserSeriesStatus } from '@serieslist/db' import { UserSeriesStatusStatus, userSeriesStatus } from '@serieslist/db' import { Factory } from 'fishery' -import { db } from '#/lib/db' - -import { userFactory } from '../users' - +import { db } from './lib/db' import { seriesFactory } from './series.factory' +import { userFactory } from './user.factory' export const userSeriesStatusFactory = Factory.define( ({ params, onCreate }) => { diff --git a/packages/db-factories/src/utils/generateRandomInt.ts b/packages/db-factories/src/utils/generateRandomInt.ts new file mode 100644 index 00000000..e410cdc0 --- /dev/null +++ b/packages/db-factories/src/utils/generateRandomInt.ts @@ -0,0 +1,3 @@ +export const generateRandomInt = (min: number, max: number) => { + return Math.floor(Math.random() * (max - min + 1) + min) +} diff --git a/packages/db-factories/tsconfig.json b/packages/db-factories/tsconfig.json new file mode 100644 index 00000000..b7ae5b01 --- /dev/null +++ b/packages/db-factories/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "@serieslist/typescript-config-base" +} diff --git a/packages/eslint-config-base/eslint-config-base.js b/packages/eslint-config-base/eslint-config-base.js index 524d0692..5ed73e73 100644 --- a/packages/eslint-config-base/eslint-config-base.js +++ b/packages/eslint-config-base/eslint-config-base.js @@ -61,12 +61,6 @@ module.exports = { }, }, ], - 'no-restricted-imports': [ - 'error', - { - patterns: ['#/features/*/*', '!#/features/*/jobs'], - }, - ], '@nx/enforce-module-boundaries': ['error'], }, overrides: [ diff --git a/packages/nx-plugin/src/generators/package/files/package.json.template b/packages/nx-plugin/src/generators/package/files/package.json.template index 29c933ec..444879c7 100644 --- a/packages/nx-plugin/src/generators/package/files/package.json.template +++ b/packages/nx-plugin/src/generators/package/files/package.json.template @@ -1,5 +1,5 @@ { - "name": "@serieslist/", + "name": "@serieslist/<%= name %>", "version": "1.0.0", "type": "module", "sideEffects": false, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6da40842..3c509f13 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -147,6 +147,9 @@ importers: '@graphql-typed-document-node/core': specifier: ^3.2.0 version: 3.2.0(graphql@16.8.1) + '@serieslist/db-factories': + specifier: workspace:^ + version: link:../../packages/db-factories '@serieslist/esbuild': specifier: workspace:* version: link:../../packages/esbuild @@ -499,6 +502,34 @@ importers: specifier: ^5.3.3 version: 5.3.3 + packages/db-factories: + dependencies: + '@serieslist/db': + specifier: workspace:^ + version: link:../db + '@serieslist/logger': + specifier: workspace:^ + version: link:../logger + fishery: + specifier: ^2.2.2 + version: 2.2.2 + nanoid: + specifier: ^4.0.2 + version: 4.0.2 + devDependencies: + '@serieslist/eslint-config-base': + specifier: workspace:* + version: link:../eslint-config-base + '@serieslist/prettier-config': + specifier: workspace:* + version: link:../prettier-config + '@serieslist/typescript-config-base': + specifier: workspace:* + version: link:../typescript-config-base + typescript: + specifier: ^5.3.3 + version: 5.3.3 + packages/esbuild: devDependencies: '@serieslist/eslint-config-base':