2.0.1 • Published 5 years ago
react-intl-auto-id-ppx v2.0.1
react-intl-auto-id-ppx
Reason/OCaml PPX generating ReactIntl id (short MD5) from defaultMessage.
This package provides also bindings overrides from bs-react-intl.
Example
Input:
// Demo.re
open ReactIntl;
module Msg = {
[@intl.messages];
let hello = {defaultMessage: "Hello"};
};
[@react.component]
let make = () => {
<FormattedMessage defaultMessage="Some default message" />;
};Output:
// Demo.bs.js
// Generated by BUCKLESCRIPT, PLEASE EDIT WITH CARE
'use strict'
var React = require('react')
var ReactIntl = require('react-intl')
var Msg = {
hello: {
id: '_8b1a9953',
defaultMessage: 'Hello',
},
}
function Demo(Props) {
return React.createElement(ReactIntl.FormattedMessage, {
id: '_0beb880a',
defaultMessage: 'Some default message',
})
}
var make = Demo
exports.Msg = Msg
exports.make = makeInstallation
With yarn or npm on Bucklescript projects
Install the PPX with yarn or npm
yarn add --dev react-intl-auto-id-ppx
# Or
npm install --dev react-intl-auto-id-ppxAnd add the PPX in your bsconfig.json file:
{
"ppx-flags": ["react-intl-auto-id-ppx/react-intl-auto-id-ppx"]
}Developing
After cloning the repository, you should run both esy and yarn to install
dependencies. react-intl-auto-id-ppx uses esy for managing the important dependencies,
and yarn is used solely for pre-commit linting/formatting of Reason files.
Relevant commands
esy build-> Builds the projectesy watch-> Watches for changes to Reason/OCaml files in the entire project, including in the/testdirectoryesy test_native-> Runs the native tests (intest/native)esy test_bs-> Runs the BuckleScript tests (intest/bucklescript)
Releasing
- Bump the version of the ppx in
esy.jsononmaster(we use semantic versioning) - Create and push a new tag
$ git checkout master
$ git tag vx.y.z
$ git push origin vx.y.z- Create detailed release notes for the new version, following the
Added/Changed/Fixed/Removedformat. Note that the new version of the PPX will automatically be pushed to NPM and a release will be created on GitHub.