UNPKG

@m-ld/gateway

Version:

m-ld gateway for services

53 lines 3.44 kB
import { AccountOwnedId } from './AccountOwnedId.js'; import { domainRelativeIri } from './util.js'; import * as dns from 'dns/promises'; import { isFQDN } from './validate.js'; /** * Utility base class for things that represent a Gateway, may be a client proxy */ export class BaseGateway { constructor(domainName) { this.domainName = domainName; } ownedRefAsId(tsRef) { // A timesheet reference may be relative to the domain base return AccountOwnedId.fromReference(tsRef, this.domainName); } ownedId({ account, name }) { return new AccountOwnedId({ gateway: this.domainName, account, name }); } absoluteId(iri) { return domainRelativeIri(iri, this.domainName); } } /** * */ export function resolveGateway(address) { if (address instanceof URL) { return address; } else if (isFQDN(address)) { return new URL(`https://${address}/`); } else { const url = new URL('/', address); const domainName = url.hostname; if (domainName.endsWith('.local')) { return dns.lookup(domainName).then(a => { url.hostname = a.address; return url; }); } else { return url; } } } export function resolveDomain(gateway) { return typeof gateway == 'string' && isFQDN(gateway) ? gateway : new URL(gateway).hostname; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZUdhdGV3YXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL0Jhc2VHYXRld2F5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFOUMsT0FBTyxLQUFLLEdBQUcsTUFBTSxjQUFjLENBQUM7QUFFcEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQWlCdkM7O0dBRUc7QUFDSCxNQUFNLE9BQU8sV0FBVztJQUN0QixZQUNrQixVQUFrQjtRQUFsQixlQUFVLEdBQVYsVUFBVSxDQUFRO0lBQ2pDLENBQUM7SUFFSixZQUFZLENBQUMsS0FBZ0I7UUFDM0IsMkRBQTJEO1FBQzNELE9BQU8sY0FBYyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFxQztRQUMxRCxPQUFPLElBQUksY0FBYyxDQUFDO1lBQ3hCLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxJQUFJO1NBQ3hDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVztRQUNwQixPQUFPLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakQsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUM1QixPQUFxQjtJQUVyQixJQUFJLE9BQU8sWUFBWSxHQUFHLEVBQUU7UUFDMUIsT0FBTyxPQUFPLENBQUM7S0FDaEI7U0FBTSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUMxQixPQUFPLElBQUksR0FBRyxDQUFDLFdBQVcsT0FBTyxHQUFHLENBQUMsQ0FBQztLQUN2QztTQUFNO1FBQ0wsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDaEMsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2pDLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3JDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQztnQkFDekIsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxPQUFPLEdBQUcsQ0FBQztTQUNaO0tBQ0Y7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxPQUFxQztJQUNqRSxPQUFPLE9BQU8sT0FBTyxJQUFJLFFBQVEsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNwRCxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQztBQUN4QyxDQUFDIn0=