0.0.11 • Published 3 months ago

sqlfx-kysely v0.0.11

Weekly downloads
-
License
MIT
Repository
-
Last release
3 months ago
import { Config, Effect } from "effect";
import { Database, createAdaptor } from "sqlfx-kysely/dist/bun";

interface Tables {
	users: { id: number };
}

const DBAdaptor = createAdaptor<Tables>();

const db: Effect.Effect<Database<Tables>, never, void> = Effect.gen(function* (_) {
	const { query } = yield* _(DBAdaptor.tag);
	query((db) => db.selectFrom("users"));
});


const layer = DBAdaptor.makeLayer(
	Config.succeed({
		filename: ":memory:"
	})
);

db.pipe(Effect.provide(layer));

Defining a table

import { Schema } from "@effect/schema";
import { GeneratedAlways, Insertable, Selectable, Updateable } from "kysely";

// User
const Base = Schema.struct({
	firstName: Schema.string,
	lastName: Schema.string,
});

export interface Table extends Schema.Schema.To<typeof Base> {
	id: GeneratedAlways<number>;
}

export type SelectSchema = Selectable<Table>;
export const SelectSchema: Schema.Schema<SelectSchema> = Base.pipe(
	Schema.extend(
		Schema.struct({
			id: Schema.number
		})
	)
);

export type InsertSchema = Insertable<Table>;
export const InsertSchema: Schema.Schema<InsertSchema> = Base;

export type UpdateSchema = Updateable<Table>;
export const UpdateSchema: Schema.Schema<UpdateSchema> = Base.pipe(
	Schema.partial
);
0.0.10

3 months ago

0.0.11

3 months ago

0.0.9

5 months ago

0.0.8

5 months ago

0.0.7

6 months ago

0.0.6

6 months ago

0.0.5

6 months ago

0.0.4

6 months ago

0.0.3

6 months ago

0.0.2

6 months ago

0.0.1

6 months ago