one
Version:
One is a React framework for web, iOS, and Android apps.
96 lines (93 loc) • 3.19 kB
JavaScript
import { NitroModules } from "react-native-nitro-modules";
import { rethrowNativeError } from "../nativeError.native.js";
import { assertStagedListener, parseUpdateManifest } from "./validate.native.js";
var hybrid;
function native() {
hybrid !== null && hybrid !== void 0 ? hybrid : hybrid = NitroModules.createHybridObject("OneUpdates");
return hybrid;
}
var hasNative = NitroModules.hasHybridObject("OneUpdates");
function disabledError(verb) {
return Object.assign(new Error(`Updates.${verb}: updates are disabled in this build.`), { code: "E_UPDATES_DISABLED" });
}
function toCheckResult(param) {
var { type, manifestJson } = param;
if (type === "available" && manifestJson !== void 0) return {
type,
manifest: parseUpdateManifest(manifestJson)
};
if (type === "available") throw new Error("Updates.check: available without a manifest");
return { type };
}
function toFetchResult(param) {
var { type, manifestJson } = param;
if (type === "fetched" && manifestJson !== void 0) return {
type,
manifest: parseUpdateManifest(manifestJson)
};
if (type === "fetched") throw new Error("Updates.fetch: fetched without a manifest");
return { type };
}
function check() {
if (!hasNative) return Promise.reject(disabledError("check"));
return native().check().then(toCheckResult, rethrowNativeError);
}
function fetch() {
if (!hasNative) return Promise.reject(disabledError("fetch"));
return native().fetch().then(toFetchResult, rethrowNativeError);
}
function getStaged() {
if (!hasNative) return null;
var stagedJson = native().getStagedJson();
return stagedJson === void 0 ? null : parseUpdateManifest(stagedJson);
}
function addStagedListener(listener) {
assertStagedListener(listener);
if (!hasNative) return { remove: function remove2() {} };
var remove = native().addStagedListener(function(stagedJson) {
listener(stagedJson === void 0 ? null : parseUpdateManifest(stagedJson));
});
return { remove: function remove1() {
return remove();
} };
}
function reload() {
if (!hasNative) return Promise.reject(disabledError("reload"));
return native().reload().catch(rethrowNativeError);
}
function readUpdates() {
var _running_runtimeVersion, _running_updateId;
if (!hasNative) {
return {
isEnabled: false,
runtimeVersion: null,
updateId: null,
isEmbeddedLaunch: false,
createdAt: null,
manifest: null,
check,
fetch,
getStaged,
addStagedListener,
reload
};
}
var running = native();
var createdAt = running.createdAt;
return {
isEnabled: running.isEnabled,
runtimeVersion: (_running_runtimeVersion = running.runtimeVersion) !== null && _running_runtimeVersion !== void 0 ? _running_runtimeVersion : null,
updateId: (_running_updateId = running.updateId) !== null && _running_updateId !== void 0 ? _running_updateId : null,
isEmbeddedLaunch: running.isEmbeddedLaunch,
createdAt: createdAt === void 0 ? null : new Date(createdAt),
manifest: running.manifestJson === void 0 ? null : parseUpdateManifest(running.manifestJson),
check,
fetch,
getStaged,
addStagedListener,
reload
};
}
var Updates = Object.freeze(readUpdates());
export { Updates };
//# sourceMappingURL=index.native.js.map