Module

x/kysely_postgrs_js_dialect/mod.ts>kysely.WithSchemaPlugin

Kysely dialect for PostgreSQL using the Postgres.js client.
class kysely.WithSchemaPlugin
implements KyselyPlugin
import { kysely } from "https://dotland.deno.dev/x/kysely_postgrs_js_dialect@v0.27.3/mod.ts";
const { WithSchemaPlugin } = kysely;

Constructors

new
WithSchemaPlugin(schema: string)

Methods

This is called for each query before it is executed. You can modify the query by transforming its OperationNode tree provided in {@link 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 {@link 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.

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