Comparing version 1.11.0-0 to 1.11.0-1
{ "name" : "rethinkdb" | ||
, "version" : "1.11.0-0" | ||
, "version" : "1.11.0-1" | ||
, "main" : "rethinkdb" | ||
@@ -4,0 +4,0 @@ , "description" : "This package provides the JavaScript driver library for the RethinkDB database server for use either from node or your web-browser." |
63
util.js
// Generated by CoffeeScript 1.4.0 | ||
var deconstructDatum, err, mkAtom, mkErr, mkSeq, pb, | ||
var convertPseudotype, deconstructDatum, err, mkAtom, mkErr, mkSeq, pb, recursivelyConvertPseudotype, | ||
__slice = [].slice; | ||
@@ -64,2 +64,40 @@ | ||
convertPseudotype = function(obj, opts) { | ||
switch (obj['$reql_type$']) { | ||
case 'TIME': | ||
switch (opts.timeFormat) { | ||
case 'native': | ||
case void 0: | ||
if (!(obj['epoch_time'] != null)) { | ||
throw new err.RqlDriverError("pseudo-type TIME " + obj + " object missing expected field 'epoch_time'."); | ||
} | ||
return new Date(obj['epoch_time'] * 1000); | ||
case 'raw': | ||
return obj; | ||
default: | ||
throw new err.RqlDriverError("Unknown timeFormat run option " + opts.timeFormat + "."); | ||
} | ||
break; | ||
default: | ||
return obj; | ||
} | ||
}; | ||
recursivelyConvertPseudotype = function(obj, opts) { | ||
var i, key, value, _i, _len; | ||
if (obj instanceof Array) { | ||
for (i = _i = 0, _len = obj.length; _i < _len; i = ++_i) { | ||
value = obj[i]; | ||
obj[i] = recursivelyConvertPseudotype(value, opts); | ||
} | ||
} else if (obj instanceof Object) { | ||
for (key in obj) { | ||
value = obj[key]; | ||
obj[key] = recursivelyConvertPseudotype(value, opts); | ||
} | ||
obj = convertPseudotype(obj, opts); | ||
} | ||
return obj; | ||
}; | ||
deconstructDatum = function(datum, opts) { | ||
@@ -69,3 +107,5 @@ var _this = this; | ||
"R_JSON": function() { | ||
return JSON.parse(datum.r_str); | ||
var obj; | ||
obj = JSON.parse(datum.r_str); | ||
return recursivelyConvertPseudotype(obj, opts); | ||
}, | ||
@@ -102,20 +142,3 @@ "R_NULL": function() { | ||
} | ||
switch (obj['$reql_type$']) { | ||
case 'TIME': | ||
switch (opts.timeFormat) { | ||
case 'native': | ||
case void 0: | ||
if (!(obj['epoch_time'] != null)) { | ||
throw new err.RqlDriverError("pseudo-type TIME " + obj + " object missing expected field 'epoch_time'."); | ||
} | ||
return new Date(obj['epoch_time'] * 1000); | ||
case 'raw': | ||
return obj; | ||
default: | ||
throw new err.RqlDriverError("Unknown timeFormat run option " + opts.timeFormat + "."); | ||
} | ||
break; | ||
default: | ||
return obj; | ||
} | ||
return convertPseudotype(obj, opts); | ||
} | ||
@@ -122,0 +145,0 @@ }, function() { |
150287
4535