Peer := Initiator OR Responder
sc = new SaltyRTC(initiator-permanent-public-key, responder-permanent-private-key=None, token-secret-key=None)
pc = new RTCPeerConnection()
sc.connect()
if initiator:
offer-sdp = await pc.createOffer()
/** | |
* A TypeScript async lock implemented with promise chaining. | |
* | |
* Usage: | |
* | |
* this._lock.with(async () => { | |
* await doThing1(); | |
* await doThing2(a); | |
* }); | |
*/ |
declare module '*?wrkr' { | |
export const url: string; | |
export const create: { | |
(): Worker; | |
}; | |
} | |
declare module '*?srvcwrkr' { | |
export const url: string; | |
export const register: { | |
( |
function sleep(timeout) { | |
return new Promise((resolve) => { | |
setTimeout(() => { | |
console.log('timeout!'); | |
resolve(); | |
}, timeout); | |
}); | |
} | |
class Future extends Promise { |
/** | |
* A future similar to Python's asyncio.Future. Allows to resolve or reject | |
* outside of the executor. | |
*/ | |
class Future extends Promise { | |
constructor(executor) { | |
let resolve, reject; | |
super((resolve_, reject_) => { | |
resolve = resolve_; | |
reject = reject_; |
I hereby claim:
To claim this, I am signing this object: