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 withyarn run test
.This will extract messages from a fixture project and check it against a snapshot.