Skip to content

Instantly share code, notes, and snippets.

@terrierscript
terrierscript / file0.txt
Last active October 7, 2018 10:00
recomposeとRxJSでpropsをstream化する方法 ref: https://qiita.com/terrierscript/items/776d0689b8ca76503905
export class TextArea extends React.Component {
constructor(props) {
super(props)
this.state = {
text: ""
}
}
render() {
return (
<div>
@terrierscript
terrierscript / file0.txt
Last active October 2, 2018 23:56
RxJS6のカスタムオペレータを作るのが簡単なので、redux-observableで利用する ref: https://qiita.com/terrierscript/items/3498568903f0e81e8319
/**
* You can also use an existing operator like so
*/
const takeEveryNthSimple = (n: number) => <T>(source: Observable<T>) =>
source.pipe(filter((value, index) => index % n === 0 ))
@terrierscript
terrierscript / file0.js
Last active October 3, 2018 02:34
redux-observableで作ったintervalのobservableをHot Module Replacementで止まるようにする ref: https://qiita.com/terrierscript/items/f888a7b1b3021de24551
import { combineEpics } from "redux-observable"
import { interval, Subject } from "rxjs"
import { map, takeUntil } from "rxjs/operators"
const disposer = new Subject()
export const timerEpic = () => {
return interval(1000).pipe(
takeUntil(disposer), // disposerが動くまでtimerを動かす
map((time) => ({
@terrierscript
terrierscript / file1.txt
Created September 28, 2018 10:30
hyper(hyperterm) 2.0 を日本語対応する ref: https://qiita.com/terrierscript/items/47b11b8a24438d789210
% locale
LANG="ja_JP.utf8"
LC_COLLATE="ja_JP.UTF-8"
LC_CTYPE="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_ALL="ja_JP.UTF-8"
@terrierscript
terrierscript / file0.js
Last active August 19, 2018 08:06
styled-componentsでいい感じにresponsive用のmedia queryを扱いたいときのちょっとしたHoCs ref: https://qiita.com/terrierscript/items/5f68eb618a2873760f3d
export const withMediaComponent = (DesktopComponent, MobileComponent) => {
return props => {
return (
<Media query="(max-width: 768px)">
{matches =>
matches ? (
<MobileComponent {...props} />
) : (
<DesktopComponent {...props} />
@terrierscript
terrierscript / file0.js
Created August 6, 2018 11:58
styled-componentsとhue-rotateで1枚の画像を怠惰にカラフルにする ref: https://qiita.com/terrierscript/items/029f5597322f50d441e5
import React, { Component } from "react";
import icon from "./icon.png";
import styled from "styled-components";
const randomAngle = () => {
const num = 7; // ランダムに出したい色数
return (Math.ceil(Math.random() * num) * 360) / num;
};
// ここでhue-rotate使う
@terrierscript
terrierscript / file0.txt
Last active August 3, 2018 01:16
TypeScript 3.0でredux-actionsのcreateActionみたいなものをつくる ref: https://qiita.com/terrierscript/items/b9687f610a96ab964ab2
// Extraの部分を作成する関数。Tuple in Rest parameter大活躍!
type ExtraFunction<Arg extends any[], R> = (...args: Arg) => R
type ActionCreator<Arg extends any[], Action> = (...args: Arg) => Action
// 関数のoverload
export function createAppAction<A extends string>(
type: A
): ActionCreator<any[], AppAction<A>>
export function createAppAction<A extends string, Arg extends any[], R>(
@terrierscript
terrierscript / file0.txt
Last active August 3, 2018 01:16
TypeScript + Reduxはもうぼちぼちサードライブラリに頼らなくてもある程度はいい感じに補完してくれる ref: https://qiita.com/terrierscript/items/b3f9dd95a4c7afe0b102
import {
createStore,
Reducer,
Action,
combineReducers,
ActionCreatorsMapObject,
ReducersMapObject,
ActionCreator
} from "redux"
@terrierscript
terrierscript / file0.txt
Last active July 29, 2018 12:03
next.jsをGoogle App Engineで動かす。ついでにTypeScriptで動かす ref: https://qiita.com/terrierscript/items/5417879f84f7f2be10c1
yarn add next @zeit/next-typescript ts-node
@terrierscript
terrierscript / file0.txt
Last active September 15, 2019 06:59
CircleCI 2.0でのスローテスト(テスト遅い)問題対処法を思いつくだけ書き出す ref: https://qiita.com/terrierscript/items/80dede32cc7935193b70
version: 2
jobs:
fornt-test:
docker:
- image: circleci/node
steps:
- checkout
- run: yarn install
- run: yarn test
server-test: