Skip to content
2 changes: 1 addition & 1 deletion packages/cli/src/commands/build.ts
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ async function run(options: Required<BuildCommandOptions>) {
}

// Get Client
const client = new PolywrapClient(configBuilder.buildCoreConfig(), {
const client = new PolywrapClient(configBuilder.build(), {
noDefaults: true,
});

Expand Down
2 changes: 1 addition & 1 deletion packages/cli/src/commands/codegen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ async function run(options: Required<CodegenCommandOptions>) {
}

// Get Client
const client = new PolywrapClient(configBuilder.buildCoreConfig(), {
const client = new PolywrapClient(configBuilder.build(), {
noDefaults: true,
});

Expand Down
2 changes: 1 addition & 1 deletion packages/cli/src/commands/docgen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ async function run(
// Resolve custom script
const customScript = require.resolve(commandToPathMap[action]);

const client = new PolywrapClient(configBuilder.buildCoreConfig(), {
const client = new PolywrapClient(configBuilder.build(), {
noDefaults: true,
});

Expand Down
12 changes: 6 additions & 6 deletions packages/cli/src/lib/workflow/JobRunner.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { JobResult, Status, Step } from "./types";

import { PolywrapClient } from "@polywrap/client-js";
import { CoreClient, MaybeAsync, Uri } from "@polywrap/core-js";
import { WorkflowJobs } from "@polywrap/polywrap-manifest-types-js";
import {
buildPolywrapCoreClientConfig,
IClientConfigBuilder,
} from "@polywrap/client-config-builder-js";
PolywrapClient,
buildPolywrapCoreClientConfig,
} from "@polywrap/client-js";
import { CoreClient, MaybeAsync, Uri } from "@polywrap/core-js";
import { WorkflowJobs } from "@polywrap/polywrap-manifest-types-js";

export class JobRunner {
private _jobOutput: Map<string, JobResult>;
Expand All @@ -20,7 +20,7 @@ export class JobRunner {
) => MaybeAsync<void>
) {
this._jobOutput = new Map();
this._client = new PolywrapClient(this._configBuilder.buildCoreConfig(), {
this._client = new PolywrapClient(this._configBuilder.build(), {
noDefaults: true,
});
}
Expand Down
66 changes: 7 additions & 59 deletions packages/js/client-config-builder/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,14 +53,11 @@ You can add the entire [default client configuration bundle](#bundle--defaultcon
Finally, build a ClientConfig or CoreClientConfig to pass to the PolywrapClient constructor.

```typescript
// accepted by the PolywrapClient
const clientConfig = builder.build();

// accepted by either the PolywrapClient or the PolywrapCoreClient
let coreClientConfig = builder.buildCoreConfig();
let coreClientConfig = builder.build();

// build with a custom cache and/or resolver
coreClientConfig = builder.buildCoreConfig(
coreClientConfig = builder.build(
new WrapperCache(),
RecursiveResolver.from([])
);
Expand Down Expand Up @@ -152,45 +149,6 @@ A complete example using all or most of the available methods.

# Reference

## Types

```ts
/**
* Client configuration that can be passed to the PolywrapClient
*
* @remarks
* The PolywrapClient converts the ClientConfig to a CoreClientConfig.
*/
export interface ClientConfig {
/** set environmental variables for a wrapper */
readonly envs: Env[];

/** register interface implementations */
readonly interfaces: InterfaceImplementations[];

/** redirect invocations from one uri to another */
readonly redirects: IUriRedirect[];

/** add embedded wrappers */
readonly wrappers: IUriWrapper[];

/** add and configure embedded packages */
readonly packages: IUriPackage[];

/** customize URI resolution
*
* @remarks
* A UriResolverLike can be any one of:
* IUriResolver<unknown>
* | IUriRedirect
* | IUriPackage
* | IUriWrapper
* | UriResolverLike[]
* */
readonly resolvers: UriResolverLike[];
}
```

## ClientConfigBuilder

### Constructor
Expand Down Expand Up @@ -305,7 +263,9 @@ export interface ClientConfig {
* @param uriEnvs: and object where key is the uri and value is the another object with the env variables for the uri
* @returns IClientConfigBuilder (mutated self)
*/
addEnvs(uriEnvs: Record<string, Record<string, unknown>>): IClientConfigBuilder;
addEnvs(
uriEnvs: Record<string, Record<string, unknown>>
): IClientConfigBuilder;
```

### removeEnv
Expand Down Expand Up @@ -460,23 +420,13 @@ export interface ClientConfig {
```

### build
```ts
/**
* Build a sanitized client configuration that can be passed to the PolywrapClient constructor
*
* @returns ClientConfig that results from applying all the steps in the builder pipeline
*/
build(): ClientConfig;
```

### buildCoreConfig
```ts
/**
* Build a sanitized core client configuration that can be passed to the PolywrapClient or PolywrapCoreClient constructors
*
* @returns CoreClientConfig that results from applying all the steps in the builder pipeline
*/
buildCoreConfig(): CoreClientConfig;
build(): CoreClientConfig;
```

## Bundles
Expand Down Expand Up @@ -578,9 +528,7 @@ export const getDefaultConfig = (): BuilderConfig => ({
[defaultWrappers.concurrentInterface]: new Set([
defaultPackages.concurrent,
]),
[defaultInterfaces.logger]: new Set([
defaultPackages.logger,
]),
[defaultInterfaces.logger]: new Set([defaultPackages.logger]),
},
resolvers: [],
});
Expand Down
14 changes: 5 additions & 9 deletions packages/js/client-config-builder/examples/quickstart.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ClientConfigBuilder, ClientConfig } from "../build";
import { ClientConfigBuilder } from "../build";

// eslint-disable-next-line import/no-extraneous-dependencies
import { WasmWrapper } from "@polywrap/wasm-js";
Expand Down Expand Up @@ -51,28 +51,24 @@ export function configure(): ClientConfigBuilder {

export function build():
| ClientConfigBuilder
| ClientConfig
| CoreClientConfig {
const builder = new ClientConfigBuilder();

// $start: quickstart-build
// accepted by the PolywrapClient
const clientConfig = builder.build();

// accepted by either the PolywrapClient or the PolywrapCoreClient
let coreClientConfig = builder.buildCoreConfig();
let coreClientConfig = builder.build();

// build with a custom cache and/or resolver
coreClientConfig = builder.buildCoreConfig(
coreClientConfig = builder.build(
new WrapperCache(),
RecursiveResolver.from([])
);
// $end

return builder ?? clientConfig ?? coreClientConfig;
return builder ?? coreClientConfig;
}

export async function example(): Promise<ClientConfig> {
export async function example(): Promise<CoreClientConfig> {
// $start: quickstart-example
// init
const builder = new ClientConfigBuilder();
Expand Down
11 changes: 0 additions & 11 deletions packages/js/client-config-builder/readme/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,6 @@ $snippet: quickstart-example

# Reference

## Types

```ts
$snippet: ClientConfig
```

## ClientConfigBuilder

### Constructor
Expand Down Expand Up @@ -164,11 +158,6 @@ $snippet: IClientConfigBuilder-addDefaults
$snippet: IClientConfigBuilder-build
```

### buildCoreConfig
```ts
$snippet: IClientConfigBuilder-buildCoreConfig
```

## Bundles

### Bundle: DefaultConfig
Expand Down
53 changes: 1 addition & 52 deletions packages/js/client-config-builder/src/BaseClientConfigBuilder.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,10 @@
import { BuilderConfig } from "./types/configs/BuilderConfig";
import { ClientConfig } from "./types/configs/ClientConfig";
import { IClientConfigBuilder } from "./types/IClientConfigBuilder";

import {
CoreClientConfig,
Wrapper,
IWrapPackage,
Env,
Uri,
InterfaceImplementations,
IUriRedirect,
IUriWrapper,
IUriPackage,
IUriResolver,
} from "@polywrap/core-js";
import { IWrapperCache, UriResolverLike } from "@polywrap/uri-resolvers-js";
Expand All @@ -27,7 +20,7 @@ export abstract class BaseClientConfigBuilder implements IClientConfigBuilder {
};

abstract addDefaults(): IClientConfigBuilder;
abstract buildCoreConfig(
abstract build(
wrapperCache?: IWrapperCache,
resolver?: IUriResolver<unknown>
): CoreClientConfig;
Expand Down Expand Up @@ -209,48 +202,4 @@ export abstract class BaseClientConfigBuilder implements IClientConfigBuilder {

return this;
}

build(): ClientConfig {
const envs: Env[] = [];
for (const [uri, env] of Object.entries(this._config.envs)) {
envs.push({ uri: Uri.from(uri), env });
}

const interfaces: InterfaceImplementations[] = [];
for (const [interfaceUri, implementations] of Object.entries(
this._config.interfaces
)) {
if (implementations.size === 0) continue;
interfaces.push({
interface: Uri.from(interfaceUri),
implementations: Array.from(implementations).map((uri) =>
Uri.from(uri)
),
});
}

const redirects: IUriRedirect[] = [];
for (const [uri, redirect] of Object.entries(this._config.redirects)) {
redirects.push({ from: Uri.from(uri), to: Uri.from(redirect) });
}

const wrappers: IUriWrapper[] = [];
for (const [uri, wrapper] of Object.entries(this._config.wrappers)) {
wrappers.push({ uri: Uri.from(uri), wrapper });
}

const packages: IUriPackage[] = [];
for (const [uri, wrapPackage] of Object.entries(this._config.packages)) {
packages.push({ uri: Uri.from(uri), package: wrapPackage });
}

return {
envs,
interfaces,
redirects,
wrappers,
packages,
resolvers: this._config.resolvers,
};
}
}
Loading