initial commit
This commit is contained in:
commit
2da08334c3
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
node_modules
|
5
README.md
Normal file
5
README.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
# raw-pg-cloudflare
|
||||
|
||||
An example project contrasting how deploys to cloudflare work when using certain node modules (pg), that are impossible to use when using sveltekit.
|
||||
|
||||
See [svelte-kit-pg-cloudflare](https://terrible.software/terribleplan/svelte-kit-pg-cloudflare) for the failing sveltekit deployment.
|
1458
package-lock.json
generated
Normal file
1458
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
15
package.json
Normal file
15
package.json
Normal file
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"name": "raw-knex-cloudflare",
|
||||
"version": "0.0.0",
|
||||
"devDependencies": {
|
||||
"kysely": "^0.27.2",
|
||||
"pg": "^8.11.3",
|
||||
"pg-cursor": "^2.10.3",
|
||||
"wrangler": "3.30.1"
|
||||
},
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"start": "wrangler dev",
|
||||
"deploy": "wrangler deploy"
|
||||
}
|
||||
}
|
29
src/index.js
Normal file
29
src/index.js
Normal file
|
@ -0,0 +1,29 @@
|
|||
import { Kysely, PostgresDialect } from 'kysely';
|
||||
import { Pool } from 'pg';
|
||||
import Cursor from 'pg-cursor';
|
||||
|
||||
export default {
|
||||
async fetch(request, { DB }, ctx) {
|
||||
console.log(JSON.stringify(DB));
|
||||
const db = new Kysely({
|
||||
dialect: new PostgresDialect({ pool: new Pool(DB) }),
|
||||
cursor: Cursor,
|
||||
});
|
||||
|
||||
const users = await db.selectFrom('users').select(['id']).execute();
|
||||
|
||||
return new Response(`<html>
|
||||
<head>
|
||||
<title>Example</title>
|
||||
</head>
|
||||
<body>
|
||||
<pre>${JSON.stringify(users, null, 2)}</pre>
|
||||
</body>
|
||||
</html>
|
||||
`, {
|
||||
headers: {
|
||||
'Content-Type': 'text/html'
|
||||
}
|
||||
});
|
||||
},
|
||||
};
|
14
wrangler.toml
Normal file
14
wrangler.toml
Normal file
|
@ -0,0 +1,14 @@
|
|||
name = "raw-knex-cloudflare"
|
||||
main = "src/index.js"
|
||||
compatibility_date = "2024-03-02"
|
||||
# compatibility_flags = [ "nodejs_compat" ]
|
||||
# ^ this fails with errors like
|
||||
# The package "fs" wasn't found on the file system but is built into node.
|
||||
# Add "node_compat = true" to your wrangler.toml file and make sure to prefix the module name with "node:" to enable Node.js compatibility.
|
||||
|
||||
node_compat = true
|
||||
# ^ it works with the legacy node_compat flag
|
||||
|
||||
[[hyperdrive]]
|
||||
binding = "DB"
|
||||
id = "<redacted>"
|
Loading…
Reference in a new issue