@allthings/react-intl-extract-messages

Extracts all `react-intl` related messages in typescript based projects.

Usage no npm install needed!

<script type="module">
  import allthingsReactIntlExtractMessages from 'https://cdn.skypack.dev/@allthings/react-intl-extract-messages';
</script>

README

Build Status

react-intl-extract-messages

Extracts all react-intl related messages in typescript based projects.

Install

yarn add @allthings/react-intl-extract-messages

Usage

API

extractMessages(tsconfigFile[, options])

Returns an array of messages gathered by @allthings/babel-plugin-react-intl.

tsconfigFile

Type: string

Can be absolute or relative path to the tsconfig file, all information how to build the project is taken from there.

options

Type: object

An object of options which is handed over to @allthings/babel-plugin-react-intl

// <projectRoot>/bin/extract-messages.js:
import extractMessages from '@allthings/react-intl-extract-messages'

const messages = extractMessages('../tsconfig.json')

console.log(messages)

// [
//   {
//     id: 'authorized-clients-list.revoke',
//     description: 'Revoke',
//     defaultMessage: 'Revoke',
//   },
//   {
//     id: 'authorized-clients-list.terms-of-use',
//     description: 'Terms of use',
//     defaultMessage: 'Terms of use',
//   },
//   // ...
// ]

CLI

react-intl-extract-messages --tsconfig tsconfig.json --out messages.json --options-file opts.json

If --out is omitted, the output will be written to stdout.

How

Bascially it uses typescript to compile all the files to JS and then uses @allthings/babel-plugin-react-intl to extract the messages.

Tests

Run tests with yarn run test.

This will extract messages from a fixture project and check it against a snapshot.