2.0.2 ā€¢ Published 2 years ago

minimize-webext-i18n-json v2.0.2

Weekly downloads
-
License
GPL-3.0-or-later
Repository
github
Last release
2 years ago

minimize-webext-i18n-json

šŸ—œ Minimize browser extensions' _locales/*/messages.json files. Remove "description", "example", spaces, inline placeholders.

Example

Input:

{
  "hello": {
    "message": "Hello, $NAME$!",
    "description": "Greeting",
    "placeholders": {
      "NAME": {
        "content": "dear $1",
        "example": "dear World"
      }
    }
  }
}

Output:

{"hello":{"message":"Hello, dear $1!"}}

Usage

With a build script

Either

  • const { minimizeDirectory } = require('minimize-webext-i18n-json');
      // ...
      // After you've put `_locales` in `dist`:
      await minimizeDirectory('_locales');
  • Or:

    const { minimizeJsonString } = require('minimize-webext-i18n-json');
      // ...
      // for each `messages.json` file.
      const minimizedFileContentString = minimizeJsonString(fileContentString);
    
      // or
      // const { minimizeObject } = require('minimize-webext-i18n-json');
      // const object = JSON.parse(fileContentString);
      // minimizeObject(object);
      // const minimizedFileContentString = JSON.stringify(object);

I don't use a build script

  1. Make sure you have no uncommitted changes in _locales.
  2. Run npx minimize-webext-i18n-json _locales.
  3. Run git checkout -- _locales to revert the changes.

Webpack

If you're using copy-webpack-plugin for your _locales files, just add the transform key:

new CopyPlugin({
  patterns: [
    {
      from: '_locales/*/messages.json',
      transform: (content) => minimizeWebextI18nJson(content),

Unsafe minimizations

They're off by default. These currently include placeholder inlining and placeholder name shortening. As the name implies, they're not safe. See the functions' docstrings for more info.

To enable these, pass { unsafe: true } as the second argument:

minimizeDirectory('_locales', { unsafe: true })

For CLI, pass unsafe as the second argument (ordering matters):

npx minimize-webext-i18n-json _locales unsafe

GPLv3 Logo