@gasket/plugin-intl
Version:
NodeJS script to build localization files.
57 lines (56 loc) • 2.08 kB
JavaScript
/// <reference types="create-gasket-app" />
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, /** @type {import('@gasket/core').HookHandler<'create'>} */ "default", {
enumerable: true,
get: function() {
return create;
}
});
const _url = require("url");
const _packagejson = /*#__PURE__*/ _interop_require_default(require("../package.json"));
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
const { devDependencies, name, version } = _packagejson.default;
async function create(gasket, createContext) {
if (createContext.hasGasketIntl === false) {
return;
}
// adjust config
gasket.config.intl.locales = [
'en-US',
'fr-FR'
];
gasket.config.intl.managerFilename = 'intl.js';
gasket.config.intl.nextRouting = false;
if (createContext.typescript) gasket.config.intl.managerFilename = 'intl.ts';
const { files, pkg, gasketConfig } = createContext;
const fileName = (0, _url.fileURLToPath)(require("url").pathToFileURL(__filename).toString());
const rootDir = new URL('..', (0, _url.pathToFileURL)(fileName).toString()).pathname;
const isReactProject = pkg.has('dependencies', 'react');
files.add(`${rootDir}/generator/*`, `${rootDir}/generator/**/*`);
gasketConfig.addPlugin('pluginIntl', name);
const initialConfig = {
locales: gasket.config.intl.locales,
nextRouting: gasket.config.intl.nextRouting
};
if (createContext.typescript) {
initialConfig.defaultLocale = 'en-US';
initialConfig.managerFilename = gasket.config.intl.managerFilename;
}
gasketConfig.add('intl', initialConfig);
pkg.add('dependencies', {
[name]: `^${version}`
});
if (isReactProject) {
pkg.add('dependencies', {
'@gasket/intl': devDependencies['@gasket/intl'],
'@gasket/react-intl': devDependencies['@gasket/react-intl'],
'react-intl': devDependencies['react-intl']
});
}
}