UNPKG

@dooboostore/simple-boot-http-server-ssr

Version:
68 lines 3.33 kB
import { __awaiter, __decorate } from "tslib"; import { getSim, Sim } from '@dooboostore/simple-boot/decorators/SimDecorator'; import { HttpHeaders } from '@dooboostore/simple-boot-http-server/codes/HttpHeaders'; import { HttpHeaders as SSRHttpHeaders } from '../codes/HttpHeaders'; import { Mimes as SSRMimes } from '../codes/Mimes'; import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils'; import { ConvertUtils } from '@dooboostore/core/convert/ConvertUtils'; let IntentSchemeFrontProxy = class IntentSchemeFrontProxy { get(target, prop) { const t = target[prop]; // TODO: 여기에 추가적인 프로퍼티 작성으 추가적으로 해야된다.. // if (typeof t === 'function') { if (!['constructor', 'onProxyDomRender', 'toString'].includes(prop)) { return (...args) => { var _a, _b, _c; // const simstanceManager = target._SimpleBoot_simstanceManager; const simOption = target._SimpleBoot_simOption; const config = getSim(target); // const scheme = getSim(target)?.scheme; const firstScheme = ConvertUtils.flatArray(config === null || config === void 0 ? void 0 : config.scheme)[0]; const key = firstScheme + '_' + prop; const type = ReflectUtils.getReturnType(target, prop); const isHas = (key in ((_a = simOption.window.server_side_data) !== null && _a !== void 0 ? _a : {})); if (isHas) { const data = (_b = simOption.window.server_side_data) === null || _b === void 0 ? void 0 : _b[key]; (_c = simOption.window.server_side_data) === null || _c === void 0 ? true : delete _c[key]; let rdata; if (type instanceof Promise) { rdata = Promise.resolve(data); } else { rdata = data; } return rdata; } else { return fetch(`/${prop.toString()}`, { method: 'POST', headers: { [HttpHeaders.ContentType]: SSRMimes.ApplicationJsonPostSimpleBootSsrIntentScheme, [SSRHttpHeaders.XSimpleBootSsrIntentScheme]: firstScheme !== null && firstScheme !== void 0 ? firstScheme : '' }, body: JSON.stringify(args[0]) }).then((res) => __awaiter(this, void 0, void 0, function* () { try { const data = yield res.json(); return data; } catch (e) { try { return yield res.text(); } catch (e) { return undefined; } } })); } // return t.apply(target, args); }; } else { return t; } } }; IntentSchemeFrontProxy = __decorate([ Sim ], IntentSchemeFrontProxy); export { IntentSchemeFrontProxy }; //# sourceMappingURL=IntentSchemeFrontProxy.js.map