- Clear feature ownership
- Module usage predictibility (refactoring, maintainence, you know what's shared, what's not, prevents accidental regressions, avoids huge directories of not-actually-reusable modules, etc)

- GitHub Staff
- https://marais.io
- @slightlycode
- @htm.io
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export const map = <T, O>(map: (input: T) => Promise<O> | O) => | |
async function* mapGenerator(asyncIterable: AsyncIterableIterator<T>) { | |
for await (const value of asyncIterable) { | |
yield map(value); | |
} | |
}; | |
export const filter = <T, U extends T>(filter: (input: T) => input is U) => | |
async function* filterGenerator(asyncIterable: AsyncIterableIterator<T>) { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import type { ElementType } from 'react'; | |
import * as React from 'react'; | |
import { useMemo } from 'react'; | |
import { EntryPointContainer, loadEntryPoint } from 'react-relay/hooks'; | |
import type { EntryPoint } from 'react-relay/lib/relay-experimental/EntryPointTypes'; | |
import { matchPath, useResolvedPath } from 'react-router'; | |
import { resolvePath, useLocation } from 'react-router-dom'; | |
import repositoryEntrypoint from './Repository.entrypoint'; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const getDeepByPath = <T extends unknown>(obj: T, path: readonly string[]): any => { | |
let i = 0; | |
let temp = obj; | |
for (; i < path.length; ++i) { | |
temp = temp[path[i]]; | |
} | |
return temp; | |
}; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { Environment, Network, RecordSource, Store } from 'relay-runtime'; | |
import RelayPublishQueue from 'relay-runtime/lib/store/RelayPublishQueue.js'; | |
import RelayDefaultHandlerProvider from 'relay-runtime/lib/handlers/RelayDefaultHandlerProvider.js'; | |
const network = Network.create(fetchQuery); | |
const createEnvironment = (records = {}) => { | |
const source = new RecordSource(records); | |
const store = new Store(source); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* eslint-disable react-hooks/rules-of-hooks */ | |
import { useCallback, useLayoutEffect, useMemo, useState } from 'react'; | |
import { unstable_batchedUpdates } from 'react-dom'; | |
import { useOverdriveContext } from '../components/OverdriveProvider'; | |
import { useTheme } from '../components/ThemeProvider'; | |
export const useMedia = ( | |
queries: ReadonlyArray<keyof Theme['breakpoints']>, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const useLocalQuery = <TQuery extends {response: any; variables: any}>( | |
environment: Environment, | |
query: any, | |
inVariables: TQuery['variables'] = {} | |
): TQuery['response'] | null => { | |
const variables = useDeepEqual(inVariables) | |
const [dataRef, setData] = useRefState<SelectorData | null>(null) | |
const disposablesRef = useRef<Disposable[]>([]) | |
useEffect(() => { | |
const {getRequest, createOperationDescriptor} = environment.unstable_internal |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import fetch from 'isomorphic-unfetch'; | |
import React, { createContext, useContext, useMemo } from 'react'; | |
import { ReactRelayContext } from 'react-relay'; | |
import { | |
Environment, | |
FetchFunction, | |
Network, | |
RecordSource, | |
RequestParameters, | |
Store, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { MutableRefObject, useMemo } from 'react'; | |
export const useForkedRef = <T = Element>(...refs: Array<MutableRefObject<T>>): (node: T) => void => | |
useMemo(() => { | |
if (refs.every(ref => ref == null)) { | |
return null; | |
} | |
return node => { | |
refs.forEach(ref => { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* tslint:disable */ | |
import fs from 'fs'; | |
import path from 'path'; | |
import ts from 'typescript'; | |
const aliasWhitelist = ['ResponsiveProp']; | |
const tsconfigPath = path.join(__dirname, '../tsconfig.json'); | |
const componentsFile = path.join(__dirname, '../lib/components/index.ts'); |