The package allows the use of Deno Postgres in Deno Deploy on dart_edge by creating interop bindings for the js library since other drivers rely on dart:io and don't work there.
The main scenario is Supabase Edge Functions, but it should also work for other cases with dart2js.
-
Add dependency in your pubspec.yaml:
dependencies: deno_postgres_interop: <INSERT LATEST VERSION>
or run
dart pub add deno_postgres_interop
-
Add the config file (default name is
add_imports.yaml
). This file is used to lookup files where the classes are defined.file_url_prefix: 'https://deno.land/x/postgres@v0.17.0/' classes_map: 'query/query.ts': - QueryObjectResult 'mod.ts': - QueryClient - Client - Transaction
-
Import the package:
import 'package:deno_postgres_interop/deno_postgres_interop.dart';
-
Compile the code that uses this package with:
dart run edge build supabase_functions
-
Add imports to generated file by calling the script:
dart run deno_postgres_interop:add_imports \ --filename=example/functions/dart_edge/main.dart.js [\ --configpath=add_imports.yaml] #this is the default value
Note: your filename may differ from the example
-
You can use the function now.
Note that because of the bug in dart_edge, SDK versions >= 3.1.0 are not actually supported.