minimize-webext-i18n-json

2.0.2 • Public • Published

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

Package Sidebar

Install

npm i minimize-webext-i18n-json

Weekly Downloads

2

Version

2.0.2

License

GPL-3.0-or-later

Unpacked Size

51.1 kB

Total Files

8

Last publish

Collaborators

  • wofwca