export type DeepPartial<T> = T extends Function ? T : (T extends object ? { [P in keyof T]?: DeepPartial<T[P]>; } : T);
Before [email protected]
type DeepPartial = {
export type DeepPartial<T> = T extends Function ? T : (T extends object ? { [P in keyof T]?: DeepPartial<T[P]>; } : T);
type DeepPartial = {
import * as React from 'react'; | |
import { computed } from 'mobx'; | |
import { inject, observer, Provider } from 'mobx-react'; | |
import { fromPromise } from 'mobx-utils'; | |
import {StaticRouter} from 'react-router-dom'; | |
import { Request, Response } from 'express'; | |
import * as ReactDOM from 'react-dom/server'; | |
interface Item { | |
weight: number; |
Here are the transaction IDs (and links to the block explorers) for the first livenet Ethereum and Ripple Consensus Ledger (RCL) escrowed transfers comprising an Interledger payment.
0x00cbb6149b9cfb3cedf280251c3060b2a38776fa7792b578b6f9f39ce5ee0266
7F0A5F16C84568D96DA6A66058CD9EAA881236237642BF7427A458957A752B6B
12A4CAFAE95254844513C5C11488A1195C08DEFF673C97AC74AAC121935DDE36
0xb59dd839ab0b5e7d4e663b7cfc0ddb70eaf73dd2785b3d3a4abdf1a61817007d
SHA-256 Condition: `d2
// π₯ Node 7.6 has async/await! Here is a quick run down on how async/await works | |
const axios = require('axios'); // promised based requests - like fetch() | |
function getCoffee() { | |
return new Promise(resolve => { | |
setTimeout(() => resolve('β'), 2000); // it takes 2 seconds to make coffee | |
}); | |
} |
import React, {PropTypes} from "react"; | |
import {BrowserRouter as Router, Route, Link} from "react-router-dom"; | |
// from the documentation Auth example | |
// https://reacttraining.com/react-router/examples | |
const Test = () => ( | |
<Router> | |
<div> | |
<ul> |
You probably arrived here because of a curt message in response to an issue you filed on a repo that I contribute to. Sorry about that (particularly if you filed the issue long ago and have been waiting patiently for a response). Let me explain:
I work on a lot of different open source projects. I really do like building software that makes other people's lives easier, but it's crazy time-consuming. One of the most time-consuming parts is responding to issues. A lot of OSS maintainers will bend over backwards to try and understand your specific problem and diagnose it, to the point of setting up new test projects, fussing around with different Node versions, reading the documentation for build tools that we don't use, debugging problems in third party dependencies that appear to be involved in the problem... and so on. I've personally spent hundreds of hours of my free time doing these sorts of things to try and help people out, because I want to be a responsible maintainer and I
Not all random values are created equal - for security-related code, you need a specific kind of random value.
A summary of this article, if you don't want to read the entire thing:
Math.random()
. There are extremely few cases where Math.random()
is the right answer. Don't use it, unless you've read this entire article, and determined that it's necessary for your case.crypto.getRandomBytes
directly. While it's a CSPRNG, it's easy to bias the result when 'transforming' it, such that the output becomes more predictable.uuid
, specifically the uuid.v4()
method. Avoid node-uuid
- it's not the same package, and doesn't produce reliably secure random values.random-number-csprng
.You should seriously consider reading the entire article, though - it's
β |