Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import ilib from 'ilib';
import './dates';
import Loader from './Loader';
import {updateLocale} from '../locale';
ilib.setLoaderCallback(new Loader());
if (typeof window === 'object' && typeof window.UILocale !== 'undefined') {
// this is a hack until GF-1581 is fixed
ilib.setLocale(window.UILocale);
}
// we go ahead and run this once during loading of iLib settings are valid
// during the loads of later libraries.
updateLocale(null, true);
const updateLocale = function (locale) {
// blow away the cache to force it to reload the manifest files for the new app
// eslint-disable-next-line no-undefined
if (ilib._load) ilib._load.manifest = undefined;
// remove the cache of the platform name to allow transition between snapshot and browser
delete ilib._platform;
// load any external ilib/resbundle data
ilib.data = global.ilibData || ilib.data;
ilib.data.cache = ilib.data.cache || {};
ilib.data.cache['ResBundle-strings'] = global.resBundleData || {};
// ilib handles falsy values and automatically uses local locale when encountered which
// is expected and desired
ilib.setLocale(locale);
const newLocale = ilib.getLocale();
// Recreate the case mappers to use the just-recently-set locale
initCaseMappers();
return newLocale;
};