UNPKG

solidstate

Version:

An observable REST client for Javascript with a dramatically simple & fluent API.

32 lines (26 loc) 1.23 kB
if (typeof define !== 'function') { var define = require('amdefine')(module); } define([ 'knockout', 'underscore', './FilterReference' ], function(ko, _, FilterReference) { 'use strict'; var o = ko.observable, u = ko.utils.unwrapObservable, c = ko.computed, w = function(v) { return ko.isObservable(v) ? v : o(v); }; // JoinReference // // A FilterReference where the `from` attribute and `to` attribute must match exactly. // var JoinReference = function(args) { var from = args.from || die('Missing required argument `from` in solidstate.JoinReference'), to = args.to || die('Missing required argument `to` in solidstate.JoinReference'); return FilterReference(function(source, destination) { _(source).has('attributes') || die('Model `source` passed to JoinReference missing attributes:' + source + '('+ui(source)+')'); _(destination).has('attributes') || die('Model `destination` passed to JoinReference missing attributes:' + destination +'('+u(destination)+')'); return u(source.attributes()[from]) === u(destination.attributes()[to]); }); }; return JoinReference; });