Skip to content

Instantly share code, notes, and snippets.

View mfbx9da4's full-sized avatar

David Alberto Adler mfbx9da4

View GitHub Profile
@mfbx9da4
mfbx9da4 / App.tsx
Last active March 7, 2022 10:12
Github issue realm-js flatlist + listener poll for transaction
import React, { useEffect, useLayoutEffect, useState } from 'react'
import { FlatList, SafeAreaView } from 'react-native'
import RNFS from 'react-native-fs'
import Realm from 'realm'
export function App() {
const r = useWaitForRealm()
const [initialized, setInitialized] = useState(false)
useEffect(() => {
@mfbx9da4
mfbx9da4 / App.tsx
Last active March 6, 2022 19:44
Github issue realm-js flatlist + listener
import React, { useEffect, useLayoutEffect, useState } from 'react'
import { FlatList, SafeAreaView } from 'react-native'
import RNFS from 'react-native-fs'
import Realm from 'realm'
export function App() {
const r = useWaitForRealm()
const [initialized, setInitialized] = useState(false)
/**
* The transformer signature is based on https://github.com/cevek/ttypescript#program
* Need to use https://github.com/microsoft/TypeScript/blob/bae0f508184280c59d2865a35efc63be362eacfa/src/compiler/factory/nodeFactory.ts
* The goal is to conver `a!.m()` to `if (!a) { throw new Error('Attempted to use nullish value "a"'} else { a.m() }`
* https://astexplorer.net/#/gist/9ec2af3e8c15fd2cde848941e14f566b/d9ddca954379374f98a4097d9bde4c346dac8567
*/
export default function (program) {
const checker = program.getTypeChecker()
return (context) => {
return (sourceFile) => {
@mfbx9da4
mfbx9da4 / BroadcastMethods.ts
Last active January 2, 2022 14:48
Remote procedure calls (RPCs) using BroadcastChannel in deno
// ---- START IMPORTS ----
export type AssertionExtra = (Record<string, unknown> & { name?: ErrorCode }) | ErrorCode
export function assert(predicate: any, message: string, extra: AssertionExtra = {}): asserts predicate {
if (!predicate) {
extra = typeof extra === 'string' ? { name: extra } : extra
if (!('name' in extra)) {
extra.name = ErrorCode.AssertionError
}
import { serve } from 'https://deno.land/std/http/server.ts'
// import { assert, ErrorCode } from './assert.ts'
export enum ErrorCode {
RaceNotFound = 'RaceNotFound',
RaceMemberNotFound = 'RaceMemberNotFound',
RaceAlreadyExists = 'RaceAlreadyExists',
RaceMemberAlreadyExists = 'RaceMemberAlreadyExists',
AssertionError = 'AssertionError',
}
const wrap = (obj, method) => {
const oldMethod = obj[method]
async function innerMethod(...args) {
const start = Date.now()
try {
const ret = await oldMethod.call(obj, ...args)
console.log(method, 'took', Date.now() - start, args[0])
return ret
} catch (error) {
console.log(method, 'took', Date.now() - start)
import AWS from 'aws-sdk'
import { uuid } from 'short-uuid'
import { yesno } from 'yesno-http'
yesno.spy()
const documentClient = new AWS.DynamoDB.DocumentClient({
apiVersion: 'latest',
})
function area(image) {
return image.width * image.height;
}
/** https://en.wikipedia.org/wiki/Halton_sequence */
function halton(index, base) {
let fraction = 1;
let result = 0;
while (index > 0) {
fraction /= base;
type Fn = (signal: AbortController['signal']) => Promise<unknown>
/** or woman or non-binary for that matter */
export const createOneManQueue = () => {
let task: Promise<unknown> = Promise.resolve()
let abortController = new AbortController()
const enqueue = (fn: Fn) => {
abortController.abort()
abortController = new AbortController()
task.finally(() => {
@mfbx9da4
mfbx9da4 / AbortSignal.ts
Last active August 9, 2021 11:27
Makes abort signals awaitable
export class AbortSignal {
public pending = false
public completed = false
public onAbort: () => void | undefined
private resolve: () => void | undefined
async abort() {
if (this.completed) return
const promise = new Promise<void>((r) => {
this.resolve = r