Skip to content

Instantly share code, notes, and snippets.

View minajevs's full-sized avatar
⌨️

Dmitrijs Minajevs minajevs

⌨️
View GitHub Profile
{
"name": "Acheron Project Doddle60",
"vendorId": "0x4150",
"productId": "0x4436",
"matrix": {"rows": 5, "cols": 14},
"lighting": "none",
"layouts": {
"labels": [
"Split backspace",
"Stepped Caps Lock",
@minajevs
minajevs / cloudSettings
Last active January 28, 2020 09:05
Visual Studio Code Settings Sync Gist
{"lastUpload":"2020-01-17T12:24:26.067Z","extensionVersion":"v3.4.3"}
@minajevs
minajevs / Example.cs
Created December 5, 2019 07:42
An example how to test a middleware or message handler, which uses `HttpContext.GetTokenAsync("access_token")`
//
// `GetTokenAsync` usage
//
protected override async Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request,
CancellationToken cancellationToken)
{
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", _httpContextAccessor.HttpContext.GetTokenAsync("access_token").Result);
import { ThunkAction, ThunkDispatch } from 'redux-thunk'
import { AnyAction, Action, Dispatch } from 'redux'
export type PayloadCallback<State, Actions extends AnyAction, Payload> = (
dispatch: ThunkDispatch<State, undefined, Actions>,
payload: Payload /*, getState: () => State */
) => Promise<Action>
export type Callback<State, Actions extends AnyAction> = (
dispatch: ThunkDispatch<State, undefined, Actions> /*, getState: () => State */
@minajevs
minajevs / fb.ts
Created January 31, 2019 09:25
fizzbuzz types
type StringBool = "true" | "false";
interface AnyNumber { prev?: any, isZero: StringBool };
interface PositiveNumber { prev: any, isZero: "false" };
type IsZero<TNumber extends AnyNumber> = TNumber["isZero"];
type Next<TNumber extends AnyNumber> = { prev: TNumber, isZero: "false" };
type Prev<TNumber extends PositiveNumber> = TNumber["prev"];
function foo<T = undefined>(...args: OptionalSpread<T>){
const arg = args[0]
}
var foo = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var arg = args[0];
};
function foo(...args: [number, string, boolean]): void;
function foo(args_0: number, args_1: string, args_2: boolean): void;
type OptionalSpread<T> =
T extends undefined
? []
: [T]
function foo<T = undefined>(...args: OptionalSpread<T>){
const arg = args[0] // Type of: T = undefined
if (arg === undefined)
doThis()
function foo<T>(arg: T) {
if (arg === undefined)
doThis()
else
doThat(arg)
}
// number
foo<number>(42) // OK
foo<number>() // ERROR: 1 argument expected