UNPKG

apiful

Version:
50 lines (47 loc) 1.56 kB
export { O as OpenAPIBuilder, a as apiRouterBuilder, o as ofetchBuilder } from './shared/apiful.C9mCKm3O.mjs'; import 'ofetch'; import 'ufo'; import './shared/apiful.Ch57oCg6.mjs'; function createClient(defaultOptions = {}) { const client = () => { }; client.defaultOptions = defaultOptions; client._extensions = /* @__PURE__ */ Object.create(null); client.with = function(createExtension) { const extension = createExtension(this); if (typeof extension === "function") { this._handler = extension; } else { for (const key in extension) { if (Object.prototype.hasOwnProperty.call(extension, key)) { this._extensions[key] = extension[key]; } } } return new Proxy(this, { get(target, prop, receiver) { if (prop in target._extensions) return target._extensions[prop]; if (prop in target) return Reflect.get(target, prop, receiver); return Reflect.get(extension, prop, receiver); }, set(target, prop, value, receiver) { if (prop in target._extensions) { target._extensions[prop] = value; return true; } if (prop in target) return Reflect.set(target, prop, value, receiver); return Reflect.set(extension, prop, value, receiver); }, apply(target, thisArg, args) { if (target._handler) return target._handler(...args); return Reflect.apply(target, thisArg, args); } }); }; return client; } export { createClient };