It's 2024. You should use tsup instead of this.
🔥 Blazing fast builds
😇 CommonJS bundle
🌲 .mjs bundle
✨ .d.ts bundle + type-checking
| // One of my new favorite React Hook patternms is to create handler | |
| // functions for a custom hook using `React.useMemo` instead of | |
| // `React.useCallback`, like so: | |
| function useBool(initialState = false) { | |
| const [state, setState] = React.useState(initialState) | |
| // Instead of individual React.useCallbacks gathered into an object | |
| // Let's memoize the whole object. Then, we can destructure the | |
| // methods we need in our consuming component. |
| export default function createCrudHooks({ | |
| baseKey, | |
| indexFn, | |
| singleFn, | |
| createFn, | |
| updateFn, | |
| deleteFn, | |
| }) { | |
| const useIndex = (config) => useQuery([baseKey], indexFn, config) | |
| const useSingle = (id, config) => |
| export const CACHE_STALE_AT_HEADER = 'x-edge-cache-stale-at'; | |
| export const CACHE_STATUS_HEADER = 'x-edge-cache-status'; | |
| export const CACHE_CONTROL_HEADER = 'Cache-Control'; | |
| export const CLIENT_CACHE_CONTROL_HEADER = 'x-client-cache-control'; | |
| export const ORIGIN_CACHE_CONTROL_HEADER = 'x-edge-origin-cache-control'; | |
| enum CacheStatus { | |
| HIT = 'HIT', | |
| MISS = 'MISS', | |
| REVALIDATING = 'REVALIDATING', |
It's 2024. You should use tsup instead of this.
🔥 Blazing fast builds
😇 CommonJS bundle
🌲 .mjs bundle
✨ .d.ts bundle + type-checking
| pkg | download/week | issues | stars | comment |
|---|---|---|---|---|
| react-bootstrap ↗ | 235k | 62 | 17k | bootstrap 3 |
| material-ui ↗ | 160k | 146 | 34k | full of bugs, speaking from experience |
| antd ↗ | 64k | 174 | 26k | |
| semantic-ui-react ↗ | 51k | 53 | 6.4K | |
| reactstrap ↗ | 46k | 58 | 4k | bootstrap 4 |
| @blueprintjs/core ↗ | 27k | 240 | 9k | splitted into multiple packages |
| react-native-web ↗ | 11k | 27 | 9kk | used at twitter.com and on react-native docs (not just mobile) |
| react-toolbox |
| #!/bin/bash | |
| # Launch inside a create-react-app project after building the production build. | |
| # Require `jq`. | |
| diff \ | |
| <(find src -type f \( -name '*.js' -o -name '*.jsx' -o -name '*.css' \) | sort) \ | |
| <(cat build/**/*.map | jq --raw-output '.sources | join("\n")' \ | |
| | grep -v '\.\./' | grep -E '\.(js|jsx|css)$' \ | |
| | sed "s#^#src/#" | sort | uniq) \ |
| import produce from 'immer'; | |
| import {createStore} from 'redux'; | |
| const handleActions = (actionsMap, defaultState) => ( | |
| state = defaultState, | |
| {type, payload} | |
| ) => | |
| produce(state, draft => { | |
| const action = actionsMap[type]; | |
| action && action(draft, payload); |
| <?xml version="1.0" encoding="UTF-8"?> | |
| <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" | |
| "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |
| <plist version="1.0"> | |
| <array> | |
| <dict> | |
| <key>ApplicationIdentifier</key> | |
| <string>com.microsoft.VSCode</string> | |
| <key>ApplicationName</key> | |
| <string>Visual Studio Code</string> |
| import pathToRegexp from 'path-to-regexp'; | |
| class RouteConst { | |
| constructor(path, parent = null) { | |
| this.path = parent ? `${parent.path}${path}` : path; | |
| this.toURL = pathToRegexp.compile(this.path); | |
| } | |
| } |