diff --git a/README.md b/README.md index 146d2aa..379b005 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,9 @@ Allows for managing order tasks and imported products for a small workshop. # Running -The project was tested with the nodejs version v18.17.1. It may not work with versions higher than 18 of nodejs. +The project was tested with the nodejs version v18.16.0. It may not work with newer versions of nodejs. + +Dev dependencies are required. `npm install -D` Project uses Oracle MySQL as a database store. It uses environment variables for the connection settings. All provided variables below are required. @@ -14,18 +16,4 @@ Project uses Oracle MySQL as a database store. It uses environment variables for |----------------------|-------------------| | `DB_URL` | Database url, see [this](https://www.prisma.io/docs/concepts/database-connectors/mysql#connection-url) | -## From Repository - -Dev dependencies are required. `npm install -D`. - -After setting variables, you can run the project using `npx nuxi dev`. -You can also setup variables by placing .env file in the root of the repository. - -When using nix, you can use `nix-shell` to get prisma engines installed in your environment. - -## From Actions - -You can download build from [repository actions](https://git.proot.pl/Wroclaw/WorkshopTasker/actions?workflow=build.yml). - -You need to extract tar file. -After setting environment variables, you can launch the project using the `node server/index.mjs` command. +After setting variables, you can run the project using `npx nuxi dev` or `npx nuxi preview`. diff --git a/server/api/orders/[id]/work.post.ts b/server/api/orders/[id]/work.post.ts index 8ada127..eec5c67 100644 --- a/server/api/orders/[id]/work.post.ts +++ b/server/api/orders/[id]/work.post.ts @@ -1,5 +1,5 @@ import { defineEventHandler, readBody, setResponseStatus } from "h3"; -import { Prisma } from "@prisma/client"; +import { Decimal } from "@prisma/client/runtime/library"; import { checkIsWork } from "../../orders.post"; import { orderExists } from "../[id].get"; @@ -24,7 +24,7 @@ export default defineEventHandler(async (e) => { notes: body.notes, offerId: BigInt(body.offerId), orderId: BigInt(body.orderId), - price: new Prisma.Decimal(body.price), + price: new Decimal(body.price), }, }); diff --git a/server/utils/prismaToWeb.ts b/server/utils/prismaToWeb.ts index 518ab8e..d307e5d 100644 --- a/server/utils/prismaToWeb.ts +++ b/server/utils/prismaToWeb.ts @@ -1,4 +1,4 @@ -import { Prisma } from "@prisma/client"; +import { Decimal } from "@prisma/client/runtime/library"; type func = (...args: any[]) => any | Function; @@ -8,7 +8,7 @@ export type replaceJsonUnparsableToString = [K in keyof T]: T[K] extends null ? null : T[K] extends func ? never - : T[K] extends Prisma.Decimal ? `${number}` + : T[K] extends Decimal ? `${number}` : T[K] extends Array ? Array> : T[K] extends object ? replaceJsonUnparsableToString : T[K] extends bigint ? `${bigint}` @@ -34,7 +34,7 @@ export function prismaToWeb(ivalue: T): replaceJsonUnparsableToString { const current = ivalue[i]; if (current === null) rvalue[i] = null; else if (typeof current === 'function') continue; - else if (current instanceof Prisma.Decimal) rvalue[i] = current.toString(); + else if (current instanceof Decimal) rvalue[i] = current.toString(); else if (current instanceof Array) rvalue[i] = arrayPrismaToWeb(current); else if (typeof current === 'object') rvalue[i] = prismaToWeb(current); else if (typeof current === 'bigint') rvalue[i] = current.toString();