UNPKG

@dark-engine/platform-server

Version:
32 lines (31 loc) 1.06 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); exports.hydrateRoot = void 0; const core_1 = require('@dark-engine/core'); const render_1 = require('../render'); const create_root_1 = require('../create-root'); const utils_1 = require('../utils'); function hydrateRoot(container, element) { const tag = container; (0, render_1.render)(element, tag, hydrate); return { unmount: () => (0, create_root_1.unmount)(tag), }; } exports.hydrateRoot = hydrateRoot; function hydrate() { const element = document.querySelector(`script[type="${core_1.STATE_SCRIPT_TYPE}"]`); if (!element) return; try { const resources = parse(element.textContent); const $scope = (0, core_1.$$scope)(); for (const key of Object.keys(resources)) { $scope.setResource(Number(key), resources[key]); } element.remove(); } catch (error) { (0, utils_1.illegal)(`Can't hydrate app state from the server!`); } } const parse = x => JSON.parse(window.atob(x.replaceAll('"', ''))); //# sourceMappingURL=hydrate-root.js.map