From 73a9f5ac874c1c4b58515fa2904417f7a384d9a0 Mon Sep 17 00:00:00 2001 From: dnsjm Date: Mon, 17 Feb 2025 16:14:05 +0800 Subject: [PATCH] supabase connection --- examples/with-supabase/package.json | 21 +++++ examples/with-supabase/src/index.ts | 47 ++++++++++ examples/with-supabase/tsconfig.json | 15 +++ gitignore.txt | 132 --------------------------- 4 files changed, 83 insertions(+), 132 deletions(-) create mode 100644 examples/with-supabase/package.json create mode 100644 examples/with-supabase/src/index.ts create mode 100644 examples/with-supabase/tsconfig.json delete mode 100644 gitignore.txt diff --git a/examples/with-supabase/package.json b/examples/with-supabase/package.json new file mode 100644 index 0000000..cee6c86 --- /dev/null +++ b/examples/with-supabase/package.json @@ -0,0 +1,21 @@ +{ + "name": "with-supabase", + "version": "1.0.0", + "description": "A simple example for using inquire with Supabase.", + "private": true, + "scripts": { + "build": "tsc", + "start": "ts-node ./src/index.ts" + }, + "dependencies": { + "@stackpress/inquire-pg": "0.3.27", + "@supabase/supabase-js": "^2.42.0", + "pg": "^8.13.1", + "dotenv": "^16.4.5" + }, + "devDependencies": { + "@types/node": "22.9.3", + "ts-node": "10.9.2", + "typescript": "5.7.2" + } + } \ No newline at end of file diff --git a/examples/with-supabase/src/index.ts b/examples/with-supabase/src/index.ts new file mode 100644 index 0000000..9ce34f9 --- /dev/null +++ b/examples/with-supabase/src/index.ts @@ -0,0 +1,47 @@ +import { Pool } from 'pg'; +import connect from '@stackpress/inquire-pg'; +import * as dotenv from 'dotenv'; +dotenv.config(); + +async function main() { + const supabaseUrl = process.env.SUPABASE_URL; + const supabaseKey = process.env.SUPABASE_KEY; + + if (!supabaseUrl || !supabaseKey) { + throw new Error('Supabase URL and Key must be defined in .env'); + } + + const connectionString = `${supabaseUrl}`; + +const pool = new Pool({ + connectionString: supabaseUrl, + ssl: { + rejectUnauthorized: false, + }, + application_name: "Inquire", +}); + + const connection = await pool.connect(); + const engine = connect(connection); + + const create = engine.create('profile') + .addField('id', { type: 'VARCHAR', length: 255 }) + .addField('name', { type: 'VARCHAR', length: 255 }) + .addPrimaryKey('id'); + console.log(create.query()); + console.log(await create); + + const insert = engine + .insert('profile') + .values({ id: '1', name: 'John Doe' }); + console.log(insert.query()); + console.log(JSON.stringify(await insert, null, 2)); + + const select = engine.select('*').from('profile'); + console.log(select.query()); + console.log(JSON.stringify(await select, null, 2)); + + connection.release(); +} + +main().catch(console.error); \ No newline at end of file diff --git a/examples/with-supabase/tsconfig.json b/examples/with-supabase/tsconfig.json new file mode 100644 index 0000000..a5efb08 --- /dev/null +++ b/examples/with-supabase/tsconfig.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "target": "es2016", + "module": "commonjs", + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "skipLibCheck": true, + "outDir": "dist", + "sourceMap": true + }, + "include": [ + "src/**/*" + ] + } \ No newline at end of file diff --git a/gitignore.txt b/gitignore.txt deleted file mode 100644 index a79b012..0000000 --- a/gitignore.txt +++ /dev/null @@ -1,132 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* -.pnpm-debug.log* - -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# Snowpack dependency directory (https://snowpack.dev/) -web_modules/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Optional stylelint cache -.stylelintcache - -# Microbundle cache -.rpt2_cache/ -.rts2_cache_cjs/ -.rts2_cache_es/ -.rts2_cache_umd/ - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variable files -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - -# parcel-bundler cache (https://parceljs.org/) -.cache -.parcel-cache - -# Next.js build output -.next -out - -# Nuxt.js build / generate output -.nuxt -dist - -# Gatsby files -.cache/ -# Comment in the public line in if your project uses Gatsby and not Next.js -# https://nextjs.org/blog/next-9-1#public-directory-support -# public - -# vuepress build output -.vuepress/dist - -# vuepress v2.x temp and cache directory -.temp -.cache - -# Docusaurus cache and generated files -.docusaurus - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - -# TernJS port file -.tern-port - -# Stores VSCode versions used for testing VSCode extensions -.vscode-test - -# yarn v2 -.yarn/cache -.yarn/unplugged -.yarn/build-state.yml -.yarn/install-state.gz -.pnp.* -examples/*/build -packages/*/tests/database \ No newline at end of file