UNPKG

phecda-server

Version:

server framework that provide IOC/type-reuse/http&rpc-adaptor

73 lines (65 loc) 2.99 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } var _chunkSKGOTR4Tjs = require('./chunk-SKGOTR4T.js'); var _chunkLLF55NZPjs = require('./chunk-LLF55NZP.js'); // src/test.ts var _phecdacore = require('phecda-core'); async function TestFactory(...Modules) { const { moduleMap, modelMap } = await _chunkSKGOTR4Tjs.Factory.call(void 0, Modules); return { get(Model) { const tag = _phecdacore.getTag.call(void 0, Model); const module = moduleMap.get(tag); if (!module) throw new Error(`module "${String(tag)}" doesn't exist`); if (modelMap.get(module) !== Model) throw new Error(`module "${Model.name}" and "${String(tag)}" in modulemap are different modules`); return module; } }; } _chunkLLF55NZPjs.__name.call(void 0, TestFactory, "TestFactory"); async function TestHttp(app, { moduleMap, meta }, isAgent = true) { const { default: request, agent } = await Promise.resolve().then(() => _interopRequireWildcard(require("supertest"))); const Agent = agent(app); function module(Module) { const tag = _phecdacore.getTag.call(void 0, Module); const module2 = moduleMap.get(tag); if (!module2) throw new Error(`module "${String(tag)}" doesn't exist`); return new Proxy({}, { get(_target, p) { const { data } = meta.find(({ data: data2 }) => data2.name === Module.name && data2.method === p && data2.tag === tag); return (...args) => { const ret = { body: {}, headers: {}, query: {}, method: data.http.method, url: data.http.prefix + data.http.route }; data.params.forEach((item) => { if (item.type === "params") { ret.url = ret.url.replace(`:${item.key}`, args[item.index]); return; } if (item.type === "query") { ret.query[item.key] = args[item.index]; return; } if (item.key) ret[item.type][item.key] = args[item.index]; else ret[item.type] = args[item.index]; }); let agent2 = (isAgent ? Agent : request(app))[ret.method](ret.url); if (Object.keys(ret.query).length > 0) agent2 = agent2.query(ret.query); if (Object.keys(ret.headers).length > 0) agent2 = agent2.set(ret.headers); if (Object.keys(ret.body).length > 0) agent2 = agent2.send(ret.body); return agent2; }; } }); } _chunkLLF55NZPjs.__name.call(void 0, module, "module"); return { module, agent }; } _chunkLLF55NZPjs.__name.call(void 0, TestHttp, "TestHttp"); exports.TestFactory = TestFactory; exports.TestHttp = TestHttp;