Compare commits
38 Commits
v0.0.1
...
v0.0.2-dev
Author | SHA1 | Date |
---|---|---|
semantic-release-bot | 533b8a32d5 | |
Derrick Hammer | 2445de5711 | |
Derrick Hammer | fb6b5c4b52 | |
Derrick Hammer | 03503c1b77 | |
Derrick Hammer | 4642c10bf2 | |
Derrick Hammer | 69bb1f7c60 | |
Derrick Hammer | 6f6a79599c | |
Derrick Hammer | 2bd13bb71b | |
Derrick Hammer | 1b50865939 | |
Derrick Hammer | e0a8465249 | |
Derrick Hammer | 2d76906fa5 | |
Derrick Hammer | 29d56b1ceb | |
Derrick Hammer | d9e0e654d8 | |
Derrick Hammer | e8954d7fe9 | |
Derrick Hammer | 657131b6ff | |
Derrick Hammer | 08f211d8fd | |
Derrick Hammer | cf3f54f2ee | |
Derrick Hammer | 5a9f7ebdcd | |
Derrick Hammer | cae357cd98 | |
Derrick Hammer | 13eb79ae7e | |
Derrick Hammer | ac12204391 | |
Derrick Hammer | dee297e0cd | |
Derrick Hammer | c2d428758d | |
Derrick Hammer | 89a17b5ac8 | |
Derrick Hammer | 90330d8dcd | |
Derrick Hammer | f691a24923 | |
Derrick Hammer | 37985d1010 | |
Derrick Hammer | f60d29b95a | |
Derrick Hammer | 2b747e72fa | |
Derrick Hammer | 9818d17a06 | |
Derrick Hammer | 0204e4d5e3 | |
Derrick Hammer | cf4df9dc91 | |
Derrick Hammer | 1c9b882642 | |
Derrick Hammer | ef787eba13 | |
Derrick Hammer | e06c86720f | |
Derrick Hammer | 8a88a43c20 | |
Derrick Hammer | 1fe0496312 | |
Derrick Hammer | 183199247d |
|
@ -0,0 +1,13 @@
|
|||
name: Build/Publish
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
- develop-*
|
||||
|
||||
jobs:
|
||||
main:
|
||||
uses: lumeweb/github-node-deploy-workflow/.github/workflows/main.yml@master
|
||||
secrets: inherit
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"preset": [
|
||||
"@lumeweb/node-library-preset"
|
||||
]
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
## [0.0.2-develop.1](https://git.lumeweb.com/LumeWeb/kernel-libresolver/compare/v0.0.1...v0.0.2-develop.1) (2023-07-05)
|
2
LICENSE
2
LICENSE
|
@ -1,6 +1,6 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2022 Lume Web
|
||||
Copyright (c) 2022 Hammer Technologies LLC
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"name": "@lumeweb/kernel-libresolver",
|
||||
"version": "0.0.2-develop.1",
|
||||
"main": "lin/index.js",
|
||||
"type": "module",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "gitea@git.lumeweb.com:LumeWeb/kernel-libresolver.git"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@lumeweb/node-library-preset": "^0.2.7",
|
||||
"presetter": "*"
|
||||
},
|
||||
"readme": "ERROR: No README data found!",
|
||||
"scripts": {
|
||||
"prepare": "presetter bootstrap",
|
||||
"build": "run build",
|
||||
"semantic-release": "semantic-release"
|
||||
},
|
||||
"dependencies": {
|
||||
"@lumeweb/kernel-dns-client": "^0.0.2-develop.1",
|
||||
"@lumeweb/libkernel": "^0.1.0-develop.14",
|
||||
"@lumeweb/libresolver": "^0.0.2-develop.1"
|
||||
},
|
||||
"files": [
|
||||
"lib"
|
||||
],
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
import { createClient } from "@lumeweb/kernel-dns-client";
|
||||
|
||||
export const dnsClient = createClient();
|
|
@ -0,0 +1,83 @@
|
|||
import {
|
||||
addHandler,
|
||||
ActiveQuery,
|
||||
handleMessage,
|
||||
} from "@lumeweb/libkernel/module";
|
||||
|
||||
import type {
|
||||
DNSResult,
|
||||
ResolverModule as ResolverModuleBase,
|
||||
} from "@lumeweb/libresolver";
|
||||
import { DNS_RECORD_TYPE } from "@lumeweb/libresolver";
|
||||
import { dnsClient } from "./client.js";
|
||||
import { DnsClient } from "@lumeweb/kernel-dns-client";
|
||||
import type { ResolverOptions } from "@lumeweb/libresolver";
|
||||
|
||||
let resolver: ResolverModule | ResolverModuleBase;
|
||||
|
||||
export interface ResolverModule {
|
||||
get resolver(): DnsClient;
|
||||
|
||||
set resolver(value: DnsClient);
|
||||
|
||||
resolve(
|
||||
domain: string,
|
||||
options: ResolverOptions,
|
||||
bypassCache: boolean,
|
||||
): Promise<DNSResult>;
|
||||
|
||||
getSupportedTlds(): string[];
|
||||
|
||||
getSupportedTlds(): Promise<string[]>;
|
||||
|
||||
getSupportedTlds(): any;
|
||||
}
|
||||
|
||||
export function setup(rm: ResolverModule | ResolverModuleBase) {
|
||||
addHandler("resolve", handleResolve);
|
||||
addHandler("register", handleRegister);
|
||||
addHandler("getSupportedTlds", handleGetSupportedTlds);
|
||||
onmessage = handleMessage;
|
||||
resolver = rm;
|
||||
// @ts-ignore
|
||||
resolver.resolver = dnsClient;
|
||||
}
|
||||
|
||||
async function handleRegister(aq: ActiveQuery) {
|
||||
await dnsClient.register();
|
||||
aq.respond();
|
||||
}
|
||||
|
||||
async function handleResolve(aq: ActiveQuery) {
|
||||
if (!("domain" in aq.callerInput)) {
|
||||
aq.reject("domain required");
|
||||
return;
|
||||
}
|
||||
|
||||
let ret: DNSResult;
|
||||
try {
|
||||
ret = await resolver.resolve(
|
||||
aq.callerInput.domain,
|
||||
aq.callerInput?.options ?? { type: DNS_RECORD_TYPE.CONTENT },
|
||||
aq.callerInput?.bypassCache || false,
|
||||
);
|
||||
} catch (e: any) {
|
||||
aq.reject(e);
|
||||
return;
|
||||
}
|
||||
|
||||
if (ret.error) {
|
||||
aq.reject(ret.error as any);
|
||||
return;
|
||||
}
|
||||
|
||||
aq.respond(ret);
|
||||
}
|
||||
|
||||
function handleGetSupportedTlds(aq: ActiveQuery) {
|
||||
aq.respond(resolver.getSupportedTlds());
|
||||
}
|
||||
|
||||
export * from "@lumeweb/libresolver/lib/util.js";
|
||||
export * from "@lumeweb/libresolver/lib/types.js";
|
||||
export { AbstractResolverModule } from "@lumeweb/libresolver/lib/resolverModule.js";
|
Loading…
Reference in New Issue