diff --git a/lib/mainFn/LocalBinding.ts b/lib/mainFn/LocalBinding.ts index c4f45c8..b013756 100644 --- a/lib/mainFn/LocalBinding.ts +++ b/lib/mainFn/LocalBinding.ts @@ -1,11 +1,11 @@ import { Origin } from "./Origin"; export class LocalBinding { - constructor(readonly localAddress: string, readonly ipAddress: string) {} + constructor(readonly localHost: string, readonly ipHost: string) {} createOrigins(protocol: string) { return { - local: new Origin(protocol, this.localAddress), - ip: new Origin(protocol, this.ipAddress), + local: new Origin(protocol, this.localHost), + ip: new Origin(protocol, this.ipHost), }; } } diff --git a/lib/mainFn/NetworkInterfaceBuilder.ts b/lib/mainFn/NetworkInterfaceBuilder.ts index 8ebcc6c..ec72320 100644 --- a/lib/mainFn/NetworkInterfaceBuilder.ts +++ b/lib/mainFn/NetworkInterfaceBuilder.ts @@ -18,11 +18,8 @@ export class NetworkInterfaceBuilder { async exportAddresses(addresses: Iterable) { const { name, description, id, ui, path, search } = this.options; - // prettier-ignore - const urlAuth = !!(this.options?.basic) ? `${this.options.basic.username}:${this.options.basic.password}@` : - ''; for (const origin of addresses) { - const address = `${origin.protocol}://${urlAuth}${origin.address}`; + const address = origin.withAuth(this.options.basic); await this.options.effects.exportAddress({ name, description, diff --git a/lib/mainFn/Origin.ts b/lib/mainFn/Origin.ts index 5eb09f5..5824323 100644 --- a/lib/mainFn/Origin.ts +++ b/lib/mainFn/Origin.ts @@ -1,3 +1,18 @@ export class Origin { - constructor(readonly protocol: string, readonly address: string) {} + constructor(readonly protocol: string, readonly host: string) {} + + withAuth( + origin?: + | { + password: string; + username: string; + } + | null + | undefined + ) { + // prettier-ignore + const urlAuth = !!(origin) ? `${origin.username}:${origin.password}@` : + ''; + return `${this.protocol}://${urlAuth}${this.host}`; + } } diff --git a/lib/mainFn/TorBinding.ts b/lib/mainFn/TorBinding.ts index 85dc11a..c51d182 100644 --- a/lib/mainFn/TorBinding.ts +++ b/lib/mainFn/TorBinding.ts @@ -1,8 +1,8 @@ import { Origin } from "./Origin"; export class TorBinding { - constructor(readonly address: string) {} + constructor(readonly host: string) {} createOrigin(protocol: string) { - return new Origin(protocol, this.address); + return new Origin(protocol, this.host); } } diff --git a/lib/properties/index.ts b/lib/properties/index.ts index 3b20f6e..3e5d6ae 100644 --- a/lib/properties/index.ts +++ b/lib/properties/index.ts @@ -20,8 +20,10 @@ export type UnionToIntersection = ((x: T) => any) extends (x: infer R) => any export function setupPropertiesExport( fn: ( ...args: Parameters - ) => Promise> + ) => Promise | void | Promise> ): ExpectedExports.properties { - return (...args: Parameters) => - fn(...args).then((x) => x.build()); + return async (...args: Parameters) => { + const value = await fn(...args); + if (value) return value.build(); + }; } diff --git a/package-lock.json b/package-lock.json index 99a553f..a882993 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "start-sdk", - "version": "0.4.0-lib0.charlie15", + "version": "0.4.0-lib0.charlie17", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "start-sdk", - "version": "0.4.0-lib0.charlie15", + "version": "0.4.0-lib0.charlie17", "license": "MIT", "dependencies": { "@iarna/toml": "^2.2.5", diff --git a/package.json b/package.json index 8fb820e..d6125e2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "start-sdk", - "version": "0.4.0-lib0.charlie15", + "version": "0.4.0-lib0.charlie17", "description": "For making the patterns that are wanted in making services for the startOS.", "main": "./lib/index.js", "types": "./lib/index.d.ts",