Skip to content

Instantly share code, notes, and snippets.

@Avaq
Last active November 24, 2020 14:42

Revisions

  1. Avaq revised this gist Dec 24, 2018. 1 changed file with 8 additions and 6 deletions.
    14 changes: 8 additions & 6 deletions usage.js
    Original file line number Diff line number Diff line change
    @@ -3,11 +3,13 @@
    const request = require('./request');
    const {encase} = require('fluture');

    const name_ = request({url: 'https://api.github.com/users/avaq', headers: {'User-Agent': 'Avaq'}})
    .map(res => res.body)
    .chain(encase(JSON.parse))
    .map(user => user.name);

    const cancel = name_.fork(console.error, console.log);
    const eventualName = (
    request({url: 'https://api.github.com/users/avaq', headers: {'User-Agent': 'Avaq'}})
    .map(res => res.body)
    .chain(encase(JSON.parse))
    .map(user => user.name)
    );

    const cancel = eventualName.fork(console.error, console.log);

    process.on('SIGINT', cancel);
  2. Avaq revised this gist Sep 22, 2016. 1 changed file with 6 additions and 3 deletions.
    9 changes: 6 additions & 3 deletions usage.js
    Original file line number Diff line number Diff line change
    @@ -3,8 +3,11 @@
    const request = require('./request');
    const {encase} = require('fluture');

    request({url: 'https://api.github.com/users/avaq', headers: {'User-Agent': 'Avaq'}})
    const name_ = request({url: 'https://api.github.com/users/avaq', headers: {'User-Agent': 'Avaq'}})
    .map(res => res.body)
    .chain(encase(JSON.parse))
    .map(user => user.name)
    .fork(console.error, console.log);
    .map(user => user.name);

    const cancel = name_.fork(console.error, console.log);

    process.on('SIGINT', cancel);
  3. Avaq revised this gist Sep 22, 2016. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion usage.js
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,6 @@
    'use strict';

    const request = require('./src/util/request');
    const request = require('./request');
    const {encase} = require('fluture');

    request({url: 'https://api.github.com/users/avaq', headers: {'User-Agent': 'Avaq'}})
  4. Avaq revised this gist Sep 22, 2016. 1 changed file with 10 additions and 0 deletions.
    10 changes: 10 additions & 0 deletions usage.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,10 @@
    'use strict';

    const request = require('./src/util/request');
    const {encase} = require('fluture');

    request({url: 'https://api.github.com/users/avaq', headers: {'User-Agent': 'Avaq'}})
    .map(res => res.body)
    .chain(encase(JSON.parse))
    .map(user => user.name)
    .fork(console.error, console.log);
  5. Avaq created this gist Sep 22, 2016.
    9 changes: 9 additions & 0 deletions request.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,9 @@
    'use strict';

    const request = require('request');
    const Future = require('fluture');

    module.exports = o => Future((l, r) => {
    const socket = request(o, (err, res) => err ? l(err) : r(res));
    return () => socket.abort();
    });