Skip to content

Instantly share code, notes, and snippets.

@arekmaz
arekmaz / drizzle-effect-schema.ts
Last active June 27, 2024 22:13
drizzle-effect-schema
import * as S from "@effect/schema/Schema";
import { Assume, Column, Equal, Table, getTableColumns, is } from "drizzle-orm";
import {
MySqlChar,
MySqlVarBinary,
MySqlVarChar,
} from "drizzle-orm/mysql-core";
import { PgArray, PgChar, PgUUID, PgVarchar } from "drizzle-orm/pg-core";
import { SQLiteText } from "drizzle-orm/sqlite-core";
import { Simplify } from "effect/Types";
@arekmaz
arekmaz / prisma-effect.ts
Created October 27, 2023 14:59
prisma + effect-ts integration - client which returns effects instead of promises
import { db } from "../services/db.server";
import { Data, Effect } from "effect";
import type { PrismaClient } from "@prisma/client";
import type {
PrismaClientKnownRequestError,
PrismaClientUnknownRequestError,
PrismaClientRustPanicError,
PrismaClientInitializationError,
PrismaClientValidationError,
} from "@prisma/client/runtime/library";
@arekmaz
arekmaz / index.js
Created May 17, 2020 09:37
usePrevious vs usePreviousValue hooks
// This hook returns what the value was previously
// even across multiple renders
// (correct for the
// "<button>Value: {value}, previous: {previousValue}</button>"
// use case.
function usePreviousValue(value, defaultValue) {
const [prev, setPrev] = useState(defaultValue);
const next = useRef();
useEffect(() => {
const old = next.current;
const { sqrt, floor } = Math
type Sequence<T> = T[]
/*
Get sequence of items from the first sequence in the
initial order excluding items which occur in the second
sequence prime number of times.
@arekmaz
arekmaz / machine.js
Last active March 8, 2020 11:15
Generated by XState Viz: https://xstate.js.org/viz
// Available variables:
// - Machine
// - interpret
// - assign
// - send
// - sendParent
// - spawn
// - raise
// - actions