Skip to content

Instantly share code, notes, and snippets.

@studentIvan
Created April 14, 2020 16:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save studentIvan/509db912940d9cef3045f73f3540cf36 to your computer and use it in GitHub Desktop.
Save studentIvan/509db912940d9cef3045f73f3540cf36 to your computer and use it in GitHub Desktop.
/* eslint-disable */
var loaderUtils = require('loader-utils');
/**
* getLocalIdent function for preact-css-modules
* do (null, null, className) for manual use
*/
var getLocalIdent = (context, localIdentName, localName, options) => {
var result = localName;
/** exclude some classNames */
var cnstClasses = ['animated', 'fadeIn', 'fadeInDown', 'fadeInLeft', 'fadeInRight', 'fadeInUp',
'fadeOut', 'fadeOutDown', 'fadeOutLeft', 'slideInDown', 'slideInLeft', 'slideInRight', 'flash',
'slideInUp', 'slideOutDown', 'slideOutLeft', 'slideOutRight', 'slideOutUp',
'heading', 'time', 'date', 'icon', 'content', 'comment', 'text', 'hashtags', 'actions', 'sizes',
'fitanalytics__button-text', 'button', 'image', 'author', 'username', 'bold', 'icon-comment',
'ellipsis', 'no-js', 'lazy', 'montec'
];
var countriesClasses = ['at','ca','de','eu','fi','fr','it','no','se','uk','us','ch','nl','es','da','dk','pl','be','be-fr', 'rs-flag'];
var exludedClasses = cnstClasses.concat(countriesClasses);
var isLegal = exludedClasses.indexOf(result) !== -1;
var isUserCommunication = result.indexOf('lc-') !== -1;
var isRSFont = result.indexOf('clothes-') !== -1;
var isVirtualized = result.indexOf('ReactVirtualized__') !== -1;
var isDropdown = result.indexOf('Dropdown-') !== -1;
if (!isDropdown && !isUserCommunication && !isRSFont && !isVirtualized && !isLegal) {
var digestString = loaderUtils.getHashDigest(Buffer.from(localName, 'utf8'), 'sha512', 'base64', 4);
if (/[0-9]/.test(digestString[0])) {
var fixedChar = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k'][+digestString[0]];
digestString = fixedChar + digestString.substr(1);
}
var PRODUCTION_MODE = process.env.NODE_ENV !== 'development' && process.env.NODE_ENV !== 'test';
result = !PRODUCTION_MODE ? localName : `${ digestString }`;
}
return result;
};
module.exports = getLocalIdent;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment