Skip to main content
Module

x/kysely_deno_postgres_dialect/mod.ts>kysely.KyselyPlugin

Kysely dialect for PostgreSQL using the deno-postgres client.
Latest
interface kysely.KyselyPlugin
Re-export
import { type kysely } from "https://deno.land/x/kysely_deno_postgres_dialect@v0.27.1/mod.ts";
const { KyselyPlugin } = kysely;

Methods

This is called for each query before it is executed. You can modify the query by transforming its OperationNode tree provided in PluginTransformQueryArgs.node | args.node and returning the transformed tree. You'd usually want to use an OperationNodeTransformer for this.

If you need to pass some query-related data between this method and transformResult you can use a WeakMap with PluginTransformQueryArgs.queryId | args.queryId as the key:

const plugin = {
  data: new WeakMap<QueryId, SomeData>(),

  transformQuery(args: PluginTransformQueryArgs): RootOperationNode {
    this.data.set(args.queryId, something)
    return args.node
  },

  transformResult(args: PluginTransformResultArgs): QueryResult<UnknownRow> {
    const data = this.data.get(args.queryId)
    return args.result
  }
}

You should use a WeakMap instead of a Map or some other strong references because transformQuery is not always matched by a call to transformResult which would leave orphaned items in the map and cause a memory leak.

transformResult(args: PluginTransformResultArgs): Promise<QueryResult<UnknownRow>>

This method is called for each query after it has been executed. The result of the query can be accessed through PluginTransformResultArgs.result | args.result. You can modify the result and return the modifier result.