Skip to content

Instantly share code, notes, and snippets.

View Schniz's full-sized avatar

Gal Schlezinger Schniz

View GitHub Profile
@Schniz
Schniz / force-sync-jazz-state.ts
Created November 17, 2024 08:29
force sync jazz state
async function forceSync(account: Account) {
const { syncManager } = account._raw.core.node;
const peer = Object.values(syncManager.peers)[0];
if (!peer) {
throw new Error("no peer");
}
const values = Object.values(account._raw.core.node.coValues).flatMap((x) => {
if ("coValue" in x.state) {
@Schniz
Schniz / trait-call-expression-proposal.md
Last active August 19, 2024 14:07
Trait Call Expression Proposal

Note

This document was mostly generated by Claude 3.5 based on my wishes

Here's a draft TC39 proposal for "Trait Call Expression" based on your requirements:

Trait Call Expression

Stage 0

Authors

@Schniz
Schniz / decrypt_body.rs
Created December 16, 2023 07:33
decrypting a response body
use aes_gcm::{
aead::{generic_array::GenericArray, Aead},
Aes256Gcm,
};
async fn decrypt_body(
mut response: reqwest::Response,
cipher: &Aes256Gcm,
) -> anyhow::Result<reqwest::Response> {
let mut headers = std::mem::take(response.headers_mut());
@Schniz
Schniz / async-component.tsx
Created January 24, 2023 09:16
Generator component for Next.js 13
export function asyncComponent<T>(
fn: (props: T) => Promise<JSX.Element>
): React.FC<T> {
return fn as any;
}
@Schniz
Schniz / create.sql
Created July 5, 2022 19:11
Adding a new schema that's queryable in Supabase
create schema if not exists my_new_schema;
alter default privileges for user supabase_admin in schema my_new_schema grant all
on sequences to postgres, anon, authenticated, service_role;
alter default privileges for user supabase_admin in schema my_new_schema grant all
on tables to postgres, anon, authenticated, service_role;
alter default privileges for user supabase_admin in schema my_new_schema grant all
on functions to postgres, anon, authenticated, service_role;
alter default privileges for user postgres in schema my_new_schema grant all
on sequences to postgres, anon, authenticated, service_role;
alter default privileges for user postgres in schema my_new_schema grant all
// @ts-check
require('path');
const esbuild = require('esbuild');
async function main() {
const {plugin, set} = createDependencyPlugin();
await esbuild.build({
bundle: true,
type Thenable<T> = {
then<R, L = never>(onFulfill: (t: T) => R, onError?: (err: any) => L): Thenable<R | L>,
catch<L>(onError: (err: any) => L): Thenable<T | L>,
}
type Result<T> = { type: "value", value: T } | { type: "error", error: any };
/** Wrapper around simple functions that allow you to `.catch` and `.then` for synchronous functions */
function thenable<T>(createT: () => T): Thenable<T> {
let resultT: Result<T>;
type Validator<Input, Error> = (input: Input) => Error[];
type ExtractValidatorError<V extends Validator<any, any>> = V extends Validator<any, infer A> ? A : never;
function error<Error>(error: Error): Error[] {
return [error];
}
function ok(): any[] {
return [];
}
@Schniz
Schniz / censorCarbonSvg.js
Created April 21, 2021 14:32
Censor carbon.now.sh exported SVG
function textNodesUnder(el){
var n, a=[], walk=document.createTreeWalker(el,NodeFilter.SHOW_TEXT,null,false);
while(n=walk.nextNode()) a.push(n);
return a;
}
for (let node of textNodesUnder(document.documentElement)) {
node.nodeValue = node.nodeValue.replace(/[^\s]/g, '█');
}
@Schniz
Schniz / README.md
Last active January 27, 2021 21:27
🎒 Asset preloading bag in Rails

Usage

Add the following line to your ApplicationController:

around_action AssetPreloadingBag::Filter

And when you want to prerender something, you can simply call: