generator-jhipster-cookie-consent
Version:
Generate Cookie Consent Popup for your JHipster app
44 lines (37 loc) • 1.88 kB
JavaScript
// const _ = require('lodash');
const jhipsterConstants = require('generator-jhipster/generators/generator-constants');
module.exports = {
write
};
function write(generator) {
const jhipsterConfig = generator.jhipsterConfig;
generator.enableTranslation = jhipsterConfig.enableTranslation;
const templateDir = '../templates/react/cookie-consent';
const webappDir = jhipsterConstants.CLIENT_MAIN_SRC_DIR;
// add required dependencies to package.json
generator.addNpmDependency('react-cookie-consent', '8.0.1');
// update app.tsx
const appTsx = `${webappDir}app/app.tsx`;
const importAppCookieConsent = 'import AppCookieConsent from \'app/shared/cookie-consent/cookie-consent\';\nimport AppRoutes';
generator.replaceContent(appTsx, 'import AppRoutes', importAppCookieConsent);
const appCookieConsent = '<Footer />\n <AppCookieConsent />';
generator.replaceContent(appTsx, '<Footer />', appCookieConsent);
// add cookie-consent.tsx
const templateFile = generator.enableTranslation ? 'cookie-consent-i18n.tsx.ejs' : 'cookie-consent.tsx.ejs';
generator.template(
`${templateDir}/src/main/webapp/app/shared/cookie-consent/${templateFile}`,
`${webappDir}app/shared/cookie-consent/cookie-consent.tsx`
);
// add i18n COOKIE-CONSENT JSON
if (generator.enableTranslation) {
const allInstalledLanguages = generator.getAllInstalledLanguages();
allInstalledLanguages
.forEach((language) => {
generator.currentLanguagePrefix = language === jhipsterConfig.nativeLanguage ? '' : `[${language}] `;
generator.template(
`${templateDir}/src/main/webapp/i18n/lang/cookie-consent.json.ejs`,
`${webappDir}i18n/${language}/cookie-consent.json`
);
}, generator);
}
}