Skip to content

Instantly share code, notes, and snippets.

@Aetet
Last active September 15, 2015 07:35
Show Gist options
  • Save Aetet/ef083bbcb04a68e506fd to your computer and use it in GitHub Desktop.
Save Aetet/ef083bbcb04a68e506fd to your computer and use it in GitHub Desktop.
Gulp with immutable-di for data connection
/* eslint-disable */
var gulp = require('gulp');
var Facet = require('immutable-di/define').Facet;
var Container = require('immutable-di');
var NativeCursor = require('immutable-di/cursors/native');
var Setter = require('immutable-di/define').Setter;
var cursor = new NativeCursor({
tis: {
a: 1,
b: 2
}
})
var container = new Container(cursor)
var DI = function (state) {
this._state = state;
}
DI.prototype.wire = function (facetData, fn) {
var state = this._state;
return function (cb) {
var facet = Facet(facetData)(function (data) {
fn(data, cb);
});
state.get(facet);
}
};
var di = new DI(container);
gulp.task('one', di.wire({
ac: ['tis', 'a'],
setA: Setter(['tis', 'a'])
}, function (data, cb) {
console.log('data:', data);
data.setA(4);
cb();
}));
gulp.task('two', ['one'], di.wire({
doc: ['tis', 'a']
}, function (data, cb) {
console.log('doc:', data.doc);
}));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment