git update-index --assume-unchanged path/to/file
git update-index --no-assume-unchanged path/to/file
git ls-files -v | grep '^[[:lower:]]'
function upper(arr: string[]) { | |
for (let i = 0; i < arr.length; i += 1) { | |
let str = arr[i]; | |
console.log(str.upperCase()) | |
} | |
} | |
upper(['foo', 'bar', 'baz']); | |
// In Typescript when index into an array you get the element type of the array. |
#!/usr/bin/env sh | |
# checks to see if running | |
launchctl list | grep mongo | |
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist | |
launchctl remove homebrew.mxcl.mongodb | |
pkill -f mongod |
function replaceRange(str: string, start: number, end: number, substitute: string): string { | |
const chunk = substitute.repeat(end - start); | |
return `${str.substring(0, start)${chunk}${str.substring(end)}`; | |
} |
/** | |
* match first character after white space | |
*/ | |
const firstAtWhiteSpace = /(^|\s)[a-z]/g; |
// in this case the state is each individual product | |
const product = (state, action) => { | |
switch (action.type) { | |
case 'CREATE_PRODUCT': | |
return { | |
id: action.id, | |
name: action.name, | |
price: action.price, | |
}; | |
case 'EDIT_PRODUCT': |
<!-- | |
even though the "blue" comes later in the list of classes, | |
but CSS rules of precedence actually depends of the order of | |
classes in the stylesheet | |
--> | |
<span class="red blue"> | |
so I'm red | |
</span> |
git update-index --assume-unchanged path/to/file
git update-index --no-assume-unchanged path/to/file
git ls-files -v | grep '^[[:lower:]]'
/** | |
* @link this is taken from here for reference | |
* https://github.com/testing-library/react-hooks-testing-library/issues/20#issuecomment-476628600 | |
*/ | |
import { useState, useEffect } from 'react'; | |
import { renderHook } from '@testing-library/react-hooks'; | |
describe('error hook tests', () => { | |
function useError(obj: Error | string): boolean { | |
if (obj.constructor.name === 'Error') { |
// .babelrc | |
{ | |
"presets": [ | |
[ | |
"@babel/preset-env", | |
{ | |
// this tells @babel "hey, don'y change any of the modules, let Webpack handle it | |
"modules": false | |
// you only get the individual pollyfill that you need | |
"useBuiltIns": "usage" |
interface Base { | |
id: string; | |
timestamp: string; | |
} | |
interface Product extends Base { | |
price: number; | |
stock: number; | |
} |