mirror of
https://github.com/elyby/accounts-frontend.git
synced 2024-12-05 04:59:26 +05:30
38 lines
967 B
JavaScript
38 lines
967 B
JavaScript
function transform(src, modulePath, rootContext) {
|
|
const json = JSON.parse(src);
|
|
|
|
const moduleId = modulePath
|
|
.replace(rootContext, '')
|
|
// TODO: can't find the way to strip out this path part programmatically
|
|
// this is a directory from resolve.modules config
|
|
// may be this may work: .replace(this._compiler.options.resolve.root, '')
|
|
.replace('src/', '')
|
|
.replace(/^\/|\/$/g, '')
|
|
.replace(/\//g, '.');
|
|
|
|
return JSON.stringify(
|
|
Object.keys(json).reduce(
|
|
(translations, key) => ({
|
|
...translations,
|
|
[key]: {
|
|
id: `${moduleId}.${key}`,
|
|
defaultMessage: json[key],
|
|
},
|
|
}),
|
|
{},
|
|
),
|
|
);
|
|
}
|
|
|
|
module.exports = function(content) {
|
|
this.cacheable && this.cacheable();
|
|
|
|
content = transform(content, this.context, this.rootContext);
|
|
|
|
return `import { defineMessages } from 'react-intl';
|
|
|
|
export default defineMessages(${content})`;
|
|
};
|
|
|
|
module.exports.transform = transform;
|