mobile: lazy load globals on first access

This commit is contained in:
Ammar Ahmed
2025-11-24 09:58:50 +05:00
parent fddd0acf3a
commit d1a78c5d02

View File

@@ -5,40 +5,61 @@ import "@formatjs/intl-pluralrules/polyfill-force";
import "@formatjs/intl-pluralrules/locale-data/en";
import "react-native-url-polyfill/auto";
import "./polyfills/console-time.js";
global.Buffer = require("buffer").Buffer;
import "./app/common/logger/index";
import { DOMParser } from "./worker.js";
global.DOMParser = DOMParser;
import { setI18nGlobal } from "@notesnook/intl";
import { i18n } from "@lingui/core";
import { ScriptManager, Script } from "@callstack/repack/client";
import { messages as $en } from "@notesnook/intl/dist/locales/$en.json";
import { messages as $pseudo } from "@notesnook/intl/dist/locales/$pseudo-LOCALE.json";
import Config from "react-native-config";
i18n.load({
en: __DEV__ && Config.isTesting !== "true" ? $pseudo : $en
let domParser;
Object.defineProperty(global, "DOMParser", {
get: () => {
if (!domParser) domParser = require("./worker.js");
return domParser.DOMParser;
}
});
setI18nGlobal(i18n);
let buffer;
Object.defineProperty(global, "Buffer", {
get: () => {
if (!buffer) buffer = require("buffer");
return buffer.Buffer;
}
});
if (__DEV__ && Config.isTesting !== "true") {
const messages =
require("@notesnook/intl/dist/locales/$pseudo-LOCALE.json").messages;
i18n.load({
en: messages
});
} else {
const messages = require("@notesnook/intl/dist/locales/$en.json").messages;
i18n.load({
en: messages
});
}
i18n.activate("en");
setI18nGlobal(i18n);
try {
ScriptManager.shared.addResolver(async (scriptId) => {
// `scriptId` will be either 'student' or 'teacher'
if (__DEV__) {
try {
const { ScriptManager, Script } = require("@callstack/repack/client");
ScriptManager.shared.addResolver(async (scriptId) => {
// `scriptId` will be either 'student' or 'teacher'
// In dev mode, resolve script location to dev server.
if (__DEV__) {
return {
url: Script.getDevServerURL(scriptId),
cache: false
};
}
// In dev mode, resolve script location to dev server.
if (__DEV__) {
return {
url: Script.getDevServerURL(scriptId),
cache: false
url: Script.getFileSystemURL(scriptId)
};
}
return {
url: Script.getFileSystemURL(scriptId)
};
});
} catch (e) {
/** ignore error when running with metro bundler */
});
} catch (e) {
/** ignore error when running with metro bundler */
}
}