mirror of
https://github.com/streetwriters/notesnook.git
synced 2026-02-24 04:00:59 +01:00
mobile: lazy load globals on first access
This commit is contained in:
@@ -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 */
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user