1.1.1 • Published 5 months ago

lingui-swc-plugin v1.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

A SWC Plugin For LinguiJS

A Rust versions of LinguiJS Macro

npm npm GitHub

lingui-swc-plugin

lingui-swc-plugin is modified version of @lingui/swc-pluginin which defineMessage macro returns string instead of MessageDescriptor. (Migration purpose)

Installation

Install plugin:

npm install --save-dev @lingui/swc-plugin@npm:lingui-swc-plugin
# or
yarn add -D @lingui/swc-plugin@npm:lingui-swc-plugin

You still need to install @lingui/macro for typings support:

npm install @lingui/macro@npm:lingui-macro
# or
yarn add @lingui/macro@npm:lingui-macro

Usage

.swcrc https://swc.rs/docs/configuration/swcrc

{
  $schema: "https://json.schemastore.org/swcrc",
  jsc: {
    experimental: {
      plugins: [
        [
          "@lingui/swc-plugin",
          {
            // Optional
            // Unlike the JS version this option must be passed as object only.
            // Docs https://lingui.dev/ref/conf#runtimeconfigmodule
            // "runtimeModules": {
            //   "i18n": ["@lingui/core", "i18n"],
            //   "trans": ["@lingui/react", "Trans"]
            // }
          },
        ],
      ],
    },
  },
}

Or Next JS Usage:

next.config.js

/** @type {import('next').NextConfig} */
const nextConfig = {
  reactStrictMode: true,
  experimental: {
    swcPlugins: [
      [
        "@lingui/swc-plugin",
        {
          // the same options as in .swcrc
        },
      ],
    ],
  },
};

module.exports = nextConfig;

Note Consult with full working example for NextJS in the /examples folder in this repo.

Compatibility

SWC Plugin support is still experimental. They do not guarantee a semver backwards compatibility between different swc-core versions.

So you need to select an appropriate version of the plugin to match compatible swc_core using a https://plugins.swc.rs/.

Note next v13.2.4 ~ v13.3.1 cannot execute SWC Wasm plugins, due to a bug of next-swc.

next v13.4.3 ~ v13.4.5-canary.7 cannot execute SWC Wasm plugins, due to missing filesystem cache.

  • Version 0.1.0 ~ 0.* compatible with @lingui/core@3.*
  • Version 4.* compatible with @lingui/core@4.*
  • Version 5.* compatible with @lingui/core@5.*

License

The project is licensed under the MIT license.

1.1.1

5 months ago

1.1.0

5 months ago

1.0.2

7 months ago

1.0.1

7 months ago

1.0.0

7 months ago