UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

107 lines (104 loc) • 3.69 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var validate_exports = {}; __export(validate_exports, { assertStagedListener: () => assertStagedListener, parseUpdateManifest: () => parseUpdateManifest }); module.exports = __toCommonJS(validate_exports); function isRecord(value) { return typeof value === "object" && value !== null && !Array.isArray(value); } function isAsset(value) { return isRecord(value) && typeof value.hash === "string" && typeof value.url === "string" && typeof value.path === "string"; } function isMetadataValue(value) { var type = typeof value; return type === "string" || type === "number" || type === "boolean"; } function parseUpdateManifest(json) { var parsed; try { parsed = JSON.parse(json); } catch (unused) { throw new Error("Updates: received a manifest that is not valid json."); } if (!isRecord(parsed) || typeof parsed.id !== "string" || typeof parsed.createdAt !== "string" || typeof parsed.runtimeVersion !== "string" || !isAsset(parsed.launchAsset) || !Array.isArray(parsed.assets) || !parsed.assets.every(isAsset) || !isRecord(parsed.metadata) || !Object.values(parsed.metadata).every(isMetadataValue) || Number.isNaN(Date.parse(parsed.createdAt))) { throw new Error("Updates: received a manifest with an unexpected shape."); } var assets = []; var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0; try { for (var _iterator = parsed.assets[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var asset = _step.value; if (isAsset(asset)) assets.push(asset); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } var metadata = {}; var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0; try { for (var _iterator1 = Object.entries(parsed.metadata)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) { var [key, value] = _step1.value; if (isMetadataValue(value)) metadata[key] = value; } } catch (err) { _didIteratorError1 = true; _iteratorError1 = err; } finally { try { if (!_iteratorNormalCompletion1 && _iterator1.return != null) { _iterator1.return(); } } finally { if (_didIteratorError1) { throw _iteratorError1; } } } return { id: parsed.id, createdAt: parsed.createdAt, runtimeVersion: parsed.runtimeVersion, launchAsset: parsed.launchAsset, assets, metadata }; } function assertStagedListener(listener) { if (typeof listener !== "function") { throw new Error("Updates.addStagedListener: listener must be a function."); } } //# sourceMappingURL=validate.native.js.map