Skip to content

Instantly share code, notes, and snippets.

View saitonakamura's full-sized avatar
😺

Michael サイトー 中村 Bashurov saitonakamura

😺
View GitHub Profile
@saitonakamura
saitonakamura / next.config.js
Last active April 16, 2018 07:20
Next.js Awesome Typescript integration: how to add caching
module.exports = {
webpack(config, options) {
const { dir, defaultLoaders } = options
config.pageExtensions.push(".ts", ".tsx");
config.resolve.extensions.push(".ts", ".tsx");
// cacheDirectory option is unavailable in case of useBabel option
const fixBabelConfig = omit(defaultLoaders.babel.options, [
@saitonakamura
saitonakamura / next.config.js
Last active April 16, 2018 07:20
Next.js Awesome Typescript integration: how to run typecheck in separate process
const CheckerPlugin = require("awesome-typescript-loader").CheckerPlugin;
module.exports = {
webpack(config, options) {
const { dir, defaultLoaders } = options
config.pageExtensions.push(".ts", ".tsx");
config.resolve.extensions.push(".ts", ".tsx");
open Js.Promise;
type state('a) = {
data: option('a),
isLoading: bool,
};
type action('a) =
| Load
| Loaded('a);
void Main()
{
var c = new ConfigStuff(new ConfigResolver());
c.GetNormalized().Dump();
}
// Define other methods and classes here
class ConfigStuff {
private readonly Lazy<object> _configNormalizedLazy;
using System;
using System.Globalization;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms;
namespace KeyFinder
{
class Program
@saitonakamura
saitonakamura / fixCircular.js
Last active October 27, 2021 03:29
Function that replace circular js object dependency with "[Circular]" so it can be consumed by JSON.stringify
// DISCLAIMER
// Original function was updated to a faster and es5-supporting version by @Quacky2200
var replaceCircular = function(val, cache) {
cache = cache || new WeakSet();
if (val && typeof(val) == 'object') {
if (cache.has(val)) return '[Circular]';
import { useReducer, Reducer, useRef, useEffect } from "react";
export type RemoteDataState<T> =
| { type: "initial" }
| { type: "loading" }
| { type: "error"; error: Error }
| { type: "complete"; payload: T };
export type RemoteDataAction<T> =
| { type: "beginLoad" }
/* eslint-disable no-console */
import React, {
useContext,
useEffect,
useCallback,
useMemo,
useRef,
} from 'react';
type LockId = number & { readonly __brand: unique symbol };
import { noop, omit } from 'lodash';
import { getCLS, getFCP, getFID, getLCP, getTTFB, ReportHandler } from 'web-vitals'
type IEntryType = 'navigation' | 'resource' | 'paint' | 'measure' | string;
type IAppPerformanceMeasure = 'clientHydration' | 'ssrHydration' | string;
type IAppPerformanceMark =
| 'clientHydrateBegin'
| 'clientHydrateEnd'
@saitonakamura
saitonakamura / iterm2-set-colors-preset.sh
Created November 20, 2020 16:44
Sets iTerm2 color preset based on MacOS setting
# Paste in your .bashrc/.zshrc
# Change to your color presets
ITERM2_DARK_PRESET='OneHalfDark'
ITERM2_LIGHT_PRESET='OneHalfLight'
theme=`defaults read -g AppleInterfaceStyle` &>/dev/null
if [ "$theme" = 'Dark' ] ; then
theme='dark'