@conduit-client/service-bindings-lwc 2.1.0 → 3.0.0

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.
@@ -1,4 +1,4 @@
1
- import { Result, SubscribableResult } from '@conduit-client/utils';
1
+ import { Result, ServiceDescriptor, SubscribableResult, NamedService } from '@conduit-client/utils';
2
2
  import { type GraphQLCommandError, type GraphQLResponse, type GraphQLCommand } from '@conduit-client/graphql-normalization/v1';
3
3
  import { type JSONSchema } from '@conduit-client/jsonschema-validate';
4
4
  import { type WireAdapterConstructor, type WireConfigValue, type WireContextValue } from '@conduit-client/lwc-types';
@@ -9,11 +9,8 @@ export declare abstract class GraphQLCommandWireAdapterConstructor<Config extend
9
9
  update(config: Config, _context?: WireContextValue): void;
10
10
  }
11
11
  export declare class LWCGraphQLWireBindingsService {
12
- bind<Config extends WireConfigValue = WireConfigValue>(getCommand: GetCommand<GraphQLResponse, GraphQLCommand>, configSchema?: JSONSchema, exposeRefresh?: boolean): WireAdapterConstructor<Config, GraphQLResponse, {}>;
13
- }
14
- export interface LWCGraphQLWireBindingsServiceDescriptor {
15
- type: 'lwcGraphQLWireBindings';
16
- version: string;
17
- service: LWCGraphQLWireBindingsService;
12
+ bind<Config extends WireConfigValue = WireConfigValue>(getCommand: GetCommand<GraphQLResponse, Config, GraphQLCommand>, configSchema?: JSONSchema, exposeRefresh?: boolean): WireAdapterConstructor;
18
13
  }
14
+ export type LWCGraphQLWireBindingsServiceDescriptor = ServiceDescriptor<LWCGraphQLWireBindingsService, 'lwcGraphQLWireBindings', '1.0'>;
15
+ export type NamedLWCGraphQLWireBindingsService<Name extends string = 'lwcGraphQLWireBindings'> = NamedService<Name, LWCGraphQLWireBindingsService>;
19
16
  export declare function buildServiceDescriptor(): LWCGraphQLWireBindingsServiceDescriptor;
@@ -1,2 +1,3 @@
1
- export { buildServiceDescriptor as buildLWCWireBindingsServiceDescriptor } from './wire';
2
- export { buildServiceDescriptor as buildLWCGraphQLWireBindingsServiceDescriptor } from './graphql-wire';
1
+ export { type LWCWireBindingsServiceDescriptor, type NamedLWCWireBindingsService, buildServiceDescriptor as buildLWCWireBindingsServiceDescriptor, } from './wire';
2
+ export { type LWCGraphQLWireBindingsServiceDescriptor, type NamedLWCGraphQLWireBindingsService, buildServiceDescriptor as buildLWCGraphQLWireBindingsServiceDescriptor, } from './graphql-wire';
3
+ export { type WireAdapterConstructor } from '@conduit-client/lwc-types';
@@ -5,7 +5,7 @@ import { type SyncOrAsync, type Unsubscribe, type SubscribableResult, type Comma
5
5
  import { type GraphQLResponse } from '@conduit-client/graphql-normalization/v1';
6
6
  export type WireAdapterCompatibleCommand<Data, Error> = SubscribableResultCommand<Data, Error> | ResultCommand<Data, Error> | MaybeSubscribableResultCommand<Data, Error>;
7
7
  export declare function isIncompleteConfigError(err: unknown): boolean;
8
- export type GetCommand<Data, CommandType extends WireAdapterCompatibleCommand<Data, CommandError> = WireAdapterCompatibleCommand<Data, CommandError>> = () => CommandType;
8
+ export type GetCommand<Data, Config extends WireConfigValue = WireConfigValue, CommandType extends WireAdapterCompatibleCommand<Data, CommandError> = WireAdapterCompatibleCommand<Data, CommandError>> = (condig: Config) => CommandType;
9
9
  /**
10
10
  * Binds a Command to a LWC wire adapter.
11
11
  * @see https://lwc.dev/guide/wire_adapter
@@ -1,12 +1,10 @@
1
1
  import { type JSONSchema } from '@conduit-client/jsonschema-validate';
2
2
  import { type WireAdapterConstructor, type WireConfigValue } from '@conduit-client/lwc-types';
3
3
  import { type GetCommand } from './utils';
4
+ import { NamedService, ServiceDescriptor } from '@conduit-client/utils';
4
5
  export declare class LWCWireBindingsService {
5
- bind<Data, Config extends WireConfigValue = WireConfigValue>(getCommand: GetCommand<Data>, configSchema?: JSONSchema, exposeRefresh?: boolean): WireAdapterConstructor<Config, Data, {}>;
6
- }
7
- export interface LWCWireBindingsServiceDescriptor {
8
- type: 'lwcWireBindings';
9
- version: string;
10
- service: LWCWireBindingsService;
6
+ bind<Data, Config extends WireConfigValue = WireConfigValue>(getCommand: GetCommand<Data, Config>, configSchema?: JSONSchema, exposeRefresh?: boolean): WireAdapterConstructor<Config, Data, {}>;
11
7
  }
8
+ export type LWCWireBindingsServiceDescriptor = ServiceDescriptor<LWCWireBindingsService, 'lwcWireBindings', '1.0'>;
9
+ export type NamedLWCWireBindingsService<Name extends string = 'lwcWireBindings'> = NamedService<Name, LWCWireBindingsService>;
12
10
  export declare function buildServiceDescriptor(): LWCWireBindingsServiceDescriptor;
package/dist/v1/index.js CHANGED
@@ -230,7 +230,7 @@ class LWCWireBindingsService {
230
230
  this.exposeRefresh = exposeRefresh;
231
231
  }
232
232
  getCommand() {
233
- return getCommand();
233
+ return getCommand(this.config);
234
234
  }
235
235
  };
236
236
  }
@@ -325,7 +325,7 @@ class LWCGraphQLWireBindingsService {
325
325
  this.exposeRefresh = exposeRefresh;
326
326
  }
327
327
  getCommand() {
328
- return getCommand();
328
+ return getCommand(this.config);
329
329
  }
330
330
  };
331
331
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/v1/sanitize.ts","../../src/v1/utils.ts","../../src/v1/wire.ts","../../src/v1/graphql-wire.ts"],"sourcesContent":["interface CurrentPath {\n key: string;\n value: object;\n parent: CurrentPath | null;\n data: any;\n}\n\nclass Sanitizer<T extends object> {\n obj: T;\n copy: T;\n currentPath: CurrentPath;\n\n constructor(obj: T) {\n this.obj = obj;\n this.copy = {} as T;\n\n this.currentPath = {\n key: '',\n value: obj,\n parent: null,\n data: this.copy,\n };\n }\n\n sanitize(): T {\n const sanitizer = this;\n\n JSON.stringify(this.obj, function (key, value) {\n if (key === '') {\n return value;\n }\n\n const parent = this;\n if (parent !== sanitizer.currentPath.value) {\n sanitizer.exit(parent);\n }\n if (typeof value === 'object' && value !== null) {\n sanitizer.enter(key, value);\n return value;\n }\n sanitizer.currentPath.data[key] = value;\n\n return value;\n });\n\n return this.copy;\n }\n\n private enter(key: string, value: any) {\n const { currentPath: parentPath } = this;\n const data = (parentPath.data[key] = Array.isArray(value) ? [] : {});\n this.currentPath = {\n key,\n value,\n parent: parentPath,\n data,\n };\n }\n\n private exit(parent: any) {\n while (this.currentPath.value !== parent) {\n this.currentPath = this.currentPath.parent || this.currentPath;\n }\n }\n}\n\n/**\n * Returns a sanitized version of an object by recursively unwrapping the Proxies.\n *\n * All the data coming from LWC-land need to be sanitized first.\n */\nexport default function sanitize<T extends object>(obj: T): T {\n return new Sanitizer(obj).sanitize();\n}\n","import {\n SubscribableResultCommand,\n ResultCommand,\n MaybeSubscribableResultCommand,\n emitError,\n} from '@conduit-client/bindings-utils/v1';\nimport {\n assertIsValid,\n MissingRequiredPropertyError,\n type JSONSchema,\n JsonSchemaViolationError,\n} from '@conduit-client/jsonschema-validate';\nimport {\n type WireAdapter,\n type WireConfigValue,\n type WireContextValue,\n type WireDataCallback,\n} from '@conduit-client/lwc-types';\n\nimport {\n type SyncOrAsync,\n type Unsubscribe,\n type SubscribableResult,\n type CommandError,\n deepFreeze,\n type Result,\n ok,\n isSubscribableResult,\n logError,\n isUserVisibleError,\n} from '@conduit-client/utils';\nimport { type GraphQLResponse } from '@conduit-client/graphql-normalization/v1';\nimport sanitize from './sanitize';\n\nexport type WireAdapterCompatibleCommand<Data, Error> =\n | SubscribableResultCommand<Data, Error>\n | ResultCommand<Data, Error>\n | MaybeSubscribableResultCommand<Data, Error>;\n\nexport function isIncompleteConfigError(err: unknown): boolean {\n return (\n err instanceof MissingRequiredPropertyError ||\n (err instanceof JsonSchemaViolationError &&\n err.validationErrors.find(\n (validationError) => validationError instanceof MissingRequiredPropertyError\n ) !== undefined)\n );\n}\n\nexport type GetCommand<\n Data,\n CommandType extends WireAdapterCompatibleCommand<\n Data,\n CommandError\n > = WireAdapterCompatibleCommand<Data, CommandError>,\n> = () => CommandType;\n\n/**\n * Binds a Command to a LWC wire adapter.\n * @see https://lwc.dev/guide/wire_adapter\n */\nexport abstract class CommandWireAdapterConstructor<\n Data,\n Config extends WireConfigValue = WireConfigValue,\n CommandType extends WireAdapterCompatibleCommand<\n Data,\n CommandError\n > = WireAdapterCompatibleCommand<Data, CommandError>,\n> implements WireAdapter\n{\n connected = false;\n config?: Config;\n unsubscriber?: Unsubscribe;\n exposeRefresh = false;\n\n abstract configSchema?: JSONSchema;\n abstract getCommand(): CommandType;\n protected refresh?: () => SyncOrAsync<Result<void, unknown>>;\n\n constructor(\n protected callback: WireDataCallback,\n sourceContext?: {\n tagName?: string;\n },\n options?: {\n skipEmptyEmit?: true;\n }\n ) {\n if (!options?.skipEmptyEmit) {\n this.emit();\n }\n }\n\n connect(): void {\n this.connected = true;\n this.invokeAdapter();\n }\n\n disconnect(): void {\n this.unsubscribe();\n this.connected = false;\n }\n\n update(config: Config, _context?: WireContextValue): void {\n this.unsubscribe();\n this.config = sanitize<Config>(config);\n this.invokeAdapter();\n }\n\n protected emit(result?: Result<Data, unknown> | SubscribableResult<Data, unknown>) {\n try {\n if (result === undefined) {\n this.callback({ data: undefined, error: undefined });\n } else {\n const consumerEmittedRefresh = (): Promise<void> => {\n if (!this.refresh) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n if (!this.refresh) {\n resolve();\n return;\n }\n this.refresh().then((res) => {\n if (res.isOk()) {\n resolve();\n } else {\n reject(\n new Error(\n 'Internal error in Lightning Data Service adapter occurred: Failed to refresh data'\n )\n );\n }\n });\n });\n };\n\n let consumerEmittedData = {\n data: undefined,\n error: undefined,\n } as {\n data: Data | undefined;\n error: unknown | undefined;\n refresh?: () => Promise<void>;\n };\n\n if (this.exposeRefresh && this.refresh) {\n consumerEmittedData.refresh = consumerEmittedRefresh;\n }\n\n if (result.isErr()) {\n if (isSubscribableResult(result)) {\n consumerEmittedData.error = result.error.failure;\n } else {\n consumerEmittedData.error = result.error;\n }\n } else {\n if (isSubscribableResult(result)) {\n deepFreeze(result.value.data);\n consumerEmittedData.data = result.value.data;\n } else {\n deepFreeze(result.value);\n consumerEmittedData.data = result.value;\n }\n }\n\n this.callback(consumerEmittedData);\n }\n } catch (e) {\n this.handleExecutionThrow(e);\n }\n }\n\n protected invokeAdapter() {\n if (!this.connected || this.config === undefined) {\n return;\n }\n\n if (this.configSchema) {\n try {\n assertIsValid<unknown>(this.config, this.configSchema);\n } catch (err) {\n if (isIncompleteConfigError(err)) {\n // config is incomplete, wait for updated config\n return;\n }\n\n throw err;\n }\n }\n\n const initialConfig = this.config;\n const command = this.getCommand();\n\n try {\n command.execute().then((result) => {\n // config changed or component disconnected before result came back, ignore result\n if (!this.connected || this.config !== initialConfig) {\n return;\n }\n\n this.refresh = undefined;\n\n if (result.isOk()) {\n if (isSubscribableResult<Data, unknown>(result)) {\n const value = result.value;\n this.unsubscriber = value.subscribe((updatedResult) => {\n if (!this.connected || this.config !== initialConfig) {\n this.unsubscribe();\n return;\n }\n\n this.emit(updatedResult);\n });\n this.refresh = value.refresh;\n this.emit(ok(value.data));\n } else {\n this.emit(result);\n }\n } else {\n if (isSubscribableResult(result)) {\n const value = result.error;\n this.unsubscriber = value.subscribe((updatedResult) => {\n if (!this.connected || this.config !== initialConfig) {\n this.unsubscribe();\n return;\n }\n\n this.emit(updatedResult);\n });\n this.refresh = value.refresh;\n this.emit(result);\n } else {\n this.unsubscriber = () => {};\n this.emit(result);\n }\n }\n });\n } catch (e: unknown) {\n this.handleExecutionThrow(e);\n }\n }\n\n protected handleExecutionThrow(error: unknown) {\n emitError(this.callback, error);\n }\n\n protected unsubscribe() {\n if (this.unsubscriber) {\n this.unsubscriber();\n delete this.unsubscriber;\n }\n }\n}\n\n/**\n * Maps a command failure (unknown or user-visible) into a GraphQLResponse suitable for consumers.\n */\nexport function toGraphQLResponseFromFailure(failure: unknown): {\n data: GraphQLResponse['data'];\n errors: GraphQLResponse['errors'];\n} {\n if (isUserVisibleError<GraphQLResponse>(failure)) {\n return {\n data: failure.data.data,\n errors: failure.data.errors,\n };\n }\n logError(failure);\n return {\n data: undefined,\n errors: [{ message: 'Internal error in GraphQL adapter occurred', locations: [] }],\n };\n}\n","import { type JSONSchema } from '@conduit-client/jsonschema-validate';\nimport { type WireAdapterConstructor, type WireConfigValue } from '@conduit-client/lwc-types';\nimport { CommandWireAdapterConstructor, type GetCommand } from './utils';\n\nexport class LWCWireBindingsService {\n bind<Data, Config extends WireConfigValue = WireConfigValue>(\n getCommand: GetCommand<Data>,\n configSchema?: JSONSchema,\n exposeRefresh = false\n ): WireAdapterConstructor<Config, Data, {}> {\n return class extends CommandWireAdapterConstructor<Data, Config> {\n configSchema = configSchema;\n exposeRefresh = exposeRefresh;\n getCommand() {\n return getCommand();\n }\n };\n }\n}\n\nexport interface LWCWireBindingsServiceDescriptor {\n type: 'lwcWireBindings';\n version: string;\n service: LWCWireBindingsService;\n}\n\nexport function buildServiceDescriptor(): LWCWireBindingsServiceDescriptor {\n return {\n type: 'lwcWireBindings',\n version: '1.0',\n service: new LWCWireBindingsService(),\n };\n}\n","import {\n Result,\n SubscribableResult,\n deepFreeze,\n isSubscribableResult,\n logError,\n} from '@conduit-client/utils';\nimport {\n type GraphQLCommandError,\n type GraphQLResponse,\n type GraphQLCommand,\n} from '@conduit-client/graphql-normalization/v1';\nimport { resolveAst, validateGraphQLOperations } from '@conduit-client/onestore-graphql-parser/v1';\nimport { type JSONSchema } from '@conduit-client/jsonschema-validate';\nimport {\n type WireAdapterConstructor,\n type WireConfigValue,\n type WireContextValue,\n} from '@conduit-client/lwc-types';\nimport {\n CommandWireAdapterConstructor,\n type GetCommand,\n toGraphQLResponseFromFailure,\n} from './utils';\nimport sanitize from './sanitize';\n\nexport abstract class GraphQLCommandWireAdapterConstructor<\n Config extends WireConfigValue = WireConfigValue,\n> extends CommandWireAdapterConstructor<GraphQLResponse, Config, GraphQLCommand> {\n protected emit(\n result?:\n | SubscribableResult<GraphQLResponse, GraphQLCommandError>\n | Result<GraphQLResponse, GraphQLCommandError>\n | undefined\n ): void {\n try {\n if (result === undefined) {\n this.callback({ data: undefined, errors: undefined });\n } else {\n const consumerEmittedRefresh = (): Promise<void> => {\n if (!this.refresh) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n if (!this.refresh) {\n resolve();\n return;\n }\n this.refresh().then((res) => {\n if (res.isOk()) {\n resolve();\n } else {\n reject(\n new Error(\n 'Internal error in GraphQL adapter occurred: Failed to refresh GraphQL data'\n )\n );\n }\n });\n });\n };\n\n let consumerEmittedData = {\n data: undefined,\n errors: undefined,\n } as {\n data: GraphQLResponse | undefined;\n errors: unknown | undefined;\n refresh?: () => Promise<void>;\n };\n\n if (this.exposeRefresh && this.refresh) {\n consumerEmittedData.refresh = consumerEmittedRefresh;\n }\n\n if (result.isErr()) {\n const failure = isSubscribableResult(result)\n ? result.error.failure\n : result.error;\n const resp = toGraphQLResponseFromFailure(failure);\n consumerEmittedData.data = resp.data;\n consumerEmittedData.errors = resp.errors;\n } else {\n consumerEmittedData.data = result.value.data;\n }\n\n deepFreeze(consumerEmittedData);\n this.callback(consumerEmittedData);\n }\n } catch (e) {\n logError(e);\n this.handleExecutionThrow(e);\n }\n }\n\n protected handleExecutionThrow(e: unknown): void {\n logError(e);\n this.callback({\n data: undefined,\n errors: [{ message: 'Internal error in GraphQL adapter occurred', locations: [] }],\n } satisfies GraphQLResponse);\n }\n\n update(config: Config, _context?: WireContextValue): void {\n this.unsubscribe();\n\n const resolvedQuery = resolveAst(config.query);\n if (resolvedQuery) {\n // Validate the resolved query for operation types, considering operationName\n validateGraphQLOperations(\n { query: resolvedQuery, operationName: (config as any)?.operationName },\n { acceptedOperations: ['query'] }\n );\n }\n\n this.config = {\n ...sanitize<Config>(config),\n query: resolvedQuery,\n };\n this.invokeAdapter();\n }\n}\n\nexport class LWCGraphQLWireBindingsService {\n bind<Config extends WireConfigValue = WireConfigValue>(\n getCommand: GetCommand<GraphQLResponse, GraphQLCommand>,\n configSchema?: JSONSchema,\n exposeRefresh = false\n ): WireAdapterConstructor<Config, GraphQLResponse, {}> {\n return class extends GraphQLCommandWireAdapterConstructor<Config> {\n configSchema = configSchema;\n exposeRefresh = exposeRefresh;\n getCommand() {\n return getCommand();\n }\n };\n }\n}\n\nexport interface LWCGraphQLWireBindingsServiceDescriptor {\n type: 'lwcGraphQLWireBindings';\n version: string;\n service: LWCGraphQLWireBindingsService;\n}\n\nexport function buildServiceDescriptor(): LWCGraphQLWireBindingsServiceDescriptor {\n return {\n type: 'lwcGraphQLWireBindings',\n version: '1.0',\n service: new LWCGraphQLWireBindingsService(),\n };\n}\n"],"names":["buildServiceDescriptor"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/v1/sanitize.ts","../../src/v1/utils.ts","../../src/v1/wire.ts","../../src/v1/graphql-wire.ts"],"sourcesContent":["interface CurrentPath {\n key: string;\n value: object;\n parent: CurrentPath | null;\n data: any;\n}\n\nclass Sanitizer<T extends object> {\n obj: T;\n copy: T;\n currentPath: CurrentPath;\n\n constructor(obj: T) {\n this.obj = obj;\n this.copy = {} as T;\n\n this.currentPath = {\n key: '',\n value: obj,\n parent: null,\n data: this.copy,\n };\n }\n\n sanitize(): T {\n const sanitizer = this;\n\n JSON.stringify(this.obj, function (key, value) {\n if (key === '') {\n return value;\n }\n\n const parent = this;\n if (parent !== sanitizer.currentPath.value) {\n sanitizer.exit(parent);\n }\n if (typeof value === 'object' && value !== null) {\n sanitizer.enter(key, value);\n return value;\n }\n sanitizer.currentPath.data[key] = value;\n\n return value;\n });\n\n return this.copy;\n }\n\n private enter(key: string, value: any) {\n const { currentPath: parentPath } = this;\n const data = (parentPath.data[key] = Array.isArray(value) ? [] : {});\n this.currentPath = {\n key,\n value,\n parent: parentPath,\n data,\n };\n }\n\n private exit(parent: any) {\n while (this.currentPath.value !== parent) {\n this.currentPath = this.currentPath.parent || this.currentPath;\n }\n }\n}\n\n/**\n * Returns a sanitized version of an object by recursively unwrapping the Proxies.\n *\n * All the data coming from LWC-land need to be sanitized first.\n */\nexport default function sanitize<T extends object>(obj: T): T {\n return new Sanitizer(obj).sanitize();\n}\n","import {\n SubscribableResultCommand,\n ResultCommand,\n MaybeSubscribableResultCommand,\n emitError,\n} from '@conduit-client/bindings-utils/v1';\nimport {\n assertIsValid,\n MissingRequiredPropertyError,\n type JSONSchema,\n JsonSchemaViolationError,\n} from '@conduit-client/jsonschema-validate';\nimport {\n type WireAdapter,\n type WireConfigValue,\n type WireContextValue,\n type WireDataCallback,\n} from '@conduit-client/lwc-types';\n\nimport {\n type SyncOrAsync,\n type Unsubscribe,\n type SubscribableResult,\n type CommandError,\n deepFreeze,\n type Result,\n ok,\n isSubscribableResult,\n logError,\n isUserVisibleError,\n} from '@conduit-client/utils';\nimport { type GraphQLResponse } from '@conduit-client/graphql-normalization/v1';\nimport sanitize from './sanitize';\n\nexport type WireAdapterCompatibleCommand<Data, Error> =\n | SubscribableResultCommand<Data, Error>\n | ResultCommand<Data, Error>\n | MaybeSubscribableResultCommand<Data, Error>;\n\nexport function isIncompleteConfigError(err: unknown): boolean {\n return (\n err instanceof MissingRequiredPropertyError ||\n (err instanceof JsonSchemaViolationError &&\n err.validationErrors.find(\n (validationError) => validationError instanceof MissingRequiredPropertyError\n ) !== undefined)\n );\n}\n\nexport type GetCommand<\n Data,\n Config extends WireConfigValue = WireConfigValue,\n CommandType extends WireAdapterCompatibleCommand<\n Data,\n CommandError\n > = WireAdapterCompatibleCommand<Data, CommandError>,\n> = (condig: Config) => CommandType;\n\n/**\n * Binds a Command to a LWC wire adapter.\n * @see https://lwc.dev/guide/wire_adapter\n */\nexport abstract class CommandWireAdapterConstructor<\n Data,\n Config extends WireConfigValue = WireConfigValue,\n CommandType extends WireAdapterCompatibleCommand<\n Data,\n CommandError\n > = WireAdapterCompatibleCommand<Data, CommandError>,\n> implements WireAdapter\n{\n connected = false;\n config?: Config;\n unsubscriber?: Unsubscribe;\n exposeRefresh = false;\n\n abstract configSchema?: JSONSchema;\n abstract getCommand(): CommandType;\n protected refresh?: () => SyncOrAsync<Result<void, unknown>>;\n\n constructor(\n protected callback: WireDataCallback,\n sourceContext?: {\n tagName?: string;\n },\n options?: {\n skipEmptyEmit?: true;\n }\n ) {\n if (!options?.skipEmptyEmit) {\n this.emit();\n }\n }\n\n connect(): void {\n this.connected = true;\n this.invokeAdapter();\n }\n\n disconnect(): void {\n this.unsubscribe();\n this.connected = false;\n }\n\n update(config: Config, _context?: WireContextValue): void {\n this.unsubscribe();\n this.config = sanitize<Config>(config);\n this.invokeAdapter();\n }\n\n protected emit(result?: Result<Data, unknown> | SubscribableResult<Data, unknown>) {\n try {\n if (result === undefined) {\n this.callback({ data: undefined, error: undefined });\n } else {\n const consumerEmittedRefresh = (): Promise<void> => {\n if (!this.refresh) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n if (!this.refresh) {\n resolve();\n return;\n }\n this.refresh().then((res) => {\n if (res.isOk()) {\n resolve();\n } else {\n reject(\n new Error(\n 'Internal error in Lightning Data Service adapter occurred: Failed to refresh data'\n )\n );\n }\n });\n });\n };\n\n let consumerEmittedData = {\n data: undefined,\n error: undefined,\n } as {\n data: Data | undefined;\n error: unknown | undefined;\n refresh?: () => Promise<void>;\n };\n\n if (this.exposeRefresh && this.refresh) {\n consumerEmittedData.refresh = consumerEmittedRefresh;\n }\n\n if (result.isErr()) {\n if (isSubscribableResult(result)) {\n consumerEmittedData.error = result.error.failure;\n } else {\n consumerEmittedData.error = result.error;\n }\n } else {\n if (isSubscribableResult(result)) {\n deepFreeze(result.value.data);\n consumerEmittedData.data = result.value.data;\n } else {\n deepFreeze(result.value);\n consumerEmittedData.data = result.value;\n }\n }\n\n this.callback(consumerEmittedData);\n }\n } catch (e) {\n this.handleExecutionThrow(e);\n }\n }\n\n protected invokeAdapter() {\n if (!this.connected || this.config === undefined) {\n return;\n }\n\n if (this.configSchema) {\n try {\n assertIsValid<unknown>(this.config, this.configSchema);\n } catch (err) {\n if (isIncompleteConfigError(err)) {\n // config is incomplete, wait for updated config\n return;\n }\n\n throw err;\n }\n }\n\n const initialConfig = this.config;\n const command = this.getCommand();\n\n try {\n command.execute().then((result) => {\n // config changed or component disconnected before result came back, ignore result\n if (!this.connected || this.config !== initialConfig) {\n return;\n }\n\n this.refresh = undefined;\n\n if (result.isOk()) {\n if (isSubscribableResult<Data, unknown>(result)) {\n const value = result.value;\n this.unsubscriber = value.subscribe((updatedResult) => {\n if (!this.connected || this.config !== initialConfig) {\n this.unsubscribe();\n return;\n }\n\n this.emit(updatedResult);\n });\n this.refresh = value.refresh;\n this.emit(ok(value.data));\n } else {\n this.emit(result);\n }\n } else {\n if (isSubscribableResult(result)) {\n const value = result.error;\n this.unsubscriber = value.subscribe((updatedResult) => {\n if (!this.connected || this.config !== initialConfig) {\n this.unsubscribe();\n return;\n }\n\n this.emit(updatedResult);\n });\n this.refresh = value.refresh;\n this.emit(result);\n } else {\n this.unsubscriber = () => {};\n this.emit(result);\n }\n }\n });\n } catch (e: unknown) {\n this.handleExecutionThrow(e);\n }\n }\n\n protected handleExecutionThrow(error: unknown) {\n emitError(this.callback, error);\n }\n\n protected unsubscribe() {\n if (this.unsubscriber) {\n this.unsubscriber();\n delete this.unsubscriber;\n }\n }\n}\n\n/**\n * Maps a command failure (unknown or user-visible) into a GraphQLResponse suitable for consumers.\n */\nexport function toGraphQLResponseFromFailure(failure: unknown): {\n data: GraphQLResponse['data'];\n errors: GraphQLResponse['errors'];\n} {\n if (isUserVisibleError<GraphQLResponse>(failure)) {\n return {\n data: failure.data.data,\n errors: failure.data.errors,\n };\n }\n logError(failure);\n return {\n data: undefined,\n errors: [{ message: 'Internal error in GraphQL adapter occurred', locations: [] }],\n };\n}\n","import { type JSONSchema } from '@conduit-client/jsonschema-validate';\nimport { type WireAdapterConstructor, type WireConfigValue } from '@conduit-client/lwc-types';\nimport { CommandWireAdapterConstructor, type GetCommand } from './utils';\nimport { NamedService, ServiceDescriptor } from '@conduit-client/utils';\n\nexport class LWCWireBindingsService {\n bind<Data, Config extends WireConfigValue = WireConfigValue>(\n getCommand: GetCommand<Data, Config>,\n configSchema?: JSONSchema,\n exposeRefresh = false\n ): WireAdapterConstructor<Config, Data, {}> {\n return class extends CommandWireAdapterConstructor<Data, Config> {\n configSchema = configSchema;\n exposeRefresh = exposeRefresh;\n getCommand() {\n return getCommand(this.config!);\n }\n };\n }\n}\n\nexport type LWCWireBindingsServiceDescriptor = ServiceDescriptor<\n LWCWireBindingsService,\n 'lwcWireBindings',\n '1.0'\n>;\n\nexport type NamedLWCWireBindingsService<Name extends string = 'lwcWireBindings'> = NamedService<\n Name,\n LWCWireBindingsService\n>;\n\nexport function buildServiceDescriptor(): LWCWireBindingsServiceDescriptor {\n return {\n type: 'lwcWireBindings',\n version: '1.0',\n service: new LWCWireBindingsService(),\n };\n}\n","import {\n Result,\n ServiceDescriptor,\n SubscribableResult,\n deepFreeze,\n isSubscribableResult,\n logError,\n NamedService,\n} from '@conduit-client/utils';\nimport {\n type GraphQLCommandError,\n type GraphQLResponse,\n type GraphQLCommand,\n} from '@conduit-client/graphql-normalization/v1';\nimport { resolveAst, validateGraphQLOperations } from '@conduit-client/onestore-graphql-parser/v1';\nimport { type JSONSchema } from '@conduit-client/jsonschema-validate';\nimport {\n type WireAdapterConstructor,\n type WireConfigValue,\n type WireContextValue,\n} from '@conduit-client/lwc-types';\nimport {\n CommandWireAdapterConstructor,\n type GetCommand,\n toGraphQLResponseFromFailure,\n} from './utils';\nimport sanitize from './sanitize';\n\nexport abstract class GraphQLCommandWireAdapterConstructor<\n Config extends WireConfigValue = WireConfigValue,\n> extends CommandWireAdapterConstructor<GraphQLResponse, Config, GraphQLCommand> {\n protected emit(\n result?:\n | SubscribableResult<GraphQLResponse, GraphQLCommandError>\n | Result<GraphQLResponse, GraphQLCommandError>\n | undefined\n ): void {\n try {\n if (result === undefined) {\n this.callback({ data: undefined, errors: undefined });\n } else {\n const consumerEmittedRefresh = (): Promise<void> => {\n if (!this.refresh) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n if (!this.refresh) {\n resolve();\n return;\n }\n this.refresh().then((res) => {\n if (res.isOk()) {\n resolve();\n } else {\n reject(\n new Error(\n 'Internal error in GraphQL adapter occurred: Failed to refresh GraphQL data'\n )\n );\n }\n });\n });\n };\n\n let consumerEmittedData = {\n data: undefined,\n errors: undefined,\n } as {\n data: GraphQLResponse | undefined;\n errors: unknown | undefined;\n refresh?: () => Promise<void>;\n };\n\n if (this.exposeRefresh && this.refresh) {\n consumerEmittedData.refresh = consumerEmittedRefresh;\n }\n\n if (result.isErr()) {\n const failure = isSubscribableResult(result)\n ? result.error.failure\n : result.error;\n const resp = toGraphQLResponseFromFailure(failure);\n consumerEmittedData.data = resp.data;\n consumerEmittedData.errors = resp.errors;\n } else {\n consumerEmittedData.data = result.value.data;\n }\n\n deepFreeze(consumerEmittedData);\n this.callback(consumerEmittedData);\n }\n } catch (e) {\n logError(e);\n this.handleExecutionThrow(e);\n }\n }\n\n protected handleExecutionThrow(e: unknown): void {\n logError(e);\n this.callback({\n data: undefined,\n errors: [{ message: 'Internal error in GraphQL adapter occurred', locations: [] }],\n } satisfies GraphQLResponse);\n }\n\n update(config: Config, _context?: WireContextValue): void {\n this.unsubscribe();\n\n const resolvedQuery = resolveAst(config.query);\n if (resolvedQuery) {\n // Validate the resolved query for operation types, considering operationName\n validateGraphQLOperations(\n { query: resolvedQuery, operationName: (config as any)?.operationName },\n { acceptedOperations: ['query'] }\n );\n }\n\n this.config = {\n ...sanitize<Config>(config),\n query: resolvedQuery,\n };\n this.invokeAdapter();\n }\n}\n\nexport class LWCGraphQLWireBindingsService {\n bind<Config extends WireConfigValue = WireConfigValue>(\n getCommand: GetCommand<GraphQLResponse, Config, GraphQLCommand>,\n configSchema?: JSONSchema,\n exposeRefresh = false\n ): WireAdapterConstructor {\n return class extends GraphQLCommandWireAdapterConstructor<Config> {\n configSchema = configSchema;\n exposeRefresh = exposeRefresh;\n getCommand() {\n return getCommand(this.config!);\n }\n };\n }\n}\n\nexport type LWCGraphQLWireBindingsServiceDescriptor = ServiceDescriptor<\n LWCGraphQLWireBindingsService,\n 'lwcGraphQLWireBindings',\n '1.0'\n>;\n\nexport type NamedLWCGraphQLWireBindingsService<Name extends string = 'lwcGraphQLWireBindings'> =\n NamedService<Name, LWCGraphQLWireBindingsService>;\n\nexport function buildServiceDescriptor(): LWCGraphQLWireBindingsServiceDescriptor {\n return {\n type: 'lwcGraphQLWireBindings',\n version: '1.0',\n service: new LWCGraphQLWireBindingsService(),\n };\n}\n"],"names":["buildServiceDescriptor"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@conduit-client/service-bindings-lwc",
3
- "version": "2.1.0",
3
+ "version": "3.0.0",
4
4
  "private": false,
5
5
  "description": "Conduit services for LWC bindings",
6
6
  "type": "module",
@@ -31,14 +31,14 @@
31
31
  "watch": "npm run build --watch"
32
32
  },
33
33
  "dependencies": {
34
- "@conduit-client/bindings-utils": "2.1.0",
35
- "@conduit-client/jsonschema-validate": "2.1.0",
36
- "@conduit-client/onestore-graphql-parser": "2.1.0",
37
- "@conduit-client/utils": "2.1.0"
34
+ "@conduit-client/bindings-utils": "3.0.0",
35
+ "@conduit-client/jsonschema-validate": "3.0.0",
36
+ "@conduit-client/onestore-graphql-parser": "3.0.0",
37
+ "@conduit-client/utils": "3.0.0"
38
38
  },
39
39
  "devDependencies": {
40
- "@conduit-client/graphql-normalization": "2.1.0",
41
- "@conduit-client/lwc-types": "2.1.0"
40
+ "@conduit-client/graphql-normalization": "3.0.0",
41
+ "@conduit-client/lwc-types": "3.0.0"
42
42
  },
43
43
  "volta": {
44
44
  "extends": "../../../../package.json"