solidstate
Version:
An observable REST client for Javascript with a dramatically simple & fluent API.
38 lines (31 loc) • 1.07 kB
JavaScript
if (typeof define !== 'function') { var define = require('amdefine')(module); }
define([
'knockout',
'underscore',
'URIjs',
'when',
'zoetropic'
], function(ko, _, URI, when, z) {
'use strict';
// Alias extremely common knockout functions.
var o = ko.observable,
u = ko.utils.unwrapObservable,
c = ko.computed,
w = function(v) { return ko.isObservable(v) ? v : o(v); },
die = function(msg) { throw new Error(msg); };
// Secret value that indicates something should not bother to fetch
var NOFETCH = "solidstate.NOFETCH";
var transformed = function(underlyingObservable, args) {
return c({
read: function() { return args.read ? args.read(underlyingObservable()) : underlyingObservable(); },
write: function(v) { return args.write ? underlyingObservable(args.write(v)) : underlyingObservable(v); }
});
};
// Module Exports
// --------------
return {
transformed: transformed,
die: die,
NOFETCH: NOFETCH
};
});