@riddance/host 0.0.11 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/host/reflect.js CHANGED
@@ -1,58 +1,58 @@
1
- import { readdir, readFile } from 'node:fs/promises';
2
- import { basename, extname, join, resolve } from 'node:path';
3
- import { pathToFileURL } from 'node:url';
4
- export function resolveCpu(config, supported) {
5
- const resolved = resolveSupported(config.cpus, supported);
6
- if (!resolved) {
7
- // resolve<T>(config, supported) actually asserts config is (T | `!${T}`)[], but that's not supported yet.
8
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
9
- throw new Error('Unsupported CPUs: ' + config.cpus.join(', '));
10
- }
11
- return resolved;
12
- }
13
- export function resolveOS(config, supported) {
14
- const resolved = resolveSupported(config.os, supported);
15
- if (!resolved) {
16
- // resolve<T>(config, supported) actually asserts config is (T | `!${T}`)[], but that's not supported yet.
17
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
18
- throw new Error('Unsupported operating systems: ' + config.os.join(', '));
19
- }
20
- return resolved;
21
- }
22
- function resolveSupported(config, supported) {
23
- if (!config) {
24
- return supported[0];
25
- }
26
- return supported.find(s => config.includes(s) && !config.includes(`!${s}`));
27
- }
28
- export async function reflect(path) {
29
- const packageJson = await readConfig();
30
- const absolutePath = resolve(process.cwd(), path);
31
- const files = (await readdir(absolutePath)).filter(file => extname(file) === '.ts' && !file.endsWith('.d.ts'));
32
- const { getHandlers, setMeta } = (await import(pathToFileURL(join(absolutePath, 'node_modules/@riddance/host/host/registry.js')).toString()));
33
- for (const file of files) {
34
- const base = basename(file, '.ts');
35
- setMeta(packageJson.name, base, undefined, packageJson.config);
36
- await import(pathToFileURL(join(absolutePath, base + '.js')).toString());
37
- }
38
- return {
39
- name: packageJson.name,
40
- http: getHandlers('http').map(h => ({
41
- config: {
42
- ...h.config,
43
- cpus: packageJson.cpu,
44
- os: packageJson.os,
45
- nodeVersion: packageJson.engines?.node,
46
- },
47
- name: h.meta?.fileName ?? '',
48
- method: h.method,
49
- pathPattern: h.pathPattern,
50
- pathRegExp: h.pathRegExp,
51
- })),
52
- };
53
- }
54
- async function readConfig() {
55
- const packageJson = JSON.parse(await readFile('package.json', 'utf-8'));
56
- return packageJson;
57
- }
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmbGVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJlZmxlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFvQ3hDLE1BQU0sVUFBVSxVQUFVLENBQUMsTUFBZ0MsRUFBRSxTQUFnQjtJQUN6RSxNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQ3pELElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDWCwwR0FBMEc7UUFDMUcsb0VBQW9FO1FBQ3BFLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLEdBQUcsTUFBTSxDQUFDLElBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtLQUNsRTtJQUNELE9BQU8sUUFBUSxDQUFBO0FBQ25CLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUNyQixNQUFnQyxFQUNoQyxTQUE0QjtJQUU1QixNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQ3ZELElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDWCwwR0FBMEc7UUFDMUcsb0VBQW9FO1FBQ3BFLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLEdBQUcsTUFBTSxDQUFDLEVBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtLQUM3RTtJQUNELE9BQU8sUUFBUSxDQUFBO0FBQ25CLENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUNyQixNQUFtQyxFQUNuQyxTQUFjO0lBRWQsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNULE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFBO0tBQ3RCO0lBQ0QsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFDL0UsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsT0FBTyxDQUFDLElBQVk7SUFDdEMsTUFBTSxXQUFXLEdBQUcsTUFBTSxVQUFVLEVBQUUsQ0FBQTtJQUN0QyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ2pELE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBTSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQzlDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQzdELENBQUE7SUFDRCxNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsTUFBTSxNQUFNLENBQzFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLDhDQUE4QyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FDL0YsQ0FlQSxDQUFBO0lBRUQsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUU7UUFDdEIsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUNsQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUM5RCxNQUFNLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO0tBQzNFO0lBRUQsT0FBTztRQUNILElBQUksRUFBRSxXQUFXLENBQUMsSUFBSTtRQUN0QixJQUFJLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEMsTUFBTSxFQUFFO2dCQUNKLEdBQUcsQ0FBQyxDQUFDLE1BQU07Z0JBQ1gsSUFBSSxFQUFFLFdBQVcsQ0FBQyxHQUFHO2dCQUNyQixFQUFFLEVBQUUsV0FBVyxDQUFDLEVBQUU7Z0JBQ2xCLFdBQVcsRUFBRSxXQUFXLENBQUMsT0FBTyxFQUFFLElBQUk7YUFDekM7WUFDRCxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxRQUFRLElBQUksRUFBRTtZQUM1QixNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU07WUFDaEIsV0FBVyxFQUFFLENBQUMsQ0FBQyxXQUFXO1lBQzFCLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVTtTQUMzQixDQUFDLENBQUM7S0FDTixDQUFBO0FBQ0wsQ0FBQztBQUVELEtBQUssVUFBVSxVQUFVO0lBQ3JCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQU1yRSxDQUFBO0lBQ0QsT0FBTyxXQUFXLENBQUE7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlYWRkaXIsIHJlYWRGaWxlIH0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcydcbmltcG9ydCB7IGJhc2VuYW1lLCBleHRuYW1lLCBqb2luLCByZXNvbHZlIH0gZnJvbSAnbm9kZTpwYXRoJ1xuaW1wb3J0IHsgcGF0aFRvRmlsZVVSTCB9IGZyb20gJ25vZGU6dXJsJ1xuaW1wb3J0IHsgSHR0cEhhbmRsZXJDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vaHR0cC5qcydcbmltcG9ydCB7IFBhY2thZ2VDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9yZWdpc3RyeS5qcydcblxudHlwZSBDUFUgPVxuICAgIHwgJ2FybSdcbiAgICB8ICdhcm02NCdcbiAgICB8ICdpYTMyJ1xuICAgIHwgJ21pcHMnXG4gICAgfCAnbWlwc2VsJ1xuICAgIHwgJ3BwYydcbiAgICB8ICdwcGM2NCdcbiAgICB8ICdzMzkwJ1xuICAgIHwgJ3MzOTB4J1xuICAgIHwgJ3gzMidcbiAgICB8ICd4NjQnXG50eXBlIENwdUNvbmZpZyA9IENQVSB8IGAhJHtDUFV9YFxudHlwZSBPU0NvbmZpZyA9IE5vZGVKUy5QbGF0Zm9ybSB8IGAhJHtOb2RlSlMuUGxhdGZvcm19YFxuXG5leHBvcnQgaW50ZXJmYWNlIFBhY2thZ2VKc29uQ29uZmlndXJhdGlvbiB7XG4gICAgbm9kZVZlcnNpb24/OiBzdHJpbmdcbiAgICBjcHVzPzogQ3B1Q29uZmlnW11cbiAgICBvcz86IE9TQ29uZmlnW11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWZsZWN0aW9uIHtcbiAgICBuYW1lOiBzdHJpbmdcbiAgICBodHRwOiB7XG4gICAgICAgIG5hbWU6IHN0cmluZ1xuICAgICAgICBtZXRob2Q6IHN0cmluZ1xuICAgICAgICBwYXRoUGF0dGVybjogc3RyaW5nXG4gICAgICAgIHBhdGhSZWdFeHA6IFJlZ0V4cFxuICAgICAgICBjb25maWc6IEh0dHBIYW5kbGVyQ29uZmlndXJhdGlvbiAmIFBhY2thZ2VKc29uQ29uZmlndXJhdGlvblxuICAgIH1bXVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUNwdShjb25maWc6IFBhY2thZ2VKc29uQ29uZmlndXJhdGlvbiwgc3VwcG9ydGVkOiBDUFVbXSk6IENQVSB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSByZXNvbHZlU3VwcG9ydGVkKGNvbmZpZy5jcHVzLCBzdXBwb3J0ZWQpXG4gICAgaWYgKCFyZXNvbHZlZCkge1xuICAgICAgICAvLyByZXNvbHZlPFQ+KGNvbmZpZywgc3VwcG9ydGVkKSBhY3R1YWxseSBhc3NlcnRzIGNvbmZpZyBpcyAoVCB8IGAhJHtUfWApW10sIGJ1dCB0aGF0J3Mgbm90IHN1cHBvcnRlZCB5ZXQuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgQ1BVczogJyArIGNvbmZpZy5jcHVzIS5qb2luKCcsICcpKVxuICAgIH1cbiAgICByZXR1cm4gcmVzb2x2ZWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVPUyhcbiAgICBjb25maWc6IFBhY2thZ2VKc29uQ29uZmlndXJhdGlvbixcbiAgICBzdXBwb3J0ZWQ6IE5vZGVKUy5QbGF0Zm9ybVtdLFxuKTogTm9kZUpTLlBsYXRmb3JtIHtcbiAgICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVTdXBwb3J0ZWQoY29uZmlnLm9zLCBzdXBwb3J0ZWQpXG4gICAgaWYgKCFyZXNvbHZlZCkge1xuICAgICAgICAvLyByZXNvbHZlPFQ+KGNvbmZpZywgc3VwcG9ydGVkKSBhY3R1YWxseSBhc3NlcnRzIGNvbmZpZyBpcyAoVCB8IGAhJHtUfWApW10sIGJ1dCB0aGF0J3Mgbm90IHN1cHBvcnRlZCB5ZXQuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgb3BlcmF0aW5nIHN5c3RlbXM6ICcgKyBjb25maWcub3MhLmpvaW4oJywgJykpXG4gICAgfVxuICAgIHJldHVybiByZXNvbHZlZFxufVxuXG5mdW5jdGlvbiByZXNvbHZlU3VwcG9ydGVkPFQgZXh0ZW5kcyBzdHJpbmc+KFxuICAgIGNvbmZpZzogKFQgfCBgISR7VH1gKVtdIHwgdW5kZWZpbmVkLFxuICAgIHN1cHBvcnRlZDogVFtdLFxuKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFjb25maWcpIHtcbiAgICAgICAgcmV0dXJuIHN1cHBvcnRlZFswXVxuICAgIH1cbiAgICByZXR1cm4gc3VwcG9ydGVkLmZpbmQocyA9PiBjb25maWcuaW5jbHVkZXMocykgJiYgIWNvbmZpZy5pbmNsdWRlcyhgISR7c31gKSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZmxlY3QocGF0aDogc3RyaW5nKTogUHJvbWlzZTxSZWZsZWN0aW9uPiB7XG4gICAgY29uc3QgcGFja2FnZUpzb24gPSBhd2FpdCByZWFkQ29uZmlnKClcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSByZXNvbHZlKHByb2Nlc3MuY3dkKCksIHBhdGgpXG4gICAgY29uc3QgZmlsZXMgPSAoYXdhaXQgcmVhZGRpcihhYnNvbHV0ZVBhdGgpKS5maWx0ZXIoXG4gICAgICAgIGZpbGUgPT4gZXh0bmFtZShmaWxlKSA9PT0gJy50cycgJiYgIWZpbGUuZW5kc1dpdGgoJy5kLnRzJyksXG4gICAgKVxuICAgIGNvbnN0IHsgZ2V0SGFuZGxlcnMsIHNldE1ldGEgfSA9IChhd2FpdCBpbXBvcnQoXG4gICAgICAgIHBhdGhUb0ZpbGVVUkwoam9pbihhYnNvbHV0ZVBhdGgsICdub2RlX21vZHVsZXMvQHJpZGRhbmNlL2hvc3QvaG9zdC9yZWdpc3RyeS5qcycpKS50b1N0cmluZygpXG4gICAgKSkgYXMge1xuICAgICAgICBnZXRIYW5kbGVyczogKHR5cGU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgbmFtZTogc3RyaW5nXG4gICAgICAgICAgICBtZXRhPzogeyBmaWxlTmFtZTogc3RyaW5nIH1cbiAgICAgICAgICAgIGNvbmZpZzogSHR0cEhhbmRsZXJDb25maWd1cmF0aW9uXG4gICAgICAgICAgICBtZXRob2Q6IHN0cmluZ1xuICAgICAgICAgICAgcGF0aFBhdHRlcm46IHN0cmluZ1xuICAgICAgICAgICAgcGF0aFJlZ0V4cDogUmVnRXhwXG4gICAgICAgIH1bXVxuICAgICAgICBzZXRNZXRhOiAoXG4gICAgICAgICAgICBwYWNrYWdlTmFtZTogc3RyaW5nLFxuICAgICAgICAgICAgZmlsZU5hbWU6IHN0cmluZyxcbiAgICAgICAgICAgIHJldjogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgY2ZnOiBQYWNrYWdlQ29uZmlndXJhdGlvbiB8IHVuZGVmaW5lZCxcbiAgICAgICAgKSA9PiB2b2lkXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICAgIGNvbnN0IGJhc2UgPSBiYXNlbmFtZShmaWxlLCAnLnRzJylcbiAgICAgICAgc2V0TWV0YShwYWNrYWdlSnNvbi5uYW1lLCBiYXNlLCB1bmRlZmluZWQsIHBhY2thZ2VKc29uLmNvbmZpZylcbiAgICAgICAgYXdhaXQgaW1wb3J0KHBhdGhUb0ZpbGVVUkwoam9pbihhYnNvbHV0ZVBhdGgsIGJhc2UgKyAnLmpzJykpLnRvU3RyaW5nKCkpXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogcGFja2FnZUpzb24ubmFtZSxcbiAgICAgICAgaHR0cDogZ2V0SGFuZGxlcnMoJ2h0dHAnKS5tYXAoaCA9PiAoe1xuICAgICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICAgICAgLi4uaC5jb25maWcsXG4gICAgICAgICAgICAgICAgY3B1czogcGFja2FnZUpzb24uY3B1LFxuICAgICAgICAgICAgICAgIG9zOiBwYWNrYWdlSnNvbi5vcyxcbiAgICAgICAgICAgICAgICBub2RlVmVyc2lvbjogcGFja2FnZUpzb24uZW5naW5lcz8ubm9kZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuYW1lOiBoLm1ldGE/LmZpbGVOYW1lID8/ICcnLFxuICAgICAgICAgICAgbWV0aG9kOiBoLm1ldGhvZCxcbiAgICAgICAgICAgIHBhdGhQYXR0ZXJuOiBoLnBhdGhQYXR0ZXJuLFxuICAgICAgICAgICAgcGF0aFJlZ0V4cDogaC5wYXRoUmVnRXhwLFxuICAgICAgICB9KSksXG4gICAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiByZWFkQ29uZmlnKCkge1xuICAgIGNvbnN0IHBhY2thZ2VKc29uID0gSlNPTi5wYXJzZShhd2FpdCByZWFkRmlsZSgncGFja2FnZS5qc29uJywgJ3V0Zi04JykpIGFzIHtcbiAgICAgICAgbmFtZTogc3RyaW5nXG4gICAgICAgIGVuZ2luZXM/OiB7IFtlbmdpbmU6IHN0cmluZ106IHN0cmluZyB9XG4gICAgICAgIGNwdT86IENwdUNvbmZpZ1tdXG4gICAgICAgIG9zPzogT1NDb25maWdbXVxuICAgICAgICBjb25maWc/OiBvYmplY3RcbiAgICB9XG4gICAgcmV0dXJuIHBhY2thZ2VKc29uXG59XG4iXX0=
1
+ import { readdir, readFile } from 'node:fs/promises';
2
+ import { basename, extname, join, resolve } from 'node:path';
3
+ import { pathToFileURL } from 'node:url';
4
+ export function resolveCpu(config, supported) {
5
+ const resolved = resolveSupported(config.cpus, supported);
6
+ if (!resolved) {
7
+ // resolve<T>(config, supported) actually asserts config is (T | `!${T}`)[], but that's not supported yet.
8
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
9
+ throw new Error('Unsupported CPUs: ' + config.cpus.join(', '));
10
+ }
11
+ return resolved;
12
+ }
13
+ export function resolveOS(config, supported) {
14
+ const resolved = resolveSupported(config.os, supported);
15
+ if (!resolved) {
16
+ // resolve<T>(config, supported) actually asserts config is (T | `!${T}`)[], but that's not supported yet.
17
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
18
+ throw new Error('Unsupported operating systems: ' + config.os.join(', '));
19
+ }
20
+ return resolved;
21
+ }
22
+ function resolveSupported(config, supported) {
23
+ if (!config) {
24
+ return supported[0];
25
+ }
26
+ return supported.find(s => config.includes(s) && !config.includes(`!${s}`));
27
+ }
28
+ export async function reflect(path) {
29
+ const packageJson = await readConfig();
30
+ const absolutePath = resolve(process.cwd(), path);
31
+ const files = (await readdir(absolutePath)).filter(file => extname(file) === '.ts' && !file.endsWith('.d.ts'));
32
+ const { getHandlers, setMeta } = (await import(pathToFileURL(join(absolutePath, 'node_modules/@riddance/host/host/registry.js')).toString()));
33
+ for (const file of files) {
34
+ const base = basename(file, '.ts');
35
+ setMeta(packageJson.name, base, undefined, packageJson.config);
36
+ await import(pathToFileURL(join(absolutePath, base + '.js')).toString());
37
+ }
38
+ return {
39
+ name: packageJson.name,
40
+ http: getHandlers('http').map(h => ({
41
+ config: {
42
+ ...h.config,
43
+ cpus: packageJson.cpu,
44
+ os: packageJson.os,
45
+ nodeVersion: packageJson.engines?.node,
46
+ },
47
+ name: h.meta?.fileName ?? '',
48
+ method: h.method,
49
+ pathPattern: h.pathPattern,
50
+ pathRegExp: h.pathRegExp,
51
+ })),
52
+ };
53
+ }
54
+ async function readConfig() {
55
+ const packageJson = JSON.parse(await readFile('package.json', 'utf-8'));
56
+ return packageJson;
57
+ }
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmbGVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJlZmxlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFvQ3hDLE1BQU0sVUFBVSxVQUFVLENBQUMsTUFBZ0MsRUFBRSxTQUFnQjtJQUN6RSxNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQ3pELElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDWCwwR0FBMEc7UUFDMUcsb0VBQW9FO1FBQ3BFLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLEdBQUcsTUFBTSxDQUFDLElBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtLQUNsRTtJQUNELE9BQU8sUUFBUSxDQUFBO0FBQ25CLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUNyQixNQUFnQyxFQUNoQyxTQUE0QjtJQUU1QixNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQ3ZELElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDWCwwR0FBMEc7UUFDMUcsb0VBQW9FO1FBQ3BFLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLEdBQUcsTUFBTSxDQUFDLEVBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtLQUM3RTtJQUNELE9BQU8sUUFBUSxDQUFBO0FBQ25CLENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUNyQixNQUFtQyxFQUNuQyxTQUFjO0lBRWQsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNULE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFBO0tBQ3RCO0lBQ0QsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFDL0UsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsT0FBTyxDQUFDLElBQVk7SUFDdEMsTUFBTSxXQUFXLEdBQUcsTUFBTSxVQUFVLEVBQUUsQ0FBQTtJQUN0QyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ2pELE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBTSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQzlDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQzdELENBQUE7SUFDRCxNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsTUFBTSxNQUFNLENBQzFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLDhDQUE4QyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FDL0YsQ0FlQSxDQUFBO0lBRUQsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUU7UUFDdEIsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUNsQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUM5RCxNQUFNLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO0tBQzNFO0lBRUQsT0FBTztRQUNILElBQUksRUFBRSxXQUFXLENBQUMsSUFBSTtRQUN0QixJQUFJLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEMsTUFBTSxFQUFFO2dCQUNKLEdBQUcsQ0FBQyxDQUFDLE1BQU07Z0JBQ1gsSUFBSSxFQUFFLFdBQVcsQ0FBQyxHQUFHO2dCQUNyQixFQUFFLEVBQUUsV0FBVyxDQUFDLEVBQUU7Z0JBQ2xCLFdBQVcsRUFBRSxXQUFXLENBQUMsT0FBTyxFQUFFLElBQUk7YUFDekM7WUFDRCxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxRQUFRLElBQUksRUFBRTtZQUM1QixNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU07WUFDaEIsV0FBVyxFQUFFLENBQUMsQ0FBQyxXQUFXO1lBQzFCLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVTtTQUMzQixDQUFDLENBQUM7S0FDTixDQUFBO0FBQ0wsQ0FBQztBQUVELEtBQUssVUFBVSxVQUFVO0lBQ3JCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQU1yRSxDQUFBO0lBQ0QsT0FBTyxXQUFXLENBQUE7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlYWRkaXIsIHJlYWRGaWxlIH0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcydcbmltcG9ydCB7IGJhc2VuYW1lLCBleHRuYW1lLCBqb2luLCByZXNvbHZlIH0gZnJvbSAnbm9kZTpwYXRoJ1xuaW1wb3J0IHsgcGF0aFRvRmlsZVVSTCB9IGZyb20gJ25vZGU6dXJsJ1xuaW1wb3J0IHsgSHR0cEhhbmRsZXJDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vaHR0cC5qcydcbmltcG9ydCB7IFBhY2thZ2VDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9yZWdpc3RyeS5qcydcblxudHlwZSBDUFUgPVxuICAgIHwgJ2FybSdcbiAgICB8ICdhcm02NCdcbiAgICB8ICdpYTMyJ1xuICAgIHwgJ21pcHMnXG4gICAgfCAnbWlwc2VsJ1xuICAgIHwgJ3BwYydcbiAgICB8ICdwcGM2NCdcbiAgICB8ICdzMzkwJ1xuICAgIHwgJ3MzOTB4J1xuICAgIHwgJ3gzMidcbiAgICB8ICd4NjQnXG50eXBlIENwdUNvbmZpZyA9IENQVSB8IGAhJHtDUFV9YFxudHlwZSBPU0NvbmZpZyA9IE5vZGVKUy5QbGF0Zm9ybSB8IGAhJHtOb2RlSlMuUGxhdGZvcm19YFxuXG5leHBvcnQgdHlwZSBQYWNrYWdlSnNvbkNvbmZpZ3VyYXRpb24gPSB7XG4gICAgbm9kZVZlcnNpb24/OiBzdHJpbmdcbiAgICBjcHVzPzogQ3B1Q29uZmlnW11cbiAgICBvcz86IE9TQ29uZmlnW11cbn1cblxuZXhwb3J0IHR5cGUgUmVmbGVjdGlvbiA9IHtcbiAgICBuYW1lOiBzdHJpbmdcbiAgICBodHRwOiB7XG4gICAgICAgIG5hbWU6IHN0cmluZ1xuICAgICAgICBtZXRob2Q6IHN0cmluZ1xuICAgICAgICBwYXRoUGF0dGVybjogc3RyaW5nXG4gICAgICAgIHBhdGhSZWdFeHA6IFJlZ0V4cFxuICAgICAgICBjb25maWc6IEh0dHBIYW5kbGVyQ29uZmlndXJhdGlvbiAmIFBhY2thZ2VKc29uQ29uZmlndXJhdGlvblxuICAgIH1bXVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUNwdShjb25maWc6IFBhY2thZ2VKc29uQ29uZmlndXJhdGlvbiwgc3VwcG9ydGVkOiBDUFVbXSk6IENQVSB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSByZXNvbHZlU3VwcG9ydGVkKGNvbmZpZy5jcHVzLCBzdXBwb3J0ZWQpXG4gICAgaWYgKCFyZXNvbHZlZCkge1xuICAgICAgICAvLyByZXNvbHZlPFQ+KGNvbmZpZywgc3VwcG9ydGVkKSBhY3R1YWxseSBhc3NlcnRzIGNvbmZpZyBpcyAoVCB8IGAhJHtUfWApW10sIGJ1dCB0aGF0J3Mgbm90IHN1cHBvcnRlZCB5ZXQuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgQ1BVczogJyArIGNvbmZpZy5jcHVzIS5qb2luKCcsICcpKVxuICAgIH1cbiAgICByZXR1cm4gcmVzb2x2ZWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVPUyhcbiAgICBjb25maWc6IFBhY2thZ2VKc29uQ29uZmlndXJhdGlvbixcbiAgICBzdXBwb3J0ZWQ6IE5vZGVKUy5QbGF0Zm9ybVtdLFxuKTogTm9kZUpTLlBsYXRmb3JtIHtcbiAgICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVTdXBwb3J0ZWQoY29uZmlnLm9zLCBzdXBwb3J0ZWQpXG4gICAgaWYgKCFyZXNvbHZlZCkge1xuICAgICAgICAvLyByZXNvbHZlPFQ+KGNvbmZpZywgc3VwcG9ydGVkKSBhY3R1YWxseSBhc3NlcnRzIGNvbmZpZyBpcyAoVCB8IGAhJHtUfWApW10sIGJ1dCB0aGF0J3Mgbm90IHN1cHBvcnRlZCB5ZXQuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgb3BlcmF0aW5nIHN5c3RlbXM6ICcgKyBjb25maWcub3MhLmpvaW4oJywgJykpXG4gICAgfVxuICAgIHJldHVybiByZXNvbHZlZFxufVxuXG5mdW5jdGlvbiByZXNvbHZlU3VwcG9ydGVkPFQgZXh0ZW5kcyBzdHJpbmc+KFxuICAgIGNvbmZpZzogKFQgfCBgISR7VH1gKVtdIHwgdW5kZWZpbmVkLFxuICAgIHN1cHBvcnRlZDogVFtdLFxuKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFjb25maWcpIHtcbiAgICAgICAgcmV0dXJuIHN1cHBvcnRlZFswXVxuICAgIH1cbiAgICByZXR1cm4gc3VwcG9ydGVkLmZpbmQocyA9PiBjb25maWcuaW5jbHVkZXMocykgJiYgIWNvbmZpZy5pbmNsdWRlcyhgISR7c31gKSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZmxlY3QocGF0aDogc3RyaW5nKTogUHJvbWlzZTxSZWZsZWN0aW9uPiB7XG4gICAgY29uc3QgcGFja2FnZUpzb24gPSBhd2FpdCByZWFkQ29uZmlnKClcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSByZXNvbHZlKHByb2Nlc3MuY3dkKCksIHBhdGgpXG4gICAgY29uc3QgZmlsZXMgPSAoYXdhaXQgcmVhZGRpcihhYnNvbHV0ZVBhdGgpKS5maWx0ZXIoXG4gICAgICAgIGZpbGUgPT4gZXh0bmFtZShmaWxlKSA9PT0gJy50cycgJiYgIWZpbGUuZW5kc1dpdGgoJy5kLnRzJyksXG4gICAgKVxuICAgIGNvbnN0IHsgZ2V0SGFuZGxlcnMsIHNldE1ldGEgfSA9IChhd2FpdCBpbXBvcnQoXG4gICAgICAgIHBhdGhUb0ZpbGVVUkwoam9pbihhYnNvbHV0ZVBhdGgsICdub2RlX21vZHVsZXMvQHJpZGRhbmNlL2hvc3QvaG9zdC9yZWdpc3RyeS5qcycpKS50b1N0cmluZygpXG4gICAgKSkgYXMge1xuICAgICAgICBnZXRIYW5kbGVyczogKHR5cGU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgbmFtZTogc3RyaW5nXG4gICAgICAgICAgICBtZXRhPzogeyBmaWxlTmFtZTogc3RyaW5nIH1cbiAgICAgICAgICAgIGNvbmZpZzogSHR0cEhhbmRsZXJDb25maWd1cmF0aW9uXG4gICAgICAgICAgICBtZXRob2Q6IHN0cmluZ1xuICAgICAgICAgICAgcGF0aFBhdHRlcm46IHN0cmluZ1xuICAgICAgICAgICAgcGF0aFJlZ0V4cDogUmVnRXhwXG4gICAgICAgIH1bXVxuICAgICAgICBzZXRNZXRhOiAoXG4gICAgICAgICAgICBwYWNrYWdlTmFtZTogc3RyaW5nLFxuICAgICAgICAgICAgZmlsZU5hbWU6IHN0cmluZyxcbiAgICAgICAgICAgIHJldjogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgY2ZnOiBQYWNrYWdlQ29uZmlndXJhdGlvbiB8IHVuZGVmaW5lZCxcbiAgICAgICAgKSA9PiB2b2lkXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICAgIGNvbnN0IGJhc2UgPSBiYXNlbmFtZShmaWxlLCAnLnRzJylcbiAgICAgICAgc2V0TWV0YShwYWNrYWdlSnNvbi5uYW1lLCBiYXNlLCB1bmRlZmluZWQsIHBhY2thZ2VKc29uLmNvbmZpZylcbiAgICAgICAgYXdhaXQgaW1wb3J0KHBhdGhUb0ZpbGVVUkwoam9pbihhYnNvbHV0ZVBhdGgsIGJhc2UgKyAnLmpzJykpLnRvU3RyaW5nKCkpXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogcGFja2FnZUpzb24ubmFtZSxcbiAgICAgICAgaHR0cDogZ2V0SGFuZGxlcnMoJ2h0dHAnKS5tYXAoaCA9PiAoe1xuICAgICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICAgICAgLi4uaC5jb25maWcsXG4gICAgICAgICAgICAgICAgY3B1czogcGFja2FnZUpzb24uY3B1LFxuICAgICAgICAgICAgICAgIG9zOiBwYWNrYWdlSnNvbi5vcyxcbiAgICAgICAgICAgICAgICBub2RlVmVyc2lvbjogcGFja2FnZUpzb24uZW5naW5lcz8ubm9kZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuYW1lOiBoLm1ldGE/LmZpbGVOYW1lID8/ICcnLFxuICAgICAgICAgICAgbWV0aG9kOiBoLm1ldGhvZCxcbiAgICAgICAgICAgIHBhdGhQYXR0ZXJuOiBoLnBhdGhQYXR0ZXJuLFxuICAgICAgICAgICAgcGF0aFJlZ0V4cDogaC5wYXRoUmVnRXhwLFxuICAgICAgICB9KSksXG4gICAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiByZWFkQ29uZmlnKCkge1xuICAgIGNvbnN0IHBhY2thZ2VKc29uID0gSlNPTi5wYXJzZShhd2FpdCByZWFkRmlsZSgncGFja2FnZS5qc29uJywgJ3V0Zi04JykpIGFzIHtcbiAgICAgICAgbmFtZTogc3RyaW5nXG4gICAgICAgIGVuZ2luZXM/OiB7IFtlbmdpbmU6IHN0cmluZ106IHN0cmluZyB9XG4gICAgICAgIGNwdT86IENwdUNvbmZpZ1tdXG4gICAgICAgIG9zPzogT1NDb25maWdbXVxuICAgICAgICBjb25maWc/OiBvYmplY3RcbiAgICB9XG4gICAgcmV0dXJuIHBhY2thZ2VKc29uXG59XG4iXX0=
@@ -1,26 +1,27 @@
1
- import { HandlerConfiguration } from '../context.js';
2
- import { Handler } from '../http.js';
3
- export interface HttpHandler {
4
- meta: Metadata | undefined;
5
- config: (PackageConfiguration & HandlerConfiguration) | undefined;
6
- method: Method;
7
- pathPattern: string;
8
- pathRegExp: RegExp;
9
- entry: Handler;
10
- }
11
- interface HandlerTypes {
12
- http: HttpHandler;
13
- }
14
- export declare function getHandlers(type: keyof HandlerTypes): HttpHandler[];
15
- export declare function setMeta(packageName: string, fileName: string, revision: string | undefined, config: PackageConfiguration | undefined): void;
16
- export interface PackageConfiguration extends HandlerConfiguration {
17
- }
18
- export interface Metadata {
19
- packageName: string;
20
- fileName: string;
21
- revision: string | undefined;
22
- config?: PackageConfiguration;
23
- }
24
- export type Method = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
25
- export declare function registerHttpHandler(method: Method, path: string, configOrHandler: HandlerConfiguration | Handler, fn?: Handler): void;
26
- export {};
1
+ import { HandlerConfiguration } from '../context.js';
2
+ import { Handler } from '../http.js';
3
+ export type HttpHandler = {
4
+ meta: Metadata | undefined;
5
+ config: FullConfiguration | undefined;
6
+ method: Method;
7
+ pathPattern: string;
8
+ pathRegExp: RegExp;
9
+ entry: Handler;
10
+ };
11
+ type HandlerTypes = {
12
+ http: HttpHandler;
13
+ };
14
+ export declare function getHandlers(type: keyof HandlerTypes): HttpHandler[];
15
+ export declare function getHandler(type: keyof HandlerTypes): HttpHandler;
16
+ export declare function setMeta(packageName: string, fileName: string, revision: string | undefined, config: PackageConfiguration | undefined): void;
17
+ export type PackageConfiguration = HandlerConfiguration & {};
18
+ export type FullConfiguration = PackageConfiguration & HandlerConfiguration;
19
+ export type Metadata = {
20
+ packageName: string;
21
+ fileName: string;
22
+ revision: string | undefined;
23
+ config?: PackageConfiguration;
24
+ };
25
+ export type Method = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
26
+ export declare function registerHttpHandler(method: Method, path: string, configOrHandler: HandlerConfiguration | Handler, fn?: Handler): void;
27
+ export {};
package/host/registry.js CHANGED
@@ -1,61 +1,73 @@
1
- const handlers = {};
2
- function addHandler(type, handler) {
3
- ;
4
- (handlers[type] ??= []).push(handler);
5
- }
6
- export function getHandlers(type) {
7
- return (handlers[type] ?? []);
8
- }
9
- let httpHostRegistry;
10
- function setHttpHost(host) {
11
- httpHostRegistry = host;
12
- }
13
- let metadata;
14
- export function setMeta(packageName, fileName, revision, config) {
15
- metadata = {
16
- packageName,
17
- fileName,
18
- revision,
19
- config,
20
- };
21
- }
22
- function getMetadata() {
23
- return metadata;
24
- }
25
- function pathToRegExp(path) {
26
- return new RegExp(('^' +
27
- path.replace(/[/\\^$+?.()|[\]{}]/gu, '\\$&').replaceAll('*', '[^/\\?]+') +
28
- '(\\?.*)?$').replace('[^/\\?]+[^/\\?]+(\\?.*)?$', ''), 'u');
29
- }
30
- function combineConfig(base, override) {
31
- if (base === undefined) {
32
- return override;
33
- }
34
- else if (override === undefined) {
35
- return base;
36
- }
37
- return { ...base, ...override };
38
- }
39
- function httpHost(meta, cfg, method, path, entry) {
40
- addHandler('http', {
41
- meta,
42
- config: combineConfig(meta?.config, cfg),
43
- method,
44
- pathPattern: path,
45
- pathRegExp: pathToRegExp(path),
46
- entry,
47
- });
48
- }
49
- setHttpHost(httpHost);
50
- export function registerHttpHandler(method, path, configOrHandler, fn) {
51
- if (typeof configOrHandler === 'function') {
52
- httpHostRegistry(getMetadata(), undefined, method, path, configOrHandler);
53
- }
54
- else {
55
- if (!fn) {
56
- throw new Error('Please provide a handler function.');
57
- }
58
- httpHostRegistry(getMetadata(), configOrHandler, method, path, fn);
59
- }
60
- }
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQkEsTUFBTSxRQUFRLEdBQWlDLEVBQUUsQ0FBQTtBQUVqRCxTQUFTLFVBQVUsQ0FBQyxJQUF3QixFQUFFLE9BQW9CO0lBQzlELENBQUM7SUFBQSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDMUMsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBd0I7SUFDaEQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQWtCLENBQUE7QUFDbEQsQ0FBQztBQVVELElBQUksZ0JBQTBCLENBQUE7QUFFOUIsU0FBUyxXQUFXLENBQUMsSUFBYztJQUMvQixnQkFBZ0IsR0FBRyxJQUFJLENBQUE7QUFDM0IsQ0FBQztBQUVELElBQUksUUFBOEIsQ0FBQTtBQUVsQyxNQUFNLFVBQVUsT0FBTyxDQUNuQixXQUFtQixFQUNuQixRQUFnQixFQUNoQixRQUE0QixFQUM1QixNQUF3QztJQUV4QyxRQUFRLEdBQUc7UUFDUCxXQUFXO1FBQ1gsUUFBUTtRQUNSLFFBQVE7UUFDUixNQUFNO0tBQ1QsQ0FBQTtBQUNMLENBQUM7QUFjRCxTQUFTLFdBQVc7SUFDaEIsT0FBTyxRQUFRLENBQUE7QUFDbkIsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLElBQVk7SUFDOUIsT0FBTyxJQUFJLE1BQU0sQ0FDYixDQUNJLEdBQUc7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDO1FBQ3hFLFdBQVcsQ0FDZCxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsRUFBRSxFQUFFLENBQUMsRUFDMUMsR0FBRyxDQUNOLENBQUE7QUFDTCxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQ2xCLElBQXNDLEVBQ3RDLFFBQTBDO0lBRTFDLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtRQUNwQixPQUFPLFFBQVEsQ0FBQTtLQUNsQjtTQUFNLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtRQUMvQixPQUFPLElBQUksQ0FBQTtLQUNkO0lBQ0QsT0FBTyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsUUFBUSxFQUFFLENBQUE7QUFDbkMsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUNiLElBQTBCLEVBQzFCLEdBQXFDLEVBQ3JDLE1BQWMsRUFDZCxJQUFZLEVBQ1osS0FBYztJQUVkLFVBQVUsQ0FBQyxNQUFNLEVBQUU7UUFDZixJQUFJO1FBQ0osTUFBTSxFQUFFLGFBQWEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztRQUN4QyxNQUFNO1FBQ04sV0FBVyxFQUFFLElBQUk7UUFDakIsVUFBVSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFDOUIsS0FBSztLQUNSLENBQUMsQ0FBQTtBQUNOLENBQUM7QUFFRCxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUE7QUFJckIsTUFBTSxVQUFVLG1CQUFtQixDQUMvQixNQUFjLEVBQ2QsSUFBWSxFQUNaLGVBQStDLEVBQy9DLEVBQVk7SUFFWixJQUFJLE9BQU8sZUFBZSxLQUFLLFVBQVUsRUFBRTtRQUN2QyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQTtLQUM1RTtTQUFNO1FBQ0gsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQTtTQUN4RDtRQUNELGdCQUFnQixDQUFDLFdBQVcsRUFBRSxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0tBQ3JFO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhhbmRsZXJDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vY29udGV4dC5qcydcbmltcG9ydCB7IEhhbmRsZXIgfSBmcm9tICcuLi9odHRwLmpzJ1xuXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBIYW5kbGVyIHtcbiAgICBtZXRhOiBNZXRhZGF0YSB8IHVuZGVmaW5lZFxuICAgIGNvbmZpZzogKFBhY2thZ2VDb25maWd1cmF0aW9uICYgSGFuZGxlckNvbmZpZ3VyYXRpb24pIHwgdW5kZWZpbmVkXG4gICAgbWV0aG9kOiBNZXRob2RcbiAgICBwYXRoUGF0dGVybjogc3RyaW5nXG4gICAgcGF0aFJlZ0V4cDogUmVnRXhwXG4gICAgZW50cnk6IEhhbmRsZXJcbn1cblxuaW50ZXJmYWNlIEhhbmRsZXJUeXBlcyB7XG4gICAgaHR0cDogSHR0cEhhbmRsZXJcbn1cblxuY29uc3QgaGFuZGxlcnM6IHsgW2tleTogc3RyaW5nXTogdW5rbm93bltdIH0gPSB7fVxuXG5mdW5jdGlvbiBhZGRIYW5kbGVyKHR5cGU6IGtleW9mIEhhbmRsZXJUeXBlcywgaGFuZGxlcjogSHR0cEhhbmRsZXIpIHtcbiAgICA7KGhhbmRsZXJzW3R5cGVdID8/PSBbXSkucHVzaChoYW5kbGVyKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGFuZGxlcnModHlwZToga2V5b2YgSGFuZGxlclR5cGVzKSB7XG4gICAgcmV0dXJuIChoYW5kbGVyc1t0eXBlXSA/PyBbXSkgYXMgSHR0cEhhbmRsZXJbXVxufVxuXG50eXBlIEh0dHBIb3N0ID0gKFxuICAgIG1ldGE6IE1ldGFkYXRhIHwgdW5kZWZpbmVkLFxuICAgIGNvbmZpZzogSGFuZGxlckNvbmZpZ3VyYXRpb24gfCB1bmRlZmluZWQsXG4gICAgbWV0aG9kOiBNZXRob2QsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGhhbmRsZXI6IEhhbmRsZXIsXG4pID0+IHZvaWRcblxubGV0IGh0dHBIb3N0UmVnaXN0cnk6IEh0dHBIb3N0XG5cbmZ1bmN0aW9uIHNldEh0dHBIb3N0KGhvc3Q6IEh0dHBIb3N0KSB7XG4gICAgaHR0cEhvc3RSZWdpc3RyeSA9IGhvc3Rcbn1cblxubGV0IG1ldGFkYXRhOiBNZXRhZGF0YSB8IHVuZGVmaW5lZFxuXG5leHBvcnQgZnVuY3Rpb24gc2V0TWV0YShcbiAgICBwYWNrYWdlTmFtZTogc3RyaW5nLFxuICAgIGZpbGVOYW1lOiBzdHJpbmcsXG4gICAgcmV2aXNpb246IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBjb25maWc6IFBhY2thZ2VDb25maWd1cmF0aW9uIHwgdW5kZWZpbmVkLFxuKSB7XG4gICAgbWV0YWRhdGEgPSB7XG4gICAgICAgIHBhY2thZ2VOYW1lLFxuICAgICAgICBmaWxlTmFtZSxcbiAgICAgICAgcmV2aXNpb24sXG4gICAgICAgIGNvbmZpZyxcbiAgICB9XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktaW50ZXJmYWNlXG5leHBvcnQgaW50ZXJmYWNlIFBhY2thZ2VDb25maWd1cmF0aW9uIGV4dGVuZHMgSGFuZGxlckNvbmZpZ3VyYXRpb24ge1xuICAgIC8vIFBsYWNlaG9sZGVyIGZvciBwYWNrYWdlLWxldmVsIGNvbmZpZ3VyYXRpb25zXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWV0YWRhdGEge1xuICAgIHBhY2thZ2VOYW1lOiBzdHJpbmdcbiAgICBmaWxlTmFtZTogc3RyaW5nXG4gICAgcmV2aXNpb246IHN0cmluZyB8IHVuZGVmaW5lZFxuICAgIGNvbmZpZz86IFBhY2thZ2VDb25maWd1cmF0aW9uXG59XG5cbmZ1bmN0aW9uIGdldE1ldGFkYXRhKCkge1xuICAgIHJldHVybiBtZXRhZGF0YVxufVxuXG5mdW5jdGlvbiBwYXRoVG9SZWdFeHAocGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBSZWdFeHAoXG4gICAgICAgIChcbiAgICAgICAgICAgICdeJyArXG4gICAgICAgICAgICBwYXRoLnJlcGxhY2UoL1svXFxcXF4kKz8uKCl8W1xcXXt9XS9ndSwgJ1xcXFwkJicpLnJlcGxhY2VBbGwoJyonLCAnW14vXFxcXD9dKycpICtcbiAgICAgICAgICAgICcoXFxcXD8uKik/JCdcbiAgICAgICAgKS5yZXBsYWNlKCdbXi9cXFxcP10rW14vXFxcXD9dKyhcXFxcPy4qKT8kJywgJycpLFxuICAgICAgICAndScsXG4gICAgKVxufVxuXG5mdW5jdGlvbiBjb21iaW5lQ29uZmlnKFxuICAgIGJhc2U6IFBhY2thZ2VDb25maWd1cmF0aW9uIHwgdW5kZWZpbmVkLFxuICAgIG92ZXJyaWRlOiBIYW5kbGVyQ29uZmlndXJhdGlvbiB8IHVuZGVmaW5lZCxcbik6IChQYWNrYWdlQ29uZmlndXJhdGlvbiAmIEhhbmRsZXJDb25maWd1cmF0aW9uKSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKGJhc2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gb3ZlcnJpZGVcbiAgICB9IGVsc2UgaWYgKG92ZXJyaWRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGJhc2VcbiAgICB9XG4gICAgcmV0dXJuIHsgLi4uYmFzZSwgLi4ub3ZlcnJpZGUgfVxufVxuXG5mdW5jdGlvbiBodHRwSG9zdChcbiAgICBtZXRhOiBNZXRhZGF0YSB8IHVuZGVmaW5lZCxcbiAgICBjZmc6IEhhbmRsZXJDb25maWd1cmF0aW9uIHwgdW5kZWZpbmVkLFxuICAgIG1ldGhvZDogTWV0aG9kLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBlbnRyeTogSGFuZGxlcixcbikge1xuICAgIGFkZEhhbmRsZXIoJ2h0dHAnLCB7XG4gICAgICAgIG1ldGEsXG4gICAgICAgIGNvbmZpZzogY29tYmluZUNvbmZpZyhtZXRhPy5jb25maWcsIGNmZyksXG4gICAgICAgIG1ldGhvZCxcbiAgICAgICAgcGF0aFBhdHRlcm46IHBhdGgsXG4gICAgICAgIHBhdGhSZWdFeHA6IHBhdGhUb1JlZ0V4cChwYXRoKSxcbiAgICAgICAgZW50cnksXG4gICAgfSlcbn1cblxuc2V0SHR0cEhvc3QoaHR0cEhvc3QpXG5cbmV4cG9ydCB0eXBlIE1ldGhvZCA9ICdHRVQnIHwgJ1BPU1QnIHwgJ1BVVCcgfCAnUEFUQ0gnIHwgJ0RFTEVURSdcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVySHR0cEhhbmRsZXIoXG4gICAgbWV0aG9kOiBNZXRob2QsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGNvbmZpZ09ySGFuZGxlcjogSGFuZGxlckNvbmZpZ3VyYXRpb24gfCBIYW5kbGVyLFxuICAgIGZuPzogSGFuZGxlcixcbik6IHZvaWQge1xuICAgIGlmICh0eXBlb2YgY29uZmlnT3JIYW5kbGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGh0dHBIb3N0UmVnaXN0cnkoZ2V0TWV0YWRhdGEoKSwgdW5kZWZpbmVkLCBtZXRob2QsIHBhdGgsIGNvbmZpZ09ySGFuZGxlcilcbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoIWZuKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BsZWFzZSBwcm92aWRlIGEgaGFuZGxlciBmdW5jdGlvbi4nKVxuICAgICAgICB9XG4gICAgICAgIGh0dHBIb3N0UmVnaXN0cnkoZ2V0TWV0YWRhdGEoKSwgY29uZmlnT3JIYW5kbGVyLCBtZXRob2QsIHBhdGgsIGZuKVxuICAgIH1cbn1cbiJdfQ==
1
+ const handlers = {};
2
+ function addHandler(type, handler) {
3
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
4
+ ;
5
+ (handlers[type] ??= []).push(handler);
6
+ }
7
+ export function getHandlers(type) {
8
+ return (handlers[type] ?? []);
9
+ }
10
+ export function getHandler(type) {
11
+ const hs = getHandlers(type);
12
+ const [handler] = hs;
13
+ if (!handler) {
14
+ throw new Error(`No ${type} handler registered.`);
15
+ }
16
+ if (hs.length !== 1) {
17
+ throw new Error(`Multiple ${type} handlers registered.`);
18
+ }
19
+ return handler;
20
+ }
21
+ let httpHostRegistry;
22
+ function setHttpHost(host) {
23
+ httpHostRegistry = host;
24
+ }
25
+ let metadata;
26
+ export function setMeta(packageName, fileName, revision, config) {
27
+ metadata = {
28
+ packageName,
29
+ fileName,
30
+ revision,
31
+ config,
32
+ };
33
+ }
34
+ function getMetadata() {
35
+ return metadata;
36
+ }
37
+ function pathToRegExp(path) {
38
+ return new RegExp(('^' +
39
+ path.replace(/[/\\^$+?.()|[\]{}]/gu, '\\$&').replaceAll('*', '[^/\\?]+') +
40
+ '(\\?.*)?$').replace('[^/\\?]+[^/\\?]+(\\?.*)?$', ''), 'u');
41
+ }
42
+ function combineConfig(base, override) {
43
+ if (base === undefined) {
44
+ return override;
45
+ }
46
+ else if (override === undefined) {
47
+ return base;
48
+ }
49
+ return { ...base, ...override };
50
+ }
51
+ function httpHost(meta, cfg, method, path, entry) {
52
+ addHandler('http', {
53
+ meta,
54
+ config: combineConfig(meta?.config, cfg),
55
+ method,
56
+ pathPattern: path,
57
+ pathRegExp: pathToRegExp(path),
58
+ entry,
59
+ });
60
+ }
61
+ setHttpHost(httpHost);
62
+ export function registerHttpHandler(method, path, configOrHandler, fn) {
63
+ if (typeof configOrHandler === 'function') {
64
+ httpHostRegistry(getMetadata(), undefined, method, path, configOrHandler);
65
+ }
66
+ else {
67
+ if (!fn) {
68
+ throw new Error('Please provide a handler function.');
69
+ }
70
+ httpHostRegistry(getMetadata(), configOrHandler, method, path, fn);
71
+ }
72
+ }
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQkEsTUFBTSxRQUFRLEdBQWlDLEVBQUUsQ0FBQTtBQUVqRCxTQUFTLFVBQVUsQ0FBQyxJQUF3QixFQUFFLE9BQW9CO0lBQzlELHVFQUF1RTtJQUN2RSxDQUFDO0lBQUEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQzFDLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLElBQXdCO0lBQ2hELE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFrQixDQUFBO0FBQ2xELENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLElBQXdCO0lBQy9DLE1BQU0sRUFBRSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUM1QixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFBO0lBQ3BCLElBQUksQ0FBQyxPQUFPLEVBQUU7UUFDVixNQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxzQkFBc0IsQ0FBQyxDQUFBO0tBQ3BEO0lBQ0QsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLFlBQVksSUFBSSx1QkFBdUIsQ0FBQyxDQUFBO0tBQzNEO0lBQ0QsT0FBTyxPQUFPLENBQUE7QUFDbEIsQ0FBQztBQVVELElBQUksZ0JBQTBCLENBQUE7QUFFOUIsU0FBUyxXQUFXLENBQUMsSUFBYztJQUMvQixnQkFBZ0IsR0FBRyxJQUFJLENBQUE7QUFDM0IsQ0FBQztBQUVELElBQUksUUFBOEIsQ0FBQTtBQUVsQyxNQUFNLFVBQVUsT0FBTyxDQUNuQixXQUFtQixFQUNuQixRQUFnQixFQUNoQixRQUE0QixFQUM1QixNQUF3QztJQUV4QyxRQUFRLEdBQUc7UUFDUCxXQUFXO1FBQ1gsUUFBUTtRQUNSLFFBQVE7UUFDUixNQUFNO0tBQ1QsQ0FBQTtBQUNMLENBQUM7QUFpQkQsU0FBUyxXQUFXO0lBQ2hCLE9BQU8sUUFBUSxDQUFBO0FBQ25CLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxJQUFZO0lBQzlCLE9BQU8sSUFBSSxNQUFNLENBQ2IsQ0FDSSxHQUFHO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxNQUFNLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQztRQUN4RSxXQUFXLENBQ2QsQ0FBQyxPQUFPLENBQUMsMkJBQTJCLEVBQUUsRUFBRSxDQUFDLEVBQzFDLEdBQUcsQ0FDTixDQUFBO0FBQ0wsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUNsQixJQUFzQyxFQUN0QyxRQUEwQztJQUcxQyxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7UUFDcEIsT0FBTyxRQUFRLENBQUE7S0FDbEI7U0FBTSxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUU7UUFDL0IsT0FBTyxJQUFJLENBQUE7S0FDZDtJQUNELE9BQU8sRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLFFBQVEsRUFBRSxDQUFBO0FBQ25DLENBQUM7QUFFRCxTQUFTLFFBQVEsQ0FDYixJQUEwQixFQUMxQixHQUFxQyxFQUNyQyxNQUFjLEVBQ2QsSUFBWSxFQUNaLEtBQWM7SUFFZCxVQUFVLENBQUMsTUFBTSxFQUFFO1FBQ2YsSUFBSTtRQUNKLE1BQU0sRUFBRSxhQUFhLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7UUFDeEMsTUFBTTtRQUNOLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFVBQVUsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDO1FBQzlCLEtBQUs7S0FDUixDQUFDLENBQUE7QUFDTixDQUFDO0FBRUQsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBSXJCLE1BQU0sVUFBVSxtQkFBbUIsQ0FDL0IsTUFBYyxFQUNkLElBQVksRUFDWixlQUErQyxFQUMvQyxFQUFZO0lBRVosSUFBSSxPQUFPLGVBQWUsS0FBSyxVQUFVLEVBQUU7UUFDdkMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsZUFBZSxDQUFDLENBQUE7S0FDNUU7U0FBTTtRQUNILElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUE7U0FDeEQ7UUFDRCxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQTtLQUNyRTtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIYW5kbGVyQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL2NvbnRleHQuanMnXG5pbXBvcnQgeyBIYW5kbGVyIH0gZnJvbSAnLi4vaHR0cC5qcydcblxuZXhwb3J0IHR5cGUgSHR0cEhhbmRsZXIgPSB7XG4gICAgbWV0YTogTWV0YWRhdGEgfCB1bmRlZmluZWRcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWR1cGxpY2F0ZS10eXBlLWNvbnN0aXR1ZW50c1xuICAgIGNvbmZpZzogRnVsbENvbmZpZ3VyYXRpb24gfCB1bmRlZmluZWRcbiAgICBtZXRob2Q6IE1ldGhvZFxuICAgIHBhdGhQYXR0ZXJuOiBzdHJpbmdcbiAgICBwYXRoUmVnRXhwOiBSZWdFeHBcbiAgICBlbnRyeTogSGFuZGxlclxufVxuXG50eXBlIEhhbmRsZXJUeXBlcyA9IHtcbiAgICBodHRwOiBIdHRwSGFuZGxlclxufVxuXG5jb25zdCBoYW5kbGVyczogeyBba2V5OiBzdHJpbmddOiB1bmtub3duW10gfSA9IHt9XG5cbmZ1bmN0aW9uIGFkZEhhbmRsZXIodHlwZToga2V5b2YgSGFuZGxlclR5cGVzLCBoYW5kbGVyOiBIdHRwSGFuZGxlcikge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktY29uZGl0aW9uXG4gICAgOyhoYW5kbGVyc1t0eXBlXSA/Pz0gW10pLnB1c2goaGFuZGxlcilcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEhhbmRsZXJzKHR5cGU6IGtleW9mIEhhbmRsZXJUeXBlcykge1xuICAgIHJldHVybiAoaGFuZGxlcnNbdHlwZV0gPz8gW10pIGFzIEh0dHBIYW5kbGVyW11cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEhhbmRsZXIodHlwZToga2V5b2YgSGFuZGxlclR5cGVzKSB7XG4gICAgY29uc3QgaHMgPSBnZXRIYW5kbGVycyh0eXBlKVxuICAgIGNvbnN0IFtoYW5kbGVyXSA9IGhzXG4gICAgaWYgKCFoYW5kbGVyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gJHt0eXBlfSBoYW5kbGVyIHJlZ2lzdGVyZWQuYClcbiAgICB9XG4gICAgaWYgKGhzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE11bHRpcGxlICR7dHlwZX0gaGFuZGxlcnMgcmVnaXN0ZXJlZC5gKVxuICAgIH1cbiAgICByZXR1cm4gaGFuZGxlclxufVxuXG50eXBlIEh0dHBIb3N0ID0gKFxuICAgIG1ldGE6IE1ldGFkYXRhIHwgdW5kZWZpbmVkLFxuICAgIGNvbmZpZzogSGFuZGxlckNvbmZpZ3VyYXRpb24gfCB1bmRlZmluZWQsXG4gICAgbWV0aG9kOiBNZXRob2QsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGhhbmRsZXI6IEhhbmRsZXIsXG4pID0+IHZvaWRcblxubGV0IGh0dHBIb3N0UmVnaXN0cnk6IEh0dHBIb3N0XG5cbmZ1bmN0aW9uIHNldEh0dHBIb3N0KGhvc3Q6IEh0dHBIb3N0KSB7XG4gICAgaHR0cEhvc3RSZWdpc3RyeSA9IGhvc3Rcbn1cblxubGV0IG1ldGFkYXRhOiBNZXRhZGF0YSB8IHVuZGVmaW5lZFxuXG5leHBvcnQgZnVuY3Rpb24gc2V0TWV0YShcbiAgICBwYWNrYWdlTmFtZTogc3RyaW5nLFxuICAgIGZpbGVOYW1lOiBzdHJpbmcsXG4gICAgcmV2aXNpb246IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBjb25maWc6IFBhY2thZ2VDb25maWd1cmF0aW9uIHwgdW5kZWZpbmVkLFxuKSB7XG4gICAgbWV0YWRhdGEgPSB7XG4gICAgICAgIHBhY2thZ2VOYW1lLFxuICAgICAgICBmaWxlTmFtZSxcbiAgICAgICAgcmV2aXNpb24sXG4gICAgICAgIGNvbmZpZyxcbiAgICB9XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktaW50ZXJmYWNlXG5leHBvcnQgdHlwZSBQYWNrYWdlQ29uZmlndXJhdGlvbiA9IEhhbmRsZXJDb25maWd1cmF0aW9uICYge1xuICAgIC8vIFBsYWNlaG9sZGVyIGZvciBwYWNrYWdlLWxldmVsIGNvbmZpZ3VyYXRpb25zXG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZHVwbGljYXRlLXR5cGUtY29uc3RpdHVlbnRzXG5leHBvcnQgdHlwZSBGdWxsQ29uZmlndXJhdGlvbiA9IFBhY2thZ2VDb25maWd1cmF0aW9uICYgSGFuZGxlckNvbmZpZ3VyYXRpb25cblxuZXhwb3J0IHR5cGUgTWV0YWRhdGEgPSB7XG4gICAgcGFja2FnZU5hbWU6IHN0cmluZ1xuICAgIGZpbGVOYW1lOiBzdHJpbmdcbiAgICByZXZpc2lvbjogc3RyaW5nIHwgdW5kZWZpbmVkXG4gICAgY29uZmlnPzogUGFja2FnZUNvbmZpZ3VyYXRpb25cbn1cblxuZnVuY3Rpb24gZ2V0TWV0YWRhdGEoKSB7XG4gICAgcmV0dXJuIG1ldGFkYXRhXG59XG5cbmZ1bmN0aW9uIHBhdGhUb1JlZ0V4cChwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IFJlZ0V4cChcbiAgICAgICAgKFxuICAgICAgICAgICAgJ14nICtcbiAgICAgICAgICAgIHBhdGgucmVwbGFjZSgvWy9cXFxcXiQrPy4oKXxbXFxde31dL2d1LCAnXFxcXCQmJykucmVwbGFjZUFsbCgnKicsICdbXi9cXFxcP10rJykgK1xuICAgICAgICAgICAgJyhcXFxcPy4qKT8kJ1xuICAgICAgICApLnJlcGxhY2UoJ1teL1xcXFw/XStbXi9cXFxcP10rKFxcXFw/LiopPyQnLCAnJyksXG4gICAgICAgICd1JyxcbiAgICApXG59XG5cbmZ1bmN0aW9uIGNvbWJpbmVDb25maWcoXG4gICAgYmFzZTogUGFja2FnZUNvbmZpZ3VyYXRpb24gfCB1bmRlZmluZWQsXG4gICAgb3ZlcnJpZGU6IEhhbmRsZXJDb25maWd1cmF0aW9uIHwgdW5kZWZpbmVkLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZHVwbGljYXRlLXR5cGUtY29uc3RpdHVlbnRzXG4pOiBGdWxsQ29uZmlndXJhdGlvbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKGJhc2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gb3ZlcnJpZGVcbiAgICB9IGVsc2UgaWYgKG92ZXJyaWRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGJhc2VcbiAgICB9XG4gICAgcmV0dXJuIHsgLi4uYmFzZSwgLi4ub3ZlcnJpZGUgfVxufVxuXG5mdW5jdGlvbiBodHRwSG9zdChcbiAgICBtZXRhOiBNZXRhZGF0YSB8IHVuZGVmaW5lZCxcbiAgICBjZmc6IEhhbmRsZXJDb25maWd1cmF0aW9uIHwgdW5kZWZpbmVkLFxuICAgIG1ldGhvZDogTWV0aG9kLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBlbnRyeTogSGFuZGxlcixcbikge1xuICAgIGFkZEhhbmRsZXIoJ2h0dHAnLCB7XG4gICAgICAgIG1ldGEsXG4gICAgICAgIGNvbmZpZzogY29tYmluZUNvbmZpZyhtZXRhPy5jb25maWcsIGNmZyksXG4gICAgICAgIG1ldGhvZCxcbiAgICAgICAgcGF0aFBhdHRlcm46IHBhdGgsXG4gICAgICAgIHBhdGhSZWdFeHA6IHBhdGhUb1JlZ0V4cChwYXRoKSxcbiAgICAgICAgZW50cnksXG4gICAgfSlcbn1cblxuc2V0SHR0cEhvc3QoaHR0cEhvc3QpXG5cbmV4cG9ydCB0eXBlIE1ldGhvZCA9ICdHRVQnIHwgJ1BPU1QnIHwgJ1BVVCcgfCAnUEFUQ0gnIHwgJ0RFTEVURSdcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVySHR0cEhhbmRsZXIoXG4gICAgbWV0aG9kOiBNZXRob2QsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGNvbmZpZ09ySGFuZGxlcjogSGFuZGxlckNvbmZpZ3VyYXRpb24gfCBIYW5kbGVyLFxuICAgIGZuPzogSGFuZGxlcixcbik6IHZvaWQge1xuICAgIGlmICh0eXBlb2YgY29uZmlnT3JIYW5kbGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGh0dHBIb3N0UmVnaXN0cnkoZ2V0TWV0YWRhdGEoKSwgdW5kZWZpbmVkLCBtZXRob2QsIHBhdGgsIGNvbmZpZ09ySGFuZGxlcilcbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoIWZuKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BsZWFzZSBwcm92aWRlIGEgaGFuZGxlciBmdW5jdGlvbi4nKVxuICAgICAgICB9XG4gICAgICAgIGh0dHBIb3N0UmVnaXN0cnkoZ2V0TWV0YWRhdGEoKSwgY29uZmlnT3JIYW5kbGVyLCBtZXRob2QsIHBhdGgsIGZuKVxuICAgIH1cbn1cbiJdfQ==
package/http.d.ts CHANGED
@@ -1,39 +1,39 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- import type { UrlWithParsedQuery } from 'node:url';
3
- import { Context, HandlerConfiguration, Json } from './context.js';
4
- export * from './context.js';
5
- export interface ResponseHeaders {
6
- [key: string]: string;
7
- }
8
- export interface FullResult {
9
- headers?: ResponseHeaders;
10
- status?: number;
11
- body?: unknown;
12
- }
13
- export type Result = void | string | FullResult;
14
- export interface HttpRequest {
15
- readonly rawUrl: string;
16
- readonly url: Readonly<UrlWithParsedQuery> & {
17
- pathStepAt: (index: number) => string;
18
- };
19
- readonly headers: Readonly<ResponseHeaders>;
20
- readonly body?: Json | string;
21
- }
22
- export interface HttpHandlerConfiguration extends HandlerConfiguration {
23
- /**
24
- * A string identifying which domains can access the endpoint cross-origin.
25
- * @default undefined
26
- */
27
- readonly cors?: string;
28
- }
29
- export type Handler = (context: Context, request: HttpRequest) => Promise<Result> | Result;
30
- export declare function get(path: string, fn: Handler): void;
31
- export declare function get(path: string, config: HttpHandlerConfiguration, fn: Handler): void;
32
- export declare function post(path: string, fn: Handler): void;
33
- export declare function post(path: string, config: HttpHandlerConfiguration, fn: Handler): void;
34
- export declare function put(path: string, fn: Handler): void;
35
- export declare function put(path: string, config: HttpHandlerConfiguration, fn: Handler): void;
36
- export declare function patch(path: string, fn: Handler): void;
37
- export declare function patch(path: string, config: HttpHandlerConfiguration, fn: Handler): void;
38
- export declare function del(path: string, fn: Handler): void;
39
- export declare function del(path: string, config: HttpHandlerConfiguration, fn: Handler): void;
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import type { UrlWithParsedQuery } from 'node:url';
3
+ import { Context, HandlerConfiguration, Json } from './context.js';
4
+ export * from './context.js';
5
+ export type ResponseHeaders = {
6
+ [key: string]: string;
7
+ };
8
+ export type FullResult = {
9
+ headers?: ResponseHeaders;
10
+ status?: number;
11
+ body?: unknown;
12
+ };
13
+ export type Result = void | string | FullResult;
14
+ export type HttpRequest = {
15
+ readonly rawUrl: string;
16
+ readonly url: Readonly<UrlWithParsedQuery> & {
17
+ pathStepAt: (index: number) => string;
18
+ };
19
+ readonly headers: Readonly<ResponseHeaders>;
20
+ readonly body?: Json | string;
21
+ };
22
+ export type HttpHandlerConfiguration = HandlerConfiguration & {
23
+ /**
24
+ * A string identifying which domains can access the endpoint cross-origin.
25
+ * @default undefined
26
+ */
27
+ readonly cors?: string;
28
+ };
29
+ export type Handler = (context: Context, request: HttpRequest) => Promise<Result> | Result;
30
+ export declare function get(path: string, fn: Handler): void;
31
+ export declare function get(path: string, config: HttpHandlerConfiguration, fn: Handler): void;
32
+ export declare function post(path: string, fn: Handler): void;
33
+ export declare function post(path: string, config: HttpHandlerConfiguration, fn: Handler): void;
34
+ export declare function put(path: string, fn: Handler): void;
35
+ export declare function put(path: string, config: HttpHandlerConfiguration, fn: Handler): void;
36
+ export declare function patch(path: string, fn: Handler): void;
37
+ export declare function patch(path: string, config: HttpHandlerConfiguration, fn: Handler): void;
38
+ export declare function del(path: string, fn: Handler): void;
39
+ export declare function del(path: string, config: HttpHandlerConfiguration, fn: Handler): void;
package/http.js CHANGED
@@ -1,18 +1,18 @@
1
- import { registerHttpHandler } from './host/registry.js';
2
- export * from './context.js';
3
- export function get(path, configOrHandler, fn) {
4
- registerHttpHandler('GET', path, configOrHandler, fn);
5
- }
6
- export function post(path, configOrHandler, fn) {
7
- registerHttpHandler('POST', path, configOrHandler, fn);
8
- }
9
- export function put(path, configOrHandler, fn) {
10
- registerHttpHandler('PUT', path, configOrHandler, fn);
11
- }
12
- export function patch(path, configOrHandler, fn) {
13
- registerHttpHandler('PATCH', path, configOrHandler, fn);
14
- }
15
- export function del(path, configOrHandler, fn) {
16
- registerHttpHandler('DELETE', path, configOrHandler, fn);
17
- }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImh0dHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFeEQsY0FBYyxjQUFjLENBQUE7QUFpQzVCLE1BQU0sVUFBVSxHQUFHLENBQ2YsSUFBWSxFQUNaLGVBQW1ELEVBQ25ELEVBQVk7SUFFWixtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQTtBQUN6RCxDQUFDO0FBR0QsTUFBTSxVQUFVLElBQUksQ0FDaEIsSUFBWSxFQUNaLGVBQW1ELEVBQ25ELEVBQVk7SUFFWixtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQTtBQUMxRCxDQUFDO0FBR0QsTUFBTSxVQUFVLEdBQUcsQ0FDZixJQUFZLEVBQ1osZUFBbUQsRUFDbkQsRUFBWTtJQUVaLG1CQUFtQixDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0FBQ3pELENBQUM7QUFHRCxNQUFNLFVBQVUsS0FBSyxDQUNqQixJQUFZLEVBQ1osZUFBbUQsRUFDbkQsRUFBWTtJQUVaLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0FBQzNELENBQUM7QUFHRCxNQUFNLFVBQVUsR0FBRyxDQUNmLElBQVksRUFDWixlQUFtRCxFQUNuRCxFQUFZO0lBRVosbUJBQW1CLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUE7QUFDNUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVXJsV2l0aFBhcnNlZFF1ZXJ5IH0gZnJvbSAnbm9kZTp1cmwnXG5pbXBvcnQgeyBDb250ZXh0LCBIYW5kbGVyQ29uZmlndXJhdGlvbiwgSnNvbiB9IGZyb20gJy4vY29udGV4dC5qcydcbmltcG9ydCB7IHJlZ2lzdGVySHR0cEhhbmRsZXIgfSBmcm9tICcuL2hvc3QvcmVnaXN0cnkuanMnXG5cbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC5qcydcblxuZXhwb3J0IGludGVyZmFjZSBSZXNwb25zZUhlYWRlcnMge1xuICAgIFtrZXk6IHN0cmluZ106IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZ1bGxSZXN1bHQge1xuICAgIGhlYWRlcnM/OiBSZXNwb25zZUhlYWRlcnNcbiAgICBzdGF0dXM/OiBudW1iZXJcbiAgICBib2R5PzogdW5rbm93blxufVxuXG5leHBvcnQgdHlwZSBSZXN1bHQgPSB2b2lkIHwgc3RyaW5nIHwgRnVsbFJlc3VsdFxuXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBSZXF1ZXN0IHtcbiAgICByZWFkb25seSByYXdVcmw6IHN0cmluZ1xuICAgIHJlYWRvbmx5IHVybDogUmVhZG9ubHk8VXJsV2l0aFBhcnNlZFF1ZXJ5PiAmIHsgcGF0aFN0ZXBBdDogKGluZGV4OiBudW1iZXIpID0+IHN0cmluZyB9XG4gICAgcmVhZG9ubHkgaGVhZGVyczogUmVhZG9ubHk8UmVzcG9uc2VIZWFkZXJzPlxuICAgIHJlYWRvbmx5IGJvZHk/OiBKc29uIHwgc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cEhhbmRsZXJDb25maWd1cmF0aW9uIGV4dGVuZHMgSGFuZGxlckNvbmZpZ3VyYXRpb24ge1xuICAgIC8qKlxuICAgICAqIEEgc3RyaW5nIGlkZW50aWZ5aW5nIHdoaWNoIGRvbWFpbnMgY2FuIGFjY2VzcyB0aGUgZW5kcG9pbnQgY3Jvc3Mtb3JpZ2luLlxuICAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgICAqL1xuICAgIHJlYWRvbmx5IGNvcnM/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgSGFuZGxlciA9IChjb250ZXh0OiBDb250ZXh0LCByZXF1ZXN0OiBIdHRwUmVxdWVzdCkgPT4gUHJvbWlzZTxSZXN1bHQ+IHwgUmVzdWx0XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXQocGF0aDogc3RyaW5nLCBmbjogSGFuZGxlcik6IHZvaWRcbmV4cG9ydCBmdW5jdGlvbiBnZXQocGF0aDogc3RyaW5nLCBjb25maWc6IEh0dHBIYW5kbGVyQ29uZmlndXJhdGlvbiwgZm46IEhhbmRsZXIpOiB2b2lkXG5leHBvcnQgZnVuY3Rpb24gZ2V0KFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBjb25maWdPckhhbmRsZXI6IEh0dHBIYW5kbGVyQ29uZmlndXJhdGlvbiB8IEhhbmRsZXIsXG4gICAgZm4/OiBIYW5kbGVyLFxuKTogdm9pZCB7XG4gICAgcmVnaXN0ZXJIdHRwSGFuZGxlcignR0VUJywgcGF0aCwgY29uZmlnT3JIYW5kbGVyLCBmbilcbn1cbmV4cG9ydCBmdW5jdGlvbiBwb3N0KHBhdGg6IHN0cmluZywgZm46IEhhbmRsZXIpOiB2b2lkXG5leHBvcnQgZnVuY3Rpb24gcG9zdChwYXRoOiBzdHJpbmcsIGNvbmZpZzogSHR0cEhhbmRsZXJDb25maWd1cmF0aW9uLCBmbjogSGFuZGxlcik6IHZvaWRcbmV4cG9ydCBmdW5jdGlvbiBwb3N0KFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBjb25maWdPckhhbmRsZXI6IEh0dHBIYW5kbGVyQ29uZmlndXJhdGlvbiB8IEhhbmRsZXIsXG4gICAgZm4/OiBIYW5kbGVyLFxuKTogdm9pZCB7XG4gICAgcmVnaXN0ZXJIdHRwSGFuZGxlcignUE9TVCcsIHBhdGgsIGNvbmZpZ09ySGFuZGxlciwgZm4pXG59XG5leHBvcnQgZnVuY3Rpb24gcHV0KHBhdGg6IHN0cmluZywgZm46IEhhbmRsZXIpOiB2b2lkXG5leHBvcnQgZnVuY3Rpb24gcHV0KHBhdGg6IHN0cmluZywgY29uZmlnOiBIdHRwSGFuZGxlckNvbmZpZ3VyYXRpb24sIGZuOiBIYW5kbGVyKTogdm9pZFxuZXhwb3J0IGZ1bmN0aW9uIHB1dChcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgY29uZmlnT3JIYW5kbGVyOiBIdHRwSGFuZGxlckNvbmZpZ3VyYXRpb24gfCBIYW5kbGVyLFxuICAgIGZuPzogSGFuZGxlcixcbik6IHZvaWQge1xuICAgIHJlZ2lzdGVySHR0cEhhbmRsZXIoJ1BVVCcsIHBhdGgsIGNvbmZpZ09ySGFuZGxlciwgZm4pXG59XG5leHBvcnQgZnVuY3Rpb24gcGF0Y2gocGF0aDogc3RyaW5nLCBmbjogSGFuZGxlcik6IHZvaWRcbmV4cG9ydCBmdW5jdGlvbiBwYXRjaChwYXRoOiBzdHJpbmcsIGNvbmZpZzogSHR0cEhhbmRsZXJDb25maWd1cmF0aW9uLCBmbjogSGFuZGxlcik6IHZvaWRcbmV4cG9ydCBmdW5jdGlvbiBwYXRjaChcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgY29uZmlnT3JIYW5kbGVyOiBIdHRwSGFuZGxlckNvbmZpZ3VyYXRpb24gfCBIYW5kbGVyLFxuICAgIGZuPzogSGFuZGxlcixcbik6IHZvaWQge1xuICAgIHJlZ2lzdGVySHR0cEhhbmRsZXIoJ1BBVENIJywgcGF0aCwgY29uZmlnT3JIYW5kbGVyLCBmbilcbn1cbmV4cG9ydCBmdW5jdGlvbiBkZWwocGF0aDogc3RyaW5nLCBmbjogSGFuZGxlcik6IHZvaWRcbmV4cG9ydCBmdW5jdGlvbiBkZWwocGF0aDogc3RyaW5nLCBjb25maWc6IEh0dHBIYW5kbGVyQ29uZmlndXJhdGlvbiwgZm46IEhhbmRsZXIpOiB2b2lkXG5leHBvcnQgZnVuY3Rpb24gZGVsKFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBjb25maWdPckhhbmRsZXI6IEh0dHBIYW5kbGVyQ29uZmlndXJhdGlvbiB8IEhhbmRsZXIsXG4gICAgZm4/OiBIYW5kbGVyLFxuKTogdm9pZCB7XG4gICAgcmVnaXN0ZXJIdHRwSGFuZGxlcignREVMRVRFJywgcGF0aCwgY29uZmlnT3JIYW5kbGVyLCBmbilcbn1cbiJdfQ==
1
+ import { registerHttpHandler } from './host/registry.js';
2
+ export * from './context.js';
3
+ export function get(path, configOrHandler, fn) {
4
+ registerHttpHandler('GET', path, configOrHandler, fn);
5
+ }
6
+ export function post(path, configOrHandler, fn) {
7
+ registerHttpHandler('POST', path, configOrHandler, fn);
8
+ }
9
+ export function put(path, configOrHandler, fn) {
10
+ registerHttpHandler('PUT', path, configOrHandler, fn);
11
+ }
12
+ export function patch(path, configOrHandler, fn) {
13
+ registerHttpHandler('PATCH', path, configOrHandler, fn);
14
+ }
15
+ export function del(path, configOrHandler, fn) {
16
+ registerHttpHandler('DELETE', path, configOrHandler, fn);
17
+ }
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImh0dHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFeEQsY0FBYyxjQUFjLENBQUE7QUFpQzVCLE1BQU0sVUFBVSxHQUFHLENBQ2YsSUFBWSxFQUNaLGVBQW1ELEVBQ25ELEVBQVk7SUFFWixtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQTtBQUN6RCxDQUFDO0FBR0QsTUFBTSxVQUFVLElBQUksQ0FDaEIsSUFBWSxFQUNaLGVBQW1ELEVBQ25ELEVBQVk7SUFFWixtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQTtBQUMxRCxDQUFDO0FBR0QsTUFBTSxVQUFVLEdBQUcsQ0FDZixJQUFZLEVBQ1osZUFBbUQsRUFDbkQsRUFBWTtJQUVaLG1CQUFtQixDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0FBQ3pELENBQUM7QUFHRCxNQUFNLFVBQVUsS0FBSyxDQUNqQixJQUFZLEVBQ1osZUFBbUQsRUFDbkQsRUFBWTtJQUVaLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0FBQzNELENBQUM7QUFHRCxNQUFNLFVBQVUsR0FBRyxDQUNmLElBQVksRUFDWixlQUFtRCxFQUNuRCxFQUFZO0lBRVosbUJBQW1CLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUE7QUFDNUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVXJsV2l0aFBhcnNlZFF1ZXJ5IH0gZnJvbSAnbm9kZTp1cmwnXG5pbXBvcnQgeyBDb250ZXh0LCBIYW5kbGVyQ29uZmlndXJhdGlvbiwgSnNvbiB9IGZyb20gJy4vY29udGV4dC5qcydcbmltcG9ydCB7IHJlZ2lzdGVySHR0cEhhbmRsZXIgfSBmcm9tICcuL2hvc3QvcmVnaXN0cnkuanMnXG5cbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC5qcydcblxuZXhwb3J0IHR5cGUgUmVzcG9uc2VIZWFkZXJzID0ge1xuICAgIFtrZXk6IHN0cmluZ106IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBGdWxsUmVzdWx0ID0ge1xuICAgIGhlYWRlcnM/OiBSZXNwb25zZUhlYWRlcnNcbiAgICBzdGF0dXM/OiBudW1iZXJcbiAgICBib2R5PzogdW5rbm93blxufVxuXG5leHBvcnQgdHlwZSBSZXN1bHQgPSB2b2lkIHwgc3RyaW5nIHwgRnVsbFJlc3VsdFxuXG5leHBvcnQgdHlwZSBIdHRwUmVxdWVzdCA9IHtcbiAgICByZWFkb25seSByYXdVcmw6IHN0cmluZ1xuICAgIHJlYWRvbmx5IHVybDogUmVhZG9ubHk8VXJsV2l0aFBhcnNlZFF1ZXJ5PiAmIHsgcGF0aFN0ZXBBdDogKGluZGV4OiBudW1iZXIpID0+IHN0cmluZyB9XG4gICAgcmVhZG9ubHkgaGVhZGVyczogUmVhZG9ubHk8UmVzcG9uc2VIZWFkZXJzPlxuICAgIHJlYWRvbmx5IGJvZHk/OiBKc29uIHwgc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIEh0dHBIYW5kbGVyQ29uZmlndXJhdGlvbiA9IEhhbmRsZXJDb25maWd1cmF0aW9uICYge1xuICAgIC8qKlxuICAgICAqIEEgc3RyaW5nIGlkZW50aWZ5aW5nIHdoaWNoIGRvbWFpbnMgY2FuIGFjY2VzcyB0aGUgZW5kcG9pbnQgY3Jvc3Mtb3JpZ2luLlxuICAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgICAqL1xuICAgIHJlYWRvbmx5IGNvcnM/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgSGFuZGxlciA9IChjb250ZXh0OiBDb250ZXh0LCByZXF1ZXN0OiBIdHRwUmVxdWVzdCkgPT4gUHJvbWlzZTxSZXN1bHQ+IHwgUmVzdWx0XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXQocGF0aDogc3RyaW5nLCBmbjogSGFuZGxlcik6IHZvaWRcbmV4cG9ydCBmdW5jdGlvbiBnZXQocGF0aDogc3RyaW5nLCBjb25maWc6IEh0dHBIYW5kbGVyQ29uZmlndXJhdGlvbiwgZm46IEhhbmRsZXIpOiB2b2lkXG5leHBvcnQgZnVuY3Rpb24gZ2V0KFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBjb25maWdPckhhbmRsZXI6IEh0dHBIYW5kbGVyQ29uZmlndXJhdGlvbiB8IEhhbmRsZXIsXG4gICAgZm4/OiBIYW5kbGVyLFxuKTogdm9pZCB7XG4gICAgcmVnaXN0ZXJIdHRwSGFuZGxlcignR0VUJywgcGF0aCwgY29uZmlnT3JIYW5kbGVyLCBmbilcbn1cbmV4cG9ydCBmdW5jdGlvbiBwb3N0KHBhdGg6IHN0cmluZywgZm46IEhhbmRsZXIpOiB2b2lkXG5leHBvcnQgZnVuY3Rpb24gcG9zdChwYXRoOiBzdHJpbmcsIGNvbmZpZzogSHR0cEhhbmRsZXJDb25maWd1cmF0aW9uLCBmbjogSGFuZGxlcik6IHZvaWRcbmV4cG9ydCBmdW5jdGlvbiBwb3N0KFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBjb25maWdPckhhbmRsZXI6IEh0dHBIYW5kbGVyQ29uZmlndXJhdGlvbiB8IEhhbmRsZXIsXG4gICAgZm4/OiBIYW5kbGVyLFxuKTogdm9pZCB7XG4gICAgcmVnaXN0ZXJIdHRwSGFuZGxlcignUE9TVCcsIHBhdGgsIGNvbmZpZ09ySGFuZGxlciwgZm4pXG59XG5leHBvcnQgZnVuY3Rpb24gcHV0KHBhdGg6IHN0cmluZywgZm46IEhhbmRsZXIpOiB2b2lkXG5leHBvcnQgZnVuY3Rpb24gcHV0KHBhdGg6IHN0cmluZywgY29uZmlnOiBIdHRwSGFuZGxlckNvbmZpZ3VyYXRpb24sIGZuOiBIYW5kbGVyKTogdm9pZFxuZXhwb3J0IGZ1bmN0aW9uIHB1dChcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgY29uZmlnT3JIYW5kbGVyOiBIdHRwSGFuZGxlckNvbmZpZ3VyYXRpb24gfCBIYW5kbGVyLFxuICAgIGZuPzogSGFuZGxlcixcbik6IHZvaWQge1xuICAgIHJlZ2lzdGVySHR0cEhhbmRsZXIoJ1BVVCcsIHBhdGgsIGNvbmZpZ09ySGFuZGxlciwgZm4pXG59XG5leHBvcnQgZnVuY3Rpb24gcGF0Y2gocGF0aDogc3RyaW5nLCBmbjogSGFuZGxlcik6IHZvaWRcbmV4cG9ydCBmdW5jdGlvbiBwYXRjaChwYXRoOiBzdHJpbmcsIGNvbmZpZzogSHR0cEhhbmRsZXJDb25maWd1cmF0aW9uLCBmbjogSGFuZGxlcik6IHZvaWRcbmV4cG9ydCBmdW5jdGlvbiBwYXRjaChcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgY29uZmlnT3JIYW5kbGVyOiBIdHRwSGFuZGxlckNvbmZpZ3VyYXRpb24gfCBIYW5kbGVyLFxuICAgIGZuPzogSGFuZGxlcixcbik6IHZvaWQge1xuICAgIHJlZ2lzdGVySHR0cEhhbmRsZXIoJ1BBVENIJywgcGF0aCwgY29uZmlnT3JIYW5kbGVyLCBmbilcbn1cbmV4cG9ydCBmdW5jdGlvbiBkZWwocGF0aDogc3RyaW5nLCBmbjogSGFuZGxlcik6IHZvaWRcbmV4cG9ydCBmdW5jdGlvbiBkZWwocGF0aDogc3RyaW5nLCBjb25maWc6IEh0dHBIYW5kbGVyQ29uZmlndXJhdGlvbiwgZm46IEhhbmRsZXIpOiB2b2lkXG5leHBvcnQgZnVuY3Rpb24gZGVsKFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBjb25maWdPckhhbmRsZXI6IEh0dHBIYW5kbGVyQ29uZmlndXJhdGlvbiB8IEhhbmRsZXIsXG4gICAgZm4/OiBIYW5kbGVyLFxuKTogdm9pZCB7XG4gICAgcmVnaXN0ZXJIdHRwSGFuZGxlcignREVMRVRFJywgcGF0aCwgY29uZmlnT3JIYW5kbGVyLCBmbilcbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@riddance/host",
3
- "version": "0.0.11",
3
+ "version": "0.0.13",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "engines": {
7
- "node": ">=16"
7
+ "node": ">=18"
8
8
  },
9
9
  "keywords": [
10
10
  "riddance",
@@ -29,10 +29,13 @@
29
29
  "./http": "./host/http.js"
30
30
  },
31
31
  "scripts": {
32
- "prepack": "node node_modules/@riddance/env/bin/build.js",
33
- "start": "watch"
32
+ "start": "riddance-watch",
33
+ "prepack": "riddance-build",
34
+ "prepublishOnly": "riddance-prepublish",
35
+ "postpublish": "riddance-sync"
34
36
  },
35
37
  "devDependencies": {
36
- "@riddance/env": "0.2.4"
37
- }
38
- }
38
+ "@riddance/env": "0.4.3"
39
+ },
40
+ "gitHead": "8f6355e2dd0a0881e596de90c2898c64107e1c7b"
41
+ }