create-prisma 0.1.3 → 0.2.0
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/README.md +55 -16
- package/dist/cli.mjs +1 -1
- package/dist/create-DgN5mAMV.mjs +1677 -0
- package/dist/index.d.mts +31 -57
- package/dist/index.mjs +10 -21
- package/package.json +2 -2
- package/templates/create/astro/.yarnrc.yml.hbs +3 -0
- package/templates/create/astro/README.md.hbs +35 -0
- package/templates/create/astro/astro.config.mjs +5 -0
- package/templates/create/astro/deno.json.hbs +5 -0
- package/templates/create/astro/package.json.hbs +22 -0
- package/templates/{init → create/astro}/prisma/schema.prisma.hbs +5 -2
- package/templates/create/astro/prisma/seed.ts.hbs +38 -0
- package/templates/{init/prisma.config.ts.hbs → create/astro/prisma.config.ts} +1 -0
- package/templates/create/astro/public/favicon.svg +14 -0
- package/templates/create/astro/src/env.d.ts +9 -0
- package/templates/create/astro/src/lib/prisma.ts.hbs +53 -0
- package/templates/create/astro/src/pages/api/users.ts.hbs +42 -0
- package/templates/create/astro/src/pages/index.astro.hbs +236 -0
- package/templates/create/astro/tsconfig.json +5 -0
- package/templates/create/hono/.yarnrc.yml.hbs +3 -0
- package/templates/create/hono/README.md.hbs +14 -11
- package/templates/create/hono/deno.json.hbs +5 -0
- package/templates/create/hono/package.json.hbs +4 -1
- package/templates/create/hono/prisma/schema.prisma.hbs +21 -0
- package/templates/create/hono/prisma/seed.ts.hbs +38 -0
- package/templates/create/hono/prisma.config.ts +13 -0
- package/templates/create/hono/src/index.ts.hbs +3 -3
- package/templates/create/hono/src/lib/prisma.ts.hbs +53 -0
- package/templates/create/hono/tsconfig.json +1 -2
- package/templates/create/next/.yarnrc.yml.hbs +3 -0
- package/templates/create/next/README.md.hbs +9 -6
- package/templates/create/next/deno.json.hbs +12 -0
- package/templates/create/next/package.json.hbs +4 -0
- package/templates/create/next/prisma/schema.prisma.hbs +21 -0
- package/templates/create/next/prisma/seed.ts.hbs +38 -0
- package/templates/create/next/prisma.config.ts +13 -0
- package/templates/create/next/src/app/globals.css +136 -0
- package/templates/create/next/src/app/page.tsx.hbs +104 -0
- package/templates/create/next/src/lib/prisma.ts.hbs +53 -0
- package/templates/create/nuxt/.yarnrc.yml.hbs +3 -0
- package/templates/create/nuxt/README.md.hbs +32 -0
- package/templates/create/nuxt/app/app.vue +4 -0
- package/templates/create/nuxt/app/pages/index.vue.hbs +230 -0
- package/templates/create/nuxt/deno.json.hbs +5 -0
- package/templates/create/nuxt/nuxt.config.ts +5 -0
- package/templates/create/nuxt/package.json.hbs +27 -0
- package/templates/create/nuxt/prisma/schema.prisma.hbs +21 -0
- package/templates/create/nuxt/prisma/seed.ts.hbs +38 -0
- package/templates/create/nuxt/prisma.config.ts +13 -0
- package/templates/create/nuxt/public/robots.txt +2 -0
- package/templates/create/nuxt/server/api/users.get.ts.hbs +36 -0
- package/templates/create/nuxt/server/utils/prisma.ts.hbs +53 -0
- package/templates/create/nuxt/tsconfig.json +17 -0
- package/templates/create/svelte/.vscode/extensions.json +3 -0
- package/templates/create/svelte/.yarnrc.yml.hbs +3 -0
- package/templates/create/svelte/README.md.hbs +34 -0
- package/templates/create/svelte/deno.json.hbs +5 -0
- package/templates/create/svelte/package.json.hbs +28 -0
- package/templates/create/svelte/prisma/schema.prisma.hbs +21 -0
- package/templates/create/svelte/prisma/seed.ts.hbs +87 -0
- package/templates/create/svelte/prisma.config.ts +13 -0
- package/templates/create/svelte/src/app.d.ts +13 -0
- package/templates/create/svelte/src/app.html +11 -0
- package/templates/create/svelte/src/lib/assets/favicon.svg +1 -0
- package/templates/create/svelte/src/lib/index.ts +1 -0
- package/templates/create/svelte/src/lib/server/prisma.ts.hbs +53 -0
- package/templates/create/svelte/src/routes/+layout.svelte +11 -0
- package/templates/create/svelte/src/routes/+page.server.ts.hbs +28 -0
- package/templates/create/svelte/src/routes/+page.svelte.hbs +350 -0
- package/templates/create/svelte/static/robots.txt +3 -0
- package/templates/create/svelte/svelte.config.js +13 -0
- package/templates/create/svelte/tsconfig.json +20 -0
- package/templates/create/svelte/vite.config.ts +6 -0
- package/templates/create/turborepo/.yarnrc.yml.hbs +3 -0
- package/templates/create/turborepo/README.md.hbs +29 -0
- package/templates/create/turborepo/apps/api/package.json.hbs +21 -0
- package/templates/create/turborepo/apps/api/src/index.ts.hbs +45 -0
- package/templates/create/turborepo/apps/api/tsconfig.json +17 -0
- package/templates/create/turborepo/deno.json.hbs +5 -0
- package/templates/create/turborepo/package.json.hbs +24 -0
- package/templates/create/turborepo/packages/db/package.json.hbs +17 -0
- package/templates/create/turborepo/packages/db/prisma/schema.prisma.hbs +21 -0
- package/templates/create/turborepo/packages/db/prisma/seed.ts.hbs +38 -0
- package/templates/create/turborepo/packages/db/prisma.config.ts +13 -0
- package/templates/create/turborepo/packages/db/src/client.ts.hbs +58 -0
- package/templates/create/turborepo/packages/db/src/index.ts +2 -0
- package/templates/create/turborepo/packages/db/tsconfig.json +19 -0
- package/templates/create/turborepo/turbo.json +34 -0
- package/dist/create-fJECj1B0.mjs +0 -1026
- package/templates/create/next/app/globals.css +0 -47
- package/templates/create/next/app/page.tsx.hbs +0 -40
- package/templates/init/prisma/index.ts.hbs +0 -44
- /package/templates/create/next/{app → src/app}/layout.tsx.hbs +0 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{{#if (eq schemaPreset "basic")}}
|
|
2
|
+
import prisma from "../utils/prisma";
|
|
3
|
+
|
|
4
|
+
export default defineEventHandler(async () => {
|
|
5
|
+
const users = await prisma.user
|
|
6
|
+
.findMany({
|
|
7
|
+
take: 10,
|
|
8
|
+
orderBy: {
|
|
9
|
+
createdAt: "desc",
|
|
10
|
+
},
|
|
11
|
+
})
|
|
12
|
+
.then((rows) =>
|
|
13
|
+
rows.map((user) => ({
|
|
14
|
+
...user,
|
|
15
|
+
createdAt: user.createdAt.toISOString(),
|
|
16
|
+
}))
|
|
17
|
+
)
|
|
18
|
+
.catch((error) => {
|
|
19
|
+
console.error("Failed to query users:", error);
|
|
20
|
+
return undefined;
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
if (!users) {
|
|
24
|
+
return {
|
|
25
|
+
error: "Could not query users yet.",
|
|
26
|
+
users: [],
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return { users };
|
|
31
|
+
});
|
|
32
|
+
{{else}}
|
|
33
|
+
export default defineEventHandler(async () => {
|
|
34
|
+
return { users: [] };
|
|
35
|
+
});
|
|
36
|
+
{{/if}}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import "dotenv/config";
|
|
2
|
+
import { PrismaClient } from "../generated/prisma/client";
|
|
3
|
+
{{#if (eq provider "postgresql")}}
|
|
4
|
+
import { PrismaPg } from "@prisma/adapter-pg";
|
|
5
|
+
{{/if}}
|
|
6
|
+
{{#if (eq provider "cockroachdb")}}
|
|
7
|
+
import { PrismaPg } from "@prisma/adapter-pg";
|
|
8
|
+
{{/if}}
|
|
9
|
+
{{#if (eq provider "mysql")}}
|
|
10
|
+
import { PrismaMariaDb } from "@prisma/adapter-mariadb";
|
|
11
|
+
{{/if}}
|
|
12
|
+
{{#if (eq provider "sqlite")}}
|
|
13
|
+
import { PrismaBetterSqlite3 } from "@prisma/adapter-better-sqlite3";
|
|
14
|
+
{{/if}}
|
|
15
|
+
{{#if (eq provider "sqlserver")}}
|
|
16
|
+
import { PrismaMssql } from "@prisma/adapter-mssql";
|
|
17
|
+
{{/if}}
|
|
18
|
+
|
|
19
|
+
{{#if (eq provider "sqlite")}}
|
|
20
|
+
const databaseUrl = process.env.DATABASE_URL ?? "file:./dev.db";
|
|
21
|
+
{{else}}
|
|
22
|
+
const databaseUrl = process.env.DATABASE_URL;
|
|
23
|
+
if (!databaseUrl) {
|
|
24
|
+
throw new Error("DATABASE_URL is required");
|
|
25
|
+
}
|
|
26
|
+
{{/if}}
|
|
27
|
+
|
|
28
|
+
{{#if (eq provider "postgresql")}}
|
|
29
|
+
const adapter = new PrismaPg({
|
|
30
|
+
connectionString: databaseUrl,
|
|
31
|
+
});
|
|
32
|
+
{{/if}}
|
|
33
|
+
{{#if (eq provider "cockroachdb")}}
|
|
34
|
+
const adapter = new PrismaPg({
|
|
35
|
+
connectionString: databaseUrl,
|
|
36
|
+
});
|
|
37
|
+
{{/if}}
|
|
38
|
+
{{#if (eq provider "mysql")}}
|
|
39
|
+
const adapter = new PrismaMariaDb(databaseUrl);
|
|
40
|
+
{{/if}}
|
|
41
|
+
{{#if (eq provider "sqlite")}}
|
|
42
|
+
const adapter = new PrismaBetterSqlite3({
|
|
43
|
+
url: databaseUrl,
|
|
44
|
+
});
|
|
45
|
+
{{/if}}
|
|
46
|
+
{{#if (eq provider "sqlserver")}}
|
|
47
|
+
const adapter = new PrismaMssql(databaseUrl);
|
|
48
|
+
{{/if}}
|
|
49
|
+
|
|
50
|
+
const prisma = new PrismaClient({ adapter });
|
|
51
|
+
|
|
52
|
+
export { prisma };
|
|
53
|
+
export default prisma;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# {{projectName}}
|
|
2
|
+
|
|
3
|
+
Generated by `create-prisma` with the SvelteKit template.
|
|
4
|
+
|
|
5
|
+
## Scripts
|
|
6
|
+
|
|
7
|
+
- `{{runScriptCommand packageManager "dev"}}` - start the SvelteKit dev server
|
|
8
|
+
- `{{runScriptCommand packageManager "build"}}` - build for production
|
|
9
|
+
- `{{runScriptCommand packageManager "preview"}}` - preview the production build
|
|
10
|
+
- `{{runScriptCommand packageManager "check"}}` - run SvelteKit sync and type checks
|
|
11
|
+
|
|
12
|
+
## Prisma
|
|
13
|
+
|
|
14
|
+
Prisma setup is scaffolded automatically in:
|
|
15
|
+
|
|
16
|
+
- `prisma/schema.prisma`
|
|
17
|
+
- `prisma/seed.ts`
|
|
18
|
+
- `src/lib/server/prisma.ts`
|
|
19
|
+
- `prisma.config.ts`
|
|
20
|
+
- `src/generated/prisma`
|
|
21
|
+
|
|
22
|
+
Database helper scripts are added to `package.json`:
|
|
23
|
+
|
|
24
|
+
- `db:generate`
|
|
25
|
+
- `db:push`
|
|
26
|
+
- `db:migrate`
|
|
27
|
+
- `db:seed`
|
|
28
|
+
{{#if (eq schemaPreset "basic")}}
|
|
29
|
+
|
|
30
|
+
The starter page loads users in `+page.server.ts`, renders them in `+page.svelte`, and `prisma/seed.ts` inserts starter users.
|
|
31
|
+
{{else}}
|
|
32
|
+
|
|
33
|
+
The starter page keeps the official SvelteKit minimal structure and points you to `prisma/schema.prisma` for your first model.
|
|
34
|
+
{{/if}}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "{{projectName}}",
|
|
3
|
+
"private": true,
|
|
4
|
+
"version": "0.0.1",
|
|
5
|
+
{{#if (packageManagerManifestValue packageManager)}}
|
|
6
|
+
"packageManager": "{{packageManagerManifestValue packageManager}}",
|
|
7
|
+
{{/if}}
|
|
8
|
+
"type": "module",
|
|
9
|
+
"scripts": {
|
|
10
|
+
"dev": "vite dev",
|
|
11
|
+
"build": "vite build",
|
|
12
|
+
"preview": "vite preview",
|
|
13
|
+
"prepare": "svelte-kit sync || echo ''",
|
|
14
|
+
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
|
15
|
+
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"
|
|
16
|
+
},
|
|
17
|
+
"devDependencies": {
|
|
18
|
+
"@sveltejs/adapter-auto": "^7.0.0",
|
|
19
|
+
"@sveltejs/kit": "^2.50.2",
|
|
20
|
+
"@sveltejs/vite-plugin-svelte": "^6.2.4",
|
|
21
|
+
"@types/node": "^24.3.0",
|
|
22
|
+
"svelte": "^5.51.0",
|
|
23
|
+
"svelte-check": "^4.4.2",
|
|
24
|
+
"tsx": "^4.7.1",
|
|
25
|
+
"typescript": "^5.9.3",
|
|
26
|
+
"vite": "^7.3.1"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
generator client {
|
|
2
|
+
provider = "prisma-client"
|
|
3
|
+
output = "../src/generated/prisma"
|
|
4
|
+
{{#if (eq packageManager "deno")}}
|
|
5
|
+
runtime = "deno"
|
|
6
|
+
{{/if}}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
datasource db {
|
|
10
|
+
provider = "{{provider}}"
|
|
11
|
+
}
|
|
12
|
+
{{#if (eq schemaPreset "basic")}}
|
|
13
|
+
|
|
14
|
+
model User {
|
|
15
|
+
id String @id @default(cuid())
|
|
16
|
+
email String @unique
|
|
17
|
+
name String?
|
|
18
|
+
createdAt DateTime @default(now())
|
|
19
|
+
updatedAt DateTime @updatedAt
|
|
20
|
+
}
|
|
21
|
+
{{/if}}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import "dotenv/config";
|
|
2
|
+
import { PrismaClient } from "../src/generated/prisma/client";
|
|
3
|
+
{{#if (eq provider "postgresql")}}
|
|
4
|
+
import { PrismaPg } from "@prisma/adapter-pg";
|
|
5
|
+
{{/if}}
|
|
6
|
+
{{#if (eq provider "cockroachdb")}}
|
|
7
|
+
import { PrismaPg } from "@prisma/adapter-pg";
|
|
8
|
+
{{/if}}
|
|
9
|
+
{{#if (eq provider "mysql")}}
|
|
10
|
+
import { PrismaMariaDb } from "@prisma/adapter-mariadb";
|
|
11
|
+
{{/if}}
|
|
12
|
+
{{#if (eq provider "sqlite")}}
|
|
13
|
+
import { PrismaBetterSqlite3 } from "@prisma/adapter-better-sqlite3";
|
|
14
|
+
{{/if}}
|
|
15
|
+
{{#if (eq provider "sqlserver")}}
|
|
16
|
+
import { PrismaMssql } from "@prisma/adapter-mssql";
|
|
17
|
+
{{/if}}
|
|
18
|
+
|
|
19
|
+
{{#if (eq provider "sqlite")}}
|
|
20
|
+
const databaseUrl = process.env.DATABASE_URL ?? "file:./dev.db";
|
|
21
|
+
{{else}}
|
|
22
|
+
const databaseUrl = process.env.DATABASE_URL;
|
|
23
|
+
if (!databaseUrl) {
|
|
24
|
+
throw new Error("DATABASE_URL is required");
|
|
25
|
+
}
|
|
26
|
+
{{/if}}
|
|
27
|
+
|
|
28
|
+
{{#if (eq provider "postgresql")}}
|
|
29
|
+
const adapter = new PrismaPg({
|
|
30
|
+
connectionString: databaseUrl,
|
|
31
|
+
});
|
|
32
|
+
{{/if}}
|
|
33
|
+
{{#if (eq provider "cockroachdb")}}
|
|
34
|
+
const adapter = new PrismaPg({
|
|
35
|
+
connectionString: databaseUrl,
|
|
36
|
+
});
|
|
37
|
+
{{/if}}
|
|
38
|
+
{{#if (eq provider "mysql")}}
|
|
39
|
+
const adapter = new PrismaMariaDb(databaseUrl);
|
|
40
|
+
{{/if}}
|
|
41
|
+
{{#if (eq provider "sqlite")}}
|
|
42
|
+
const adapter = new PrismaBetterSqlite3({
|
|
43
|
+
url: databaseUrl,
|
|
44
|
+
});
|
|
45
|
+
{{/if}}
|
|
46
|
+
{{#if (eq provider "sqlserver")}}
|
|
47
|
+
const adapter = new PrismaMssql(databaseUrl);
|
|
48
|
+
{{/if}}
|
|
49
|
+
|
|
50
|
+
const prisma = new PrismaClient({ adapter });
|
|
51
|
+
|
|
52
|
+
async function main() {
|
|
53
|
+
{{#if (eq schemaPreset "basic")}}
|
|
54
|
+
const users = await Promise.all([
|
|
55
|
+
prisma.user.upsert({
|
|
56
|
+
where: { email: "alice@prisma.io" },
|
|
57
|
+
update: { name: "Alice" },
|
|
58
|
+
create: {
|
|
59
|
+
email: "alice@prisma.io",
|
|
60
|
+
name: "Alice",
|
|
61
|
+
},
|
|
62
|
+
}),
|
|
63
|
+
prisma.user.upsert({
|
|
64
|
+
where: { email: "bob@prisma.io" },
|
|
65
|
+
update: { name: "Bob" },
|
|
66
|
+
create: {
|
|
67
|
+
email: "bob@prisma.io",
|
|
68
|
+
name: "Bob",
|
|
69
|
+
},
|
|
70
|
+
}),
|
|
71
|
+
]);
|
|
72
|
+
|
|
73
|
+
console.log(`Seeded ${users.length} users.`);
|
|
74
|
+
{{else}}
|
|
75
|
+
console.log("No seed data defined for the empty schema preset.");
|
|
76
|
+
{{/if}}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
main()
|
|
80
|
+
.then(async () => {
|
|
81
|
+
await prisma.$disconnect();
|
|
82
|
+
})
|
|
83
|
+
.catch(async (error) => {
|
|
84
|
+
console.error(error);
|
|
85
|
+
await prisma.$disconnect();
|
|
86
|
+
process.exit(1);
|
|
87
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import "dotenv/config";
|
|
2
|
+
import { defineConfig, env } from "prisma/config";
|
|
3
|
+
|
|
4
|
+
export default defineConfig({
|
|
5
|
+
schema: "prisma/schema.prisma",
|
|
6
|
+
migrations: {
|
|
7
|
+
path: "prisma/migrations",
|
|
8
|
+
seed: "tsx prisma/seed.ts",
|
|
9
|
+
},
|
|
10
|
+
datasource: {
|
|
11
|
+
url: env("DATABASE_URL"),
|
|
12
|
+
},
|
|
13
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// See https://svelte.dev/docs/kit/types#app.d.ts
|
|
2
|
+
// for information about these interfaces
|
|
3
|
+
declare global {
|
|
4
|
+
namespace App {
|
|
5
|
+
// interface Error {}
|
|
6
|
+
// interface Locals {}
|
|
7
|
+
// interface PageData {}
|
|
8
|
+
// interface PageState {}
|
|
9
|
+
// interface Platform {}
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
%sveltekit.head%
|
|
7
|
+
</head>
|
|
8
|
+
<body data-sveltekit-preload-data="hover">
|
|
9
|
+
<div style="display: contents">%sveltekit.body%</div>
|
|
10
|
+
</body>
|
|
11
|
+
</html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="107" height="128" viewBox="0 0 107 128"><title>svelte-logo</title><path d="M94.157 22.819c-10.4-14.885-30.94-19.297-45.792-9.835L22.282 29.608A29.92 29.92 0 0 0 8.764 49.65a31.5 31.5 0 0 0 3.108 20.231 30 30 0 0 0-4.477 11.183 31.9 31.9 0 0 0 5.448 24.116c10.402 14.887 30.942 19.297 45.791 9.835l26.083-16.624A29.92 29.92 0 0 0 98.235 78.35a31.53 31.53 0 0 0-3.105-20.232 30 30 0 0 0 4.474-11.182 31.88 31.88 0 0 0-5.447-24.116" style="fill:#ff3e00"/><path d="M45.817 106.582a20.72 20.72 0 0 1-22.237-8.243 19.17 19.17 0 0 1-3.277-14.503 18 18 0 0 1 .624-2.435l.49-1.498 1.337.981a33.6 33.6 0 0 0 10.203 5.098l.97.294-.09.968a5.85 5.85 0 0 0 1.052 3.878 6.24 6.24 0 0 0 6.695 2.485 5.8 5.8 0 0 0 1.603-.704L69.27 76.28a5.43 5.43 0 0 0 2.45-3.631 5.8 5.8 0 0 0-.987-4.371 6.24 6.24 0 0 0-6.698-2.487 5.7 5.7 0 0 0-1.6.704l-9.953 6.345a19 19 0 0 1-5.296 2.326 20.72 20.72 0 0 1-22.237-8.243 19.17 19.17 0 0 1-3.277-14.502 17.99 17.99 0 0 1 8.13-12.052l26.081-16.623a19 19 0 0 1 5.3-2.329 20.72 20.72 0 0 1 22.237 8.243 19.17 19.17 0 0 1 3.277 14.503 18 18 0 0 1-.624 2.435l-.49 1.498-1.337-.98a33.6 33.6 0 0 0-10.203-5.1l-.97-.294.09-.968a5.86 5.86 0 0 0-1.052-3.878 6.24 6.24 0 0 0-6.696-2.485 5.8 5.8 0 0 0-1.602.704L37.73 51.72a5.42 5.42 0 0 0-2.449 3.63 5.79 5.79 0 0 0 .986 4.372 6.24 6.24 0 0 0 6.698 2.486 5.8 5.8 0 0 0 1.602-.704l9.952-6.342a19 19 0 0 1 5.295-2.328 20.72 20.72 0 0 1 22.237 8.242 19.17 19.17 0 0 1 3.277 14.503 18 18 0 0 1-8.13 12.053l-26.081 16.622a19 19 0 0 1-5.3 2.328" style="fill:#fff"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
// place files you want to import through the `$lib` alias in this folder.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { env } from "$env/dynamic/private";
|
|
2
|
+
import { PrismaClient } from "../../generated/prisma/client";
|
|
3
|
+
{{#if (eq provider "postgresql")}}
|
|
4
|
+
import { PrismaPg } from "@prisma/adapter-pg";
|
|
5
|
+
{{/if}}
|
|
6
|
+
{{#if (eq provider "cockroachdb")}}
|
|
7
|
+
import { PrismaPg } from "@prisma/adapter-pg";
|
|
8
|
+
{{/if}}
|
|
9
|
+
{{#if (eq provider "mysql")}}
|
|
10
|
+
import { PrismaMariaDb } from "@prisma/adapter-mariadb";
|
|
11
|
+
{{/if}}
|
|
12
|
+
{{#if (eq provider "sqlite")}}
|
|
13
|
+
import { PrismaBetterSqlite3 } from "@prisma/adapter-better-sqlite3";
|
|
14
|
+
{{/if}}
|
|
15
|
+
{{#if (eq provider "sqlserver")}}
|
|
16
|
+
import { PrismaMssql } from "@prisma/adapter-mssql";
|
|
17
|
+
{{/if}}
|
|
18
|
+
|
|
19
|
+
{{#if (eq provider "sqlite")}}
|
|
20
|
+
const databaseUrl = env.DATABASE_URL ?? "file:./dev.db";
|
|
21
|
+
{{else}}
|
|
22
|
+
const databaseUrl = env.DATABASE_URL;
|
|
23
|
+
if (!databaseUrl) {
|
|
24
|
+
throw new Error("DATABASE_URL is required");
|
|
25
|
+
}
|
|
26
|
+
{{/if}}
|
|
27
|
+
|
|
28
|
+
{{#if (eq provider "postgresql")}}
|
|
29
|
+
const adapter = new PrismaPg({
|
|
30
|
+
connectionString: databaseUrl,
|
|
31
|
+
});
|
|
32
|
+
{{/if}}
|
|
33
|
+
{{#if (eq provider "cockroachdb")}}
|
|
34
|
+
const adapter = new PrismaPg({
|
|
35
|
+
connectionString: databaseUrl,
|
|
36
|
+
});
|
|
37
|
+
{{/if}}
|
|
38
|
+
{{#if (eq provider "mysql")}}
|
|
39
|
+
const adapter = new PrismaMariaDb(databaseUrl);
|
|
40
|
+
{{/if}}
|
|
41
|
+
{{#if (eq provider "sqlite")}}
|
|
42
|
+
const adapter = new PrismaBetterSqlite3({
|
|
43
|
+
url: databaseUrl,
|
|
44
|
+
});
|
|
45
|
+
{{/if}}
|
|
46
|
+
{{#if (eq provider "sqlserver")}}
|
|
47
|
+
const adapter = new PrismaMssql(databaseUrl);
|
|
48
|
+
{{/if}}
|
|
49
|
+
|
|
50
|
+
const prisma = new PrismaClient({ adapter });
|
|
51
|
+
|
|
52
|
+
export { prisma };
|
|
53
|
+
export default prisma;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { PageServerLoad } from "./$types";
|
|
2
|
+
{{#if (eq schemaPreset "basic")}}
|
|
3
|
+
import prisma from "$lib/server/prisma";
|
|
4
|
+
|
|
5
|
+
export const load: PageServerLoad = async () => {
|
|
6
|
+
const users = await prisma.user
|
|
7
|
+
.findMany({
|
|
8
|
+
take: 10,
|
|
9
|
+
orderBy: {
|
|
10
|
+
createdAt: "desc",
|
|
11
|
+
},
|
|
12
|
+
})
|
|
13
|
+
.then((rows) =>
|
|
14
|
+
rows.map((user) => ({
|
|
15
|
+
...user,
|
|
16
|
+
createdAt: user.createdAt.toISOString(),
|
|
17
|
+
}))
|
|
18
|
+
)
|
|
19
|
+
.catch(() => undefined);
|
|
20
|
+
|
|
21
|
+
return { users };
|
|
22
|
+
};
|
|
23
|
+
{{else}}
|
|
24
|
+
|
|
25
|
+
export const load: PageServerLoad = async () => {
|
|
26
|
+
return {};
|
|
27
|
+
};
|
|
28
|
+
{{/if}}
|