language-object
Installation
npm install --save @ambassify/language-object
Usage
This package expose a parse-js parser, a method to test for multilingual objects and a method to cast objects.
parser
For more info on parse-js see the documentation.
Example:
const parser = require('@ambassify/language-object/parser');
parse.register('languageObject', require())
parse().json().languageObject().parse({
nl: 'hallo',
en: 'hello'
});
Returns
{
__type: 'multilingual',
nl: 'hallo',
en: 'hello'
}
isMultilingual
isMultilingual will check if the __type
property equals multilingual
if set.
- If the
__type
property is set, but does not equal multilingual
it will return false
. - If the
__type
property is undefined this method will check whether the only enumerable properties
are valid languages as supplied by the second argument to isMultilingual
. - If
__type
is missing and languages
is not set or empty it will always return false
.
isMultilingual(languageObject, [languages])
Example:
const isMultilingual = require('@ambassify/language-object/ismultilingual');
const obj = {
nl: 'hallo',
en: 'hello'
};
isMultilingual(obj, ['en','nl']);
isMultilingual(obj, ['en']);
cast
Casts language-object to include __type
and valid language keys.
Unless force
is set to true
, it uses isMultilingual
to validate objects first, if an object is not valid it will return null
.
cast(languageObject, [languages], [force=false])
Example:
const cast = require('@ambassify/language-object/cast');
const obj = {
nl: 'hallo',
en: 'hello'
};
cast(obj, ['en','nl']);
Returns
{
__type: 'multilingual',
nl: 'hallo',
en: 'hello'
}