UNPKG

edge-mock

Version:

types for testing an developer edge applications

70 lines 3.26 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.makeEdgeEnv = exports.EdgeEnv = exports.EdgeKVNamespace = exports.stub_fetch = exports.EdgeReadableStream = exports.EdgeHeaders = exports.EdgeFetchEvent = exports.EdgeResponse = exports.EdgeFormData = exports.EdgeFile = exports.EdgeBlob = exports.EdgeRequest = void 0; const models_1 = require("./models"); Object.defineProperty(exports, "EdgeRequest", { enumerable: true, get: function () { return models_1.EdgeRequest; } }); Object.defineProperty(exports, "EdgeBlob", { enumerable: true, get: function () { return models_1.EdgeBlob; } }); Object.defineProperty(exports, "EdgeFile", { enumerable: true, get: function () { return models_1.EdgeFile; } }); Object.defineProperty(exports, "EdgeFormData", { enumerable: true, get: function () { return models_1.EdgeFormData; } }); Object.defineProperty(exports, "EdgeResponse", { enumerable: true, get: function () { return models_1.EdgeResponse; } }); Object.defineProperty(exports, "EdgeFetchEvent", { enumerable: true, get: function () { return models_1.EdgeFetchEvent; } }); Object.defineProperty(exports, "EdgeHeaders", { enumerable: true, get: function () { return models_1.EdgeHeaders; } }); Object.defineProperty(exports, "EdgeReadableStream", { enumerable: true, get: function () { return models_1.EdgeReadableStream; } }); const stub_fetch_1 = __importDefault(require("./stub_fetch")); exports.stub_fetch = stub_fetch_1.default; var kv_namespace_1 = require("./kv_namespace"); Object.defineProperty(exports, "EdgeKVNamespace", { enumerable: true, get: function () { return kv_namespace_1.EdgeKVNamespace; } }); class EdgeEnv { listener = null; constructor() { this.addEventListener = this.addEventListener.bind(this); this.getListener = this.getListener.bind(this); } getListener() { if (this.listener) { return this.listener; } else { throw new Error('FetchEvent listener not yet added via addEventListener'); } } addEventListener(type, listener) { if (type != 'fetch') { throw new Error(`only "fetch" events are supported, not "${type}"`); } this.listener = listener; } clearEventListener() { this.listener = null; } dispatchEvent(event) { if (this.listener) { this.listener(event); } else { throw new Error('no event listener added'); } } } exports.EdgeEnv = EdgeEnv; const mock_types = { Request: models_1.EdgeRequest, Response: models_1.EdgeResponse, FetchEvent: models_1.EdgeFetchEvent, Headers: models_1.EdgeHeaders, Blob: models_1.EdgeBlob, File: models_1.EdgeFile, FormData: models_1.EdgeFormData, ReadableStream: models_1.EdgeReadableStream, fetch: stub_fetch_1.default, }; function makeEdgeEnv(extra = {}) { const env = new EdgeEnv(); Object.assign(global, mock_types, { addEventListener: env.addEventListener }, extra); return env; } exports.makeEdgeEnv = makeEdgeEnv; //# sourceMappingURL=index.js.map