allow overriding the angular serializer with serializer: "json"

This commit is contained in:
Spencer Alger
2014-10-28 15:48:30 -07:00
parent 788e028aa1
commit 24beb382ca
3 changed files with 22 additions and 19 deletions

View File

@ -6,8 +6,6 @@
*/
var AngularConnector = require('./lib/connectors/angular');
var Client = require('./lib/client');
var _ = require('./lib/utils');
var JsonSerializer = require('./lib/serializers/json');
process.angular_build = true;
@ -22,25 +20,10 @@ angular.module('elasticsearch', [])
config.defer = function () {
return $q.defer();
};
config.serializer = AngularSerializer;
config.serializer = config.serializer || 'angular';
return new Client(config);
};
_.inherits(AngularSerializer, JsonSerializer);
function AngularSerializer() {}
// mimic the JsonSerializer's encode method, but use angular's toJson instead
AngularSerializer.prototype.encode = function (val) {
switch (typeof val) {
case 'string':
return val;
case 'object':
if (val) return angular.toJson(val);
/* falls through */
default:
return;
}
};
factory.errors = require('./lib/errors');
factory.ConnectionPool = require('./lib/connection_pool');
factory.Transport = require('./lib/transport');

19
src/lib/serializers/angular.js vendored Normal file
View File

@ -0,0 +1,19 @@
/* global angular */
var _ = require('./lib/utils');
var JsonSerializer = require('./lib/serializers/json');
function AngularSerializer() {}
_.inherits(AngularSerializer, JsonSerializer);
// mimic the JsonSerializer's encode method, but use angular's toJson instead
AngularSerializer.prototype.encode = function (val) {
switch (typeof val) {
case 'string':
return val;
case 'object':
if (val) return angular.toJson(val);
/* falls through */
default:
return;
}
};

View File

@ -92,7 +92,8 @@ Transport.connectionPools = {
};
Transport.serializers = {
json: require('./serializers/json')
json: require('./serializers/json'),
angular: require('./serializers/angular')
};
Transport.nodesToHostCallbacks = {