As easy as 1, 2, 3!
Updated:
- Aug, 08, 2022 update
config
docs for npm 8+ - Jul 27, 2021 add private scopes
- Jul 22, 2021 add dist tags
- Jun 20, 2021 update for
--access=public
- Sep 07, 2020 update docs for
npm version
This is a proposal for a ⚡lightning talk at the Reactive 2016 conference.
🌟Star this gist if you want to see it on the conference.
Every day we work with multiple teams to build our products, communication and sync are key factors to deliver your product on time without compromising quality.
In this talk I will introduce BDSM a new mocking tool that will change the way you coordinate between client and server teams minimizing friction allowing each team to work at its own pace while keeping in sync.
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"];
type FieldType<Field> = | |
's' extends Field ? string : | |
'f' extends Field ? number : | |
'i' extends Field ? number : | |
'd' extends Field ? number : | |
'o' extends Field ? HTMLElement : | |
'O' extends Field ? object : | |
'c' extends Field ? string : | |
never; |
type Nat = ["S", Nat] | ["Z"]; | |
type Succ<N extends Nat> = ["S", N] | |
type S<N extends Nat> = Succ<N> | |
type Prev<N extends Nat> = N[1] | |
type Z = ["Z"] | |
type Zero = Z | |
type One = S<Z> | |
type Two = S<S<Z>> |