@shophost/rest-api 2.0.1 → 2.0.3
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/package.json +7 -1
- package/src/app.d.ts +2 -2
- package/src/app.js.map +1 -1
- package/src/core/lib/prisma.d.ts +2 -3
- package/src/core/lib/prisma.js +0 -3
- package/src/core/lib/prisma.js.map +1 -1
- package/src/db.d.ts +2 -0
- package/src/db.js +3 -0
- package/src/db.js.map +1 -0
- package/src/integrations/next.d.ts +6 -3
- package/src/integrations/next.js +20 -2
- package/src/integrations/next.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shophost/rest-api",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./src/index.js",
|
|
6
6
|
"types": "./src/index.d.ts",
|
|
@@ -15,6 +15,11 @@
|
|
|
15
15
|
"import": "./src/integrations/next.js",
|
|
16
16
|
"require": "./src/integrations/next.cjs"
|
|
17
17
|
},
|
|
18
|
+
"./db": {
|
|
19
|
+
"types": "./src/db.d.ts",
|
|
20
|
+
"import": "./src/db.js",
|
|
21
|
+
"require": "./src/db.cjs"
|
|
22
|
+
},
|
|
18
23
|
"./schemas": {
|
|
19
24
|
"types": "./src/schemas/index.d.ts",
|
|
20
25
|
"import": "./src/schemas/index.js",
|
|
@@ -43,6 +48,7 @@
|
|
|
43
48
|
},
|
|
44
49
|
"dependencies": {
|
|
45
50
|
"@hono/zod-openapi": "^1.2.2",
|
|
51
|
+
"@prisma/adapter-neon": "^7.4.2",
|
|
46
52
|
"@prisma/client": "^7.4.2",
|
|
47
53
|
"@prisma/client-runtime-utils": "^7.4.2",
|
|
48
54
|
"@react-email/components": "^0.0.36",
|
package/src/app.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { cors } from "hono/cors";
|
|
2
|
-
import { Prisma } from "./core/db";
|
|
3
2
|
import { type AuthContext } from "./core/hono/hono";
|
|
3
|
+
import type { PrismaClientType } from "./core/lib/prisma";
|
|
4
4
|
import { PaymentServiceOptions } from "./features/payment/payment.service";
|
|
5
5
|
export interface BuildApiAppOptions {
|
|
6
6
|
corsOptions?: Parameters<typeof cors>[0];
|
|
@@ -10,7 +10,7 @@ export interface BuildApiAppOptions {
|
|
|
10
10
|
};
|
|
11
11
|
};
|
|
12
12
|
payment?: PaymentServiceOptions;
|
|
13
|
-
prisma?:
|
|
13
|
+
prisma?: PrismaClientType | any;
|
|
14
14
|
resolveAuth?: (request: Request, path: string) => AuthContext;
|
|
15
15
|
}
|
|
16
16
|
export declare const buildApiApp: ({ corsOptions, maps, payment, prisma, resolveAuth, }?: BuildApiAppOptions) => import("@hono/zod-openapi").OpenAPIHono<import("./core/hono/hono").AppBindings, {}, "/">;
|
package/src/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../../packages/rest-api/src/app.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../../packages/rest-api/src/app.ts"],"names":[],"mappings":"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"}
|
package/src/core/lib/prisma.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { SqlDriverAdapterFactory } from "@prisma/client/runtime/client";
|
|
2
2
|
import { Prisma } from "../db";
|
|
3
|
-
type
|
|
3
|
+
export type CreatePrismaClientOptions = {
|
|
4
4
|
adapter: SqlDriverAdapterFactory;
|
|
5
5
|
} & Omit<Prisma.PrismaClientOptions, "adapter" | "accelerateUrl">;
|
|
6
|
-
export declare const createPrismaClient: (options:
|
|
6
|
+
export declare const createPrismaClient: (options: CreatePrismaClientOptions) => import("@prisma/client/runtime/client").DynamicClientExtensionThis<Prisma.TypeMap<import("@prisma/client/runtime/client").InternalArgs & {
|
|
7
7
|
result: {};
|
|
8
8
|
model: {
|
|
9
9
|
$allModels: {
|
|
@@ -809,4 +809,3 @@ export declare const createPrismaClient: (options: DriverAdapterOptions) => impo
|
|
|
809
809
|
client: {};
|
|
810
810
|
}>;
|
|
811
811
|
export type PrismaClientType = ReturnType<typeof createPrismaClient>;
|
|
812
|
-
export {};
|
package/src/core/lib/prisma.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { pagination } from "prisma-extension-pagination";
|
|
2
2
|
import { PrismaClient } from "../db";
|
|
3
|
-
if (!process.env.POSTGRES_PRISMA_URL) {
|
|
4
|
-
throw new Error("Missing POSTGRES_PRISMA_URL environment variable");
|
|
5
|
-
}
|
|
6
3
|
export const createPrismaClient = (options) => {
|
|
7
4
|
return new PrismaClient(options).$extends(pagination({
|
|
8
5
|
pages: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/core/lib/prisma.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEzD,OAAO,EAAU,YAAY,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"prisma.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/core/lib/prisma.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEzD,OAAO,EAAU,YAAY,EAAE,MAAM,OAAO,CAAC;AAM7C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAkC,EAAE,EAAE;IACvE,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,QAAQ,CACvC,UAAU,CAAC;QACT,KAAK,EAAE;YACL,KAAK,EAAE,EAAE;YACT,gBAAgB,EAAE,IAAI;SACvB;KACF,CAAC,CACH,CAAC;AACJ,CAAC,CAAC"}
|
package/src/db.d.ts
ADDED
package/src/db.js
ADDED
package/src/db.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../../../packages/rest-api/src/db.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,OAAO,EACL,kBAAkB,GAGnB,MAAM,mBAAmB,CAAC"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { NextRequest } from "next/server";
|
|
2
2
|
import { buildApiApp } from "../app";
|
|
3
|
-
import {
|
|
3
|
+
import { type CreatePrismaClientOptions, type PrismaClientType } from "../core/lib/prisma";
|
|
4
4
|
import { PaymentServiceOptions } from "../features/payment/payment.service";
|
|
5
5
|
interface CreateNextHandlerOptions {
|
|
6
6
|
corsOptions?: NonNullable<Parameters<typeof buildApiApp>[0]>["corsOptions"];
|
|
7
|
-
database
|
|
8
|
-
|
|
7
|
+
database?: CreatePrismaClientOptions | {
|
|
8
|
+
connectionString: string;
|
|
9
|
+
log?: CreatePrismaClientOptions["log"];
|
|
10
|
+
};
|
|
11
|
+
prisma?: PrismaClientType;
|
|
9
12
|
maps: {
|
|
10
13
|
google?: {
|
|
11
14
|
key: string;
|
package/src/integrations/next.js
CHANGED
|
@@ -1,9 +1,27 @@
|
|
|
1
|
+
import { PrismaNeon } from "@prisma/adapter-neon";
|
|
1
2
|
import { toNextJsHandler } from "better-auth/next-js";
|
|
2
3
|
import { buildApiApp } from "../app";
|
|
3
4
|
import { createAuthClient } from "../core/auth/better-auth.lib";
|
|
5
|
+
import { createPrismaClient, } from "../core/lib/prisma";
|
|
4
6
|
import { generateOpenApiSpec } from "../core/openapi/openapi.lib";
|
|
5
7
|
export const createNextHandler = (options) => {
|
|
6
|
-
|
|
8
|
+
var _a;
|
|
9
|
+
// Reuse a single client per route module unless a caller injects one.
|
|
10
|
+
const prisma = (_a = options.prisma) !== null && _a !== void 0 ? _a : (() => {
|
|
11
|
+
if (!options.database) {
|
|
12
|
+
throw new Error("createNextHandler requires either a `prisma` client or `database` options.");
|
|
13
|
+
}
|
|
14
|
+
if ("adapter" in options.database) {
|
|
15
|
+
return createPrismaClient(options.database);
|
|
16
|
+
}
|
|
17
|
+
return createPrismaClient({
|
|
18
|
+
adapter: new PrismaNeon({
|
|
19
|
+
connectionString: options.database.connectionString,
|
|
20
|
+
}),
|
|
21
|
+
log: options.database.log,
|
|
22
|
+
});
|
|
23
|
+
})();
|
|
24
|
+
const auth = createAuthClient(Object.assign({ prisma }, options.auth));
|
|
7
25
|
const getOrganizationIdFromPath = (path) => {
|
|
8
26
|
var _a, _b;
|
|
9
27
|
const segments = path.split("/").filter(Boolean);
|
|
@@ -16,7 +34,7 @@ export const createNextHandler = (options) => {
|
|
|
16
34
|
corsOptions: options.corsOptions,
|
|
17
35
|
maps: options.maps,
|
|
18
36
|
payment: options.payment,
|
|
19
|
-
prisma
|
|
37
|
+
prisma,
|
|
20
38
|
resolveAuth: (request, path) => {
|
|
21
39
|
const organizationId = getOrganizationIdFromPath(path);
|
|
22
40
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"next.js","sourceRoot":"","sources":["../../../../../packages/rest-api/src/integrations/next.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"next.js","sourceRoot":"","sources":["../../../../../packages/rest-api/src/integrations/next.ts"],"names":[],"mappings":"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"}
|