use-macro
Version:
ESBuild plugin that allows you to execute functions at compile time and inline the output
50 lines • 4.58 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
import * as devalue from 'devalue';
export function stringify(value) {
return __awaiter(this, void 0, void 0, function* () {
if (value instanceof Response) {
const buf = devalue.uneval(yield value.arrayBuffer());
return `new Response(${buf}, {
status: ${devalue.uneval(value.status)},
statusText: ${devalue.uneval(value.statusText)},
headers: ${devalue.uneval([...value.headers.entries()])},
})`;
}
if (value instanceof Request) {
return `new Request(${devalue.uneval(value.url)}, {
method: ${devalue.uneval(value.method)},
headers: ${devalue.uneval([...value.headers.entries()])},
body: ${devalue.uneval(yield value.text())},
})`;
}
if (value instanceof Promise) {
return `Promise.resolve(${devalue.uneval(yield value)})`;
}
return devalue.uneval(value, (value) => {
if (value instanceof URL) {
return `new URL(${devalue.uneval(value.href)})`;
}
if (value instanceof URLSearchParams) {
return `new URLSearchParams(${devalue.uneval([...value.entries()])})`;
}
if (Buffer.isBuffer(value)) {
return `Buffer.from(${devalue.uneval(new Uint8Array(value))})`;
}
if (value instanceof Headers) {
return `new Headers(${devalue.uneval([...value.entries()])})`;
}
if (value instanceof FormData) {
return `new FormData(${devalue.uneval([...value.entries()])})`;
}
});
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5naWZ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3N0cmluZ2lmeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLFNBQVMsQ0FBQztBQUVuQyxNQUFNLFVBQWdCLFNBQVMsQ0FBQyxLQUFjOztRQUM1QyxJQUFJLEtBQUssWUFBWSxRQUFRLEVBQUUsQ0FBQztZQUM5QixNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDdEQsT0FBTyxnQkFBZ0IsR0FBRztnQkFDZCxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7b0JBQ3hCLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztpQkFDbkMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO09BQ3RELENBQUM7UUFDTixDQUFDO1FBRUQsSUFBSSxLQUFLLFlBQVksT0FBTyxFQUFFLENBQUM7WUFDN0IsT0FBTyxlQUFlLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztnQkFDbkMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO2lCQUMzQixPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7Y0FDL0MsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztPQUN6QyxDQUFDO1FBQ04sQ0FBQztRQUVELElBQUksS0FBSyxZQUFZLE9BQU8sRUFBRSxDQUFDO1lBQzdCLE9BQU8sbUJBQW1CLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQzNELENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDckMsSUFBSSxLQUFLLFlBQVksR0FBRyxFQUFFLENBQUM7Z0JBQ3pCLE9BQU8sV0FBVyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ2xELENBQUM7WUFFRCxJQUFJLEtBQUssWUFBWSxlQUFlLEVBQUUsQ0FBQztnQkFDckMsT0FBTyx1QkFBdUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ3hFLENBQUM7WUFFRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDM0IsT0FBTyxlQUFlLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ2pFLENBQUM7WUFFRCxJQUFJLEtBQUssWUFBWSxPQUFPLEVBQUUsQ0FBQztnQkFDN0IsT0FBTyxlQUFlLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUNoRSxDQUFDO1lBRUQsSUFBSSxLQUFLLFlBQVksUUFBUSxFQUFFLENBQUM7Z0JBQzlCLE9BQU8sZ0JBQWdCLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUNqRSxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQUEifQ==