Skip to content

Instantly share code, notes, and snippets.

View Haosvit's full-sized avatar

Hao Nguyen Haosvit

  • Netherlands
View GitHub Profile
@Haosvit
Haosvit / gist:261755960a3b338e43f88ffdebff4707
Created September 26, 2022 08:47
Another typescript 4 breaking change
This type definition is sort of weird, but it works in typescript v3:
```ts
interface EncodedSomething<TProps, TEncoding extends BaseEncodingSomeWhere> extends BaseEncodedThingies<TProps> {
encoding: TEncoding;
}
```
Then in use:
```ts
import { ActionCreatorBuilder, getType } from 'typesafe-actions';
interface IAppAction {
type: string;
payload: any;
[extra: string]: any;
}
export function isType<TPayload = any>(
action: IAppAction,
@Haosvit
Haosvit / settings.json
Created June 3, 2020 11:46
Integrate cmder into vscode
```
{
...
"terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\cmd.exe",
"terminal.integrated.shellArgs.windows": [
"/k C:\\Users\\hoanguy\\Apps\\cmder\\vendor\\init.bat"
],
...
}
```
// Moment from 'momentjs'
type PresetTimePoint = 'today' | 'yesterday' | 'lastWeek' | 'lastMonth' | 'lastYear';
type PresetDateRanges = {
[k in PresetTimePoint]: {
label: string;
range: [Moment, Moment];
};
};
@Haosvit
Haosvit / store.ts
Created April 18, 2020 10:44
Redux devTools extension compose with options
import { applyMiddleware, compose, createStore } from 'redux';
import createSagaMiddleware from 'redux-saga';
import rootReducer from './rootReducer';
import rootSaga from './rootSaga';
declare global {
interface Window {
__REDUX_DEVTOOLS_EXTENSION_COMPOSE__: any;
}
}
@Haosvit
Haosvit / chrome extensions
Created March 6, 2020 13:08
Toggle youtube music videoplayer
Custom JavaScript for Websites 2: https://chrome.google.com/webstore/detail/custom-javascript-for-web/ddbjnfjiigjmcpcpkmhogomapikjbjdk
@Haosvit
Haosvit / debounce.ts
Created February 19, 2020 14:23
debounce
private debounce = (func: (...args: any) => void, wait: number) => {
let timeout;
return (...args: any) => {
clearTimeout(timeout);
timeout = setTimeout(() => func.apply(this, args), wait);
};
}
@Haosvit
Haosvit / VSCode Git SSH Permission denied (publickey).md
Created February 17, 2020 09:37
VSCode Git SSH Permission denied (publickey)
@Haosvit
Haosvit / XamarinMemo.md
Created February 15, 2020 09:56
Xamarin Build & Sign Memos
  1. Sign:
    Change to release mode, increase build number, right click on Android project in VS, select Archive... => Distribute Adhoc.
    1.1. Create & save keystore track in repos
    1.2. Restore keystore:
    Copy .keyInfo & .keystore into %UserProfile%\AppData\Local\Xamarin\Mono for Android\Keystore

  2. Align:
    Run zipalign on the signed apk.
    Run cmd %UserProfile%\AppData\Local\Android\Sdk\build-tools\<version>
    zipalign -v -p 4

@Haosvit
Haosvit / writejson.js
Created December 31, 2019 10:32
node write file javascript
function writeFile(fileName, data, indent = 2) {
require('fs').writeFile(`${fileName}`, JSON.stringify(data, '', indent), (err) => {
if (err) {
return console.log(err);
}
console.log(`Done "${fileName}".`);
});
}