Socket
Socket
Sign inDemoInstall

@ambassify/language-object

Package Overview
Dependencies
0
Maintainers
3
Versions
15
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @ambassify/language-object

Detection and conversion library for language objects.


Version published
Weekly downloads
33
increased by106.25%
Maintainers
3
Install size
25.0 kB
Created
Weekly downloads
 

Readme

Source

language-object

CircleCI

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']); // true
isMultilingual(obj, ['en']); // false

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'
}

translate

Takes in an object an selects only the language key that you would like to have selected.

cast(sourceObject, [selectLanguage], [availableLanguages])

Example:

const cast = require('@ambassify/language-object/translate');

const obj = {
    hi_nl: 'hallo',
    hi_en: 'hello',
    nested: {
        regular: 'key',
        value_nl: 'in dutch',
        value_en: 'in english'
    }
};

translate(obj, 'en', ['en','nl']);

Returns

{
    hi: 'hello',
    nested: {
        regular: 'key',
        value: 'in english'
    }
}

FAQs

Last updated on 06 Aug 2020

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc