New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

@umatch/language

Package Overview
Dependencies
Maintainers
0
Versions
38
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@umatch/language

Simple internationalization framework

latest
Source
npmnpm
Version
4.4.2
Version published
Weekly downloads
76
-20%
Maintainers
0
Weekly downloads
 
Created
Source

Language

Simple internationalization framework

Check out tests/language.test.ts for an in-depth example of how to use this library.

The 'deepReplace' function

Replaces all occurrences of {{ value }} in all strings inside target object (which may be nested) with the corresponding value in the replacements object (dictionary).

Throws an error if an entry is not in the dictionary. This can be avoided by whitelisting specific keys, or all of them, via the allowedLeftovers parameter.

Automatically chooses between the "zero", "one" or "many" options for an entry If the entry only has keys with those names and the dictionary has a count property that is a number. Example:

const obj = {
  one: 'You have a new match, {{ name }}!',
  many: 'You have {{ count }} new matches, {{ name }}!',
};
// returns 'You have a new match, Bob!'
deepReplace(obj, { name: 'Bob', count: 1 });
// returns 'You have 2 new matches, Bob!'
deepReplace(obj, { name: 'Bob', count: 2 });

If the entry equivalent to the count missing, throws an error. For example:

// throws "Missing translation for count 'zero'"
deepReplace(obj, { name: 'Bob', count: 0 });

Finally, if not all keys in the target are "zero", "one" or "many", behaves normally.

const obj2 = {
  one: 'You have a new match, {{ name }}!',
  many: 'You have {{ count }} new matches, {{ name }}!',
  too_many: 'WOW! You have over 9000 new matches, {{ name }}!',
};
// returns {
//     one: "You have a new match, Bob!",
//     many: "You have 0 new matches, Bob!",
//     too_many: "WOW! You have over 9000 new matches, Bob!"
// }
deepReplace(obj2, { name: 'Bob', count: 0 });

FAQs

Package last updated on 12 Sep 2024

Did you know?

Socket

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