Skip to content

Commit 25f50f3

Browse files
committed
updated: TransformBuilder
1 parent 6554bd4 commit 25f50f3

2 files changed

Lines changed: 16 additions & 6 deletions

File tree

builders.js

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3068,21 +3068,31 @@ UrlBuilder.prototype.toOne = function(keys, delimiter) {
30683068

30693069
function TransformBuilder() {}
30703070

3071-
TransformBuilder.transform = function(name, obj, callback) {
3071+
TransformBuilder.transform = function(name, obj) {
3072+
3073+
var index = 2;
30723074

30733075
if (obj === undefined) {
30743076
obj = name;
30753077
name = transforms['transformbuilder_default'];
3078+
index = 1;
30763079
}
30773080

30783081
var current = transforms['transformbuilder'][name];
30793082
if (!current) {
3080-
if (callback)
3081-
callback(obj);
30823083
return obj;
30833084
}
30843085

3085-
return current(obj, callback);
3086+
var sum = arguments.length - index;
3087+
if (sum <= 0)
3088+
return current.call(obj, obj);
3089+
3090+
var arr = new Array(sum + 1)
3091+
var indexer = 1;
3092+
arr[0] = obj;
3093+
for (var i = index; i < arguments.length; i++)
3094+
arr[indexer++] = arguments[i];
3095+
return current.apply(obj, arr);
30863096
};
30873097

30883098
/**

test/test-builders.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -352,15 +352,15 @@ function test_ErrorBuilder() {
352352

353353
function test_TransformBuilder() {
354354

355-
TransformBuilder.addTransform('xml', function(obj, resume) {
355+
TransformBuilder.addTransform('xml', function(obj) {
356356
var xml = '';
357357
Object.keys(obj).forEach(function(key) {
358358
xml += '<' + key + '>' + obj[key] + '</' + key + '>';
359359
});
360360
return xml;
361361
}, true);
362362

363-
assert.ok(TransformBuilder.transform('xml', { name: 'Peter' }) === '<name>Peter</name>', 'TransformBuilder problem');
363+
assert.ok(TransformBuilder.transform('xml', { name: 'Peter' }, true) === '<name>Peter</name>', 'TransformBuilder problem');
364364
assert.ok(TransformBuilder.transform({ name: 'Peter' }) === '<name>Peter</name>', 'TransformBuilder problem (default)');
365365
}
366366

0 commit comments

Comments
 (0)