Skip to content

Commit

Permalink
Release 0.2.38
Browse files Browse the repository at this point in the history
  • Loading branch information
seeden committed Jan 5, 2016
1 parent afb476b commit 8033c80
Show file tree
Hide file tree
Showing 16 changed files with 138 additions and 83 deletions.
11 changes: 6 additions & 5 deletions dist/Translate.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ var defaultOptions = {
filters: filters
};

// TODO add || syntax

var Translate = (function (_EventEmitter) {
_inherits(Translate, _EventEmitter);

Expand All @@ -91,9 +93,8 @@ var Translate = (function (_EventEmitter) {
var DefaultAdapter = _options.defaultAdapter;

if ((0, _lodashLangIsPlainObject2['default'])(adapter)) {
this._options.adapter = new DefaultAdapter({
data: adapter
});
var newAdapter = this._options.adapter = new DefaultAdapter();
newAdapter.rehydrate(adapter);
}

this._translation = new _Translation2['default'](this);
Expand Down Expand Up @@ -187,7 +188,7 @@ var Translate = (function (_EventEmitter) {
var _ret = (function () {
var translated = {};
(0, _lodashObjectForOwn2['default'])(path, function (value, key) {
translated[key] = _this3.get(value, attrs, defaultValue);
translated[key] = _this3.get(value, attrs, defaultValue, value);
});

return {
Expand All @@ -198,7 +199,7 @@ var Translate = (function (_EventEmitter) {
if (typeof _ret === 'object') return _ret.v;
}

return this._translation.get(path, attrs, defaultValue);
return this._translation.get(path, attrs, defaultValue, path);
}
}, {
key: 'set',
Expand Down
52 changes: 25 additions & 27 deletions dist/Translation.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,6 @@ var _constantsMode2 = _interopRequireDefault(_constantsMode);

var EMPTY_TEXT = '';

// TODO add or syntax

function resolveVariable(obj, path) {
var value = (0, _lodashObjectGet2['default'])(obj, path);

Expand Down Expand Up @@ -106,8 +104,8 @@ var Translation = (function () {
return this.get();
}
}, {
key: 'resolveValue',
value: function resolveValue() {
key: '_resolveValue',
value: function _resolveValue() {
var item = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
var attrs = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
var type = item.type;
Expand Down Expand Up @@ -143,8 +141,8 @@ var Translation = (function () {
}
}
}, {
key: 'buildText',
value: function buildText(obj, attrs, smartValue) {
key: '_buildText',
value: function _buildText(obj, attrs, smartValue) {
var _this2 = this;

if (!obj || obj.type !== 'main') {
Expand All @@ -162,29 +160,29 @@ var Translation = (function () {
return smartValue;
}

var value = _this2.resolveValue(part, attrs);
var value = _this2._resolveValue(part, attrs);
if (!filters || !filters.length) {
return value || EMPTY_TEXT;
}

return (0, _lodashCollectionReduce2['default'])(filters, function (reducedValue, filter) {
return _this2.applyFilter(reducedValue, part, attrs, filter);
return _this2._applyFilter(reducedValue, part, attrs, filter);
}, value);
}).join('');
}
}, {
key: 'applyFilter',
value: function applyFilter(value, part, attrs, filter) {
key: '_applyFilter',
value: function _applyFilter(value, part, attrs, filter) {
var root = this._root;
var filterFn = root.getFilter(filter.type);
var args = filter.args || [];

return filterFn ? filterFn.call.apply(filterFn, [this, value, part, attrs, filter.metadata].concat(_toConsumableArray(args))) : value;
}
}, {
key: 'process',
value: function process(value) {
var attrs = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
key: '_process',
value: function _process(value, attrs, path) {
if (attrs === undefined) attrs = {};

if (!value) {
return value;
Expand All @@ -193,33 +191,33 @@ var Translation = (function () {
var cache = this.getOptions().cache;
if (cache.has(value)) {
var data = cache.get(value);
return this.buildText(data, attrs);
return this._buildText(data, attrs);
}

try {
var data = _parserParser2['default'].parse(value);
cache.set(value, data);
return this.buildText(data, attrs);
return this._buildText(data, attrs);
} catch (err) {
// TODO get info about unparsable translation text
this._root.emit('err', err, path, value, attrs);
return void 0;
}
}
}, {
key: 'get',
value: function get(path, attrs, defaultValue) {
value: function get(path, attrs, defaultValue, fullPath) {
if (attrs === undefined) attrs = {};

if (typeof attrs === 'string') {
return this.get(path, {}, attrs);
return this.get(path, {}, attrs, fullPath);
}

if (typeof defaultValue === 'undefined') {
return this.get(path, attrs, 'Missing translation for path: ' + path);
return this.get(path, attrs, 'Missing translation for path: ' + path, fullPath);
}

if ((0, _lodashLangIsPlainObject2['default'])(path)) {
return this.get(null, path, defaultValue);
return this.get(null, path, defaultValue, fullPath);
}

if (path) {
Expand All @@ -231,19 +229,19 @@ var Translation = (function () {

var translation = this[_name];
if (!translation) {
// TODO get info about missing reference translation
return this.process(defaultValue, attrs);
this._root.emit('missing', fullPath, attrs, defaultValue);
return this._process(defaultValue, attrs, fullPath);
}

return translation.get(newPath, attrs, defaultValue);
return translation.get(newPath, attrs, defaultValue, fullPath);
}

if (!this[path]) {
// TODO get info about missing reference translation
return this.process(defaultValue, attrs);
this._root.emit('missing', fullPath, attrs, defaultValue);
return this._process(defaultValue, attrs, fullPath);
}

return this[path].get(null, attrs, defaultValue);
return this[path].get(null, attrs, defaultValue, fullPath);
}

var value = this._value;
Expand All @@ -255,7 +253,7 @@ var Translation = (function () {
return defaultChild ? defaultChild.get(attrs) : void 0;
}

return this.process(value, attrs);
return this._process(value, attrs, fullPath);
}
}, {
key: 'set',
Expand Down
10 changes: 10 additions & 0 deletions dist/adapters/Adapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,16 @@ var Adapter = (function () {
value: function set(locale, value, namespace, callback) {
throw new Error('Implement method set');
}
}, {
key: 'dehydrate',
value: function dehydrate() {
throw new Error('Implement method dehydrate');
}
}, {
key: 'rehydrate',
value: function rehydrate(state) {
throw new Error('Implement method rehydrate');
}
}]);

return Adapter;
Expand Down
17 changes: 11 additions & 6 deletions dist/adapters/Memory.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,15 +42,10 @@ var Memory = (function (_Adapter) {

_get(Object.getPrototypeOf(Memory.prototype), 'constructor', this).call(this, _extends({}, defaultOptions, options));

this._data = this._options.data || {};
this._data = {};
}

_createClass(Memory, [{
key: 'getData',
value: function getData() {
return _extends({}, this._data);
}
}, {
key: 'getPath',
value: function getPath(locale, namespace) {
return namespace ? namespace + '.' + locale : locale;
Expand Down Expand Up @@ -87,6 +82,16 @@ var Memory = (function (_Adapter) {

callback(null);
}
}, {
key: 'dehydrate',
value: function dehydrate() {
return _extends({}, this._data);
}
}, {
key: 'rehydrate',
value: function rehydrate(state) {
this._data = state;
}
}]);

return Memory;
Expand Down
4 changes: 2 additions & 2 deletions dist/filters/as.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@ exports['default'] = function (value, part, attrs, metadata) {
var from = param.from;
var to = param.to;

var paramValue = _this.resolveValue(from, attrs);
var paramValue = _this._resolveValue(from, attrs);

(0, _lodashObjectSet2['default'])(params, to, paramValue);
});

return this.resolveValue(part, params);
return this._resolveValue(part, params);
};

module.exports = exports['default'];
4 changes: 2 additions & 2 deletions dist/filters/plural.js
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,9 @@ exports['default'] = function (value, part, attrs, metadata) {
});

if (option) {
return this.buildText(option.value, attrs, smartValue);
return this._buildText(option.value, attrs, smartValue);
} else if (defaultOption) {
return this.buildText(defaultOption.value, attrs, smartValue);
return this._buildText(defaultOption.value, attrs, smartValue);
}
};

Expand Down
4 changes: 2 additions & 2 deletions dist/filters/select.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,11 @@ exports['default'] = function (value, part, attrs, metadata) {
});

if (option) {
return this.buildText(option.value, attrs, value);
return this._buildText(option.value, attrs, value);
}

if (defaultOption) {
return this.buildText(defaultOption.value, attrs, value);
return this._buildText(defaultOption.value, attrs, value);
}
};

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "translate-maker",
"version": "0.2.37",
"version": "0.2.38",
"description": "Universal translation library",
"main": "dist/index.js",
"keywords": [
Expand Down
11 changes: 6 additions & 5 deletions src/Translate.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ const defaultOptions = {
filters,
};

// TODO add || syntax

export default class Translate extends EventEmitter {
constructor(options = {}, callback = () => {}) {
super();
Expand All @@ -35,9 +37,8 @@ export default class Translate extends EventEmitter {

const { locale, adapter, defaultAdapter: DefaultAdapter } = this._options
if (isPlainObject(adapter)) {
this._options.adapter = new DefaultAdapter({
data: adapter,
});
const newAdapter = this._options.adapter = new DefaultAdapter();
newAdapter.rehydrate(adapter);
}

this._translation = new Translation(this);
Expand Down Expand Up @@ -111,13 +112,13 @@ export default class Translate extends EventEmitter {
if (isPlainObject(path)) {
const translated = {};
forOwn(path, (value, key) => {
translated[key] = this.get(value, attrs, defaultValue);
translated[key] = this.get(value, attrs, defaultValue, value);
});

return translated;
}

return this._translation.get(path, attrs, defaultValue);
return this._translation.get(path, attrs, defaultValue, path);
}

set(name, value) {
Expand Down

0 comments on commit 8033c80

Please sign in to comment.