Skip to content

Instantly share code, notes, and snippets.

View craftgear's full-sized avatar
🏠
Working from home

CaptainEmo craftgear

🏠
Working from home
View GitHub Profile

Privacy Policy

craftgear built the あんしんQRコードリーダー app as a Free app. This SERVICE is provided by craftgear at no cost and is intended for use as is.

This page is used to inform visitors regarding my policies with the collection, use, and disclosure of Personal Information if anyone decided to use my Service.

If you choose to use my Service, then you agree to the collection and use of information in relation to this policy. The Personal Information that I collect is used for providing and improving the Service. I will not use or share your information with anyone except as described in this Privacy Policy.

The terms used in this Privacy Policy have the same meanings as in our Terms and Conditions, which is accessible at あんしんQRコードリーダー unless otherwise defined in this Privacy Policy.

@craftgear
craftgear / init_cypress.md
Last active June 15, 2021 08:13
Cypressを導入してe2eテストをかけるようにするまでにやったこと

Cypress導入手順

インストール

  1. npm install cypress --save-dev
  2. npx cypress open →自動でcypress.jsonとcypress用のディレクトリが作られる
  3. cypress.json に設定を追加する
{
  "baseUrl": "http://localhost:8080",
  "viewportWidth": 1280,
  "video": true,
@craftgear
craftgear / beyond_for_loop.js
Last active October 6, 2018 04:29
#SurviveJS 05 LT「forループを越えて」
const double = x => x * 2;
const over5 = x => x > 5;
const a = [1, 2, 3].map(double).filter(over5);
console.log('********* a', a);
import * as R from 'ramda';
const times2Over5 = R.compose(
R.tap(console.log),
@craftgear
craftgear / dummy_todos.json
Last active August 12, 2018 08:09
dummy_todos.json
{
"data": [
{
"id": 1,
"title": "Reactコンポーネントを作れるようになる",
"done": false,
"created_at": "2018-08-08 12:00:00",
"started_at": "",
"done_at":""
},
@craftgear
craftgear / permutate.js
Last active May 14, 2018 12:30
Permutation with recursion
const insertItem = (xs, index, item) => [...xs.slice(0, index), item, ...xs.slice(index)];
const range = number => [...Array(number).keys()];
const permutate = (xs, accum = []) => {
const [head, ...tail] = xs;
if (!head) {
return accum;
}
return accum.length === 0
@craftgear
craftgear / pad.js
Last active November 25, 2017 02:52
leftPad, rightPad, oh whatever.
const pad = (leftOrRight = 'left') => maxLength => char => value => {
const strValue = typeof value === 'number' ? value.toString() : value;
if (strValue.length >= maxLength) {
return strValue;
}
if (typeof maxLength !== 'number') {
throw new Error('maxLength should be a number');
}
const padding = Array(maxLength - strValue.length)
@craftgear
craftgear / splitByRegexp.go
Last active November 20, 2017 03:23
split a string into a slice of strings by regexp (goで正規表現を使って文字列を分割する)
func splitByRegexp(str string, separator string) []string {
normalRe := "[^%s]*[%s]"
rawRe := `[^%s]*[%s]`
var re *regexp.Regexp
if strings.Index(separator, `\\`) > -1 {
re = regexp.MustCompile(fmt.Sprintf(normalRe, separator, separator))
} else {
re = regexp.MustCompile(fmt.Sprintf(rawRe, separator, separator))
}
async (callback) => {
const { err, ...result } = await asyncCode().catch(e => ({ err: e }));
if (err) {
callback(err);
return;
}
callback(null, result);
};
async (callback) => {
try {
const result = await asyncCode();
callback(null, result)
}
catch (e) {
callback(e)
}
}
async (callback) => {
const result = await asyncCode();
callback(null, result)
}