@itwin/core-backend
Version:
iTwin.js backend components
49 lines • 1.93 kB
JavaScript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
* See LICENSE.md in the project root for license terms and full copyright notice.
*--------------------------------------------------------------------------------------------*/
/** @packageDocumentation
* @module IModelHost
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.IModelNative = void 0;
exports.loadNativePlatform = loadNativePlatform;
exports.overrideSyncNativeLogLevels = overrideSyncNativeLogLevels;
const imodeljs_native_1 = require("@bentley/imodeljs-native");
const core_bentley_1 = require("@itwin/core-bentley");
let nativePlatform;
let syncNativeLogLevelsOverride;
function syncNativeLogLevels() {
if (syncNativeLogLevelsOverride) {
syncNativeLogLevelsOverride();
}
else {
nativePlatform?.clearLogLevelCache();
}
}
/** Provides access to the internal APIs defined in @bentley/imodeljs-native.
* @internal
*/
class IModelNative {
static get platform() {
if (undefined === nativePlatform) {
throw new Error("IModelHost.startup must be called first");
}
return nativePlatform;
}
}
exports.IModelNative = IModelNative;
/** @internal Strictly to be called by IModelHost.startup. */
function loadNativePlatform() {
if (undefined === nativePlatform) {
nativePlatform = core_bentley_1.ProcessDetector.isMobileAppBackend ? process._linkedBinding("iModelJsNative") : imodeljs_native_1.NativeLibrary.load();
nativePlatform.logger = core_bentley_1.Logger;
core_bentley_1.Logger.onLogLevelChanged.addListener(() => syncNativeLogLevels());
}
}
/** @internal Strictly for tests. */
function overrideSyncNativeLogLevels(func) {
syncNativeLogLevelsOverride = func;
}
//# sourceMappingURL=NativePlatform.js.map
;