@cliz/inlets
Version:
Cloud Native Tunnel
51 lines (50 loc) • 1.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ProcessClientData = exports.ProcessServerData = void 0;
const compose_1 = require("@zodash/compose");
const enc = require("./enc");
const compression = require("./compression");
const secret = '3c236430ea0dec64b7a279e7d7fa017f';
const _enc = {
encrypt: async (data) => enc.encrypt(secret, data),
decrypt: async (data) => enc.decrypt(secret, data),
};
const pipe = (...fns) => {
return async (data) => {
const ctx = {
data,
};
const _fns = fns.map(fn => {
return async (ctx, next) => {
ctx.data = await fn(ctx.data);
return next();
};
});
await (0, compose_1.compose)(..._fns)(ctx);
return ctx.data;
};
};
class ProcessServerData {
async request(data) {
return pipe(compression.compress)(data);
}
async onResponse(data) {
return pipe(compression.decompress)(data);
}
}
exports.ProcessServerData = ProcessServerData;
class ProcessClientData {
async onRequest(data) {
return pipe(compression.decompress)(data);
}
async response(data) {
return pipe(compression.compress)(data);
}
}
exports.ProcessClientData = ProcessClientData;
const server = new ProcessServerData();
const client = new ProcessClientData();
exports.default = {
server,
client,
};