@conduit-client/service-bindings-lwc 3.7.1 → 3.9.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,3 +1,4 @@
1
1
  export { type LWCWireBindingsServiceDescriptor, type NamedLWCWireBindingsService, buildServiceDescriptor as buildLWCWireBindingsServiceDescriptor, } from './wire';
2
2
  export { type LWCGraphQLWireBindingsServiceDescriptor, type NamedLWCGraphQLWireBindingsService, buildServiceDescriptor as buildLWCGraphQLWireBindingsServiceDescriptor, } from './graphql-wire';
3
3
  export { type WireAdapterConstructor } from '@conduit-client/lwc-types';
4
+ export { CommandWireAdapterConstructor } from './utils';
package/dist/v1/index.js CHANGED
@@ -6,7 +6,7 @@
6
6
  import { emitError } from "@conduit-client/bindings-utils/v1";
7
7
  import { assertIsValid, MissingRequiredPropertyError, JsonSchemaViolationError } from "@conduit-client/jsonschema-validate";
8
8
  import { isSubscribableResult, deepFreeze, ok, isUserVisibleError, logError } from "@conduit-client/utils";
9
- import { resolveAst, validateGraphQLOperations } from "@conduit-client/onestore-graphql-parser/v1";
9
+ import { resolveAndValidateGraphQLConfig } from "@conduit-client/onestore-graphql-parser/v1";
10
10
  class Sanitizer {
11
11
  constructor(obj) {
12
12
  this.obj = obj;
@@ -302,16 +302,25 @@ class GraphQLCommandWireAdapterConstructor extends CommandWireAdapterConstructor
302
302
  }
303
303
  update(config, _context) {
304
304
  this.unsubscribe();
305
- const resolvedQuery = resolveAst(config.query);
306
- if (resolvedQuery) {
307
- validateGraphQLOperations(
308
- { query: resolvedQuery, operationName: config == null ? void 0 : config.operationName },
309
- { acceptedOperations: ["query"] }
310
- );
305
+ const options = {
306
+ acceptedOperations: ["query"]
307
+ };
308
+ const result = resolveAndValidateGraphQLConfig(config, options);
309
+ if (!result) {
310
+ return;
311
+ }
312
+ if (result.isErr()) {
313
+ const error = result.error;
314
+ this.callback({
315
+ data: void 0,
316
+ errors: error.errors
317
+ });
318
+ return;
311
319
  }
320
+ const { query, ...rest } = result.value;
312
321
  this.config = {
313
- ...sanitize(config),
314
- query: resolvedQuery
322
+ query,
323
+ ...sanitize(rest)
315
324
  };
316
325
  this.invokeAdapter();
317
326
  }
@@ -338,6 +347,7 @@ function buildServiceDescriptor() {
338
347
  };
339
348
  }
340
349
  export {
350
+ CommandWireAdapterConstructor,
341
351
  buildServiceDescriptor as buildLWCGraphQLWireBindingsServiceDescriptor,
342
352
  buildServiceDescriptor$1 as buildLWCWireBindingsServiceDescriptor
343
353
  };
@@ -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 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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"}
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 {\n type ResolveAndValidateOptions,\n resolveAndValidateGraphQLConfig,\n} 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['data'];\n errors: GraphQLResponse['errors'];\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 // Centralized parsing error handling (handles null/undefined query)\n const options: ResolveAndValidateOptions = {\n acceptedOperations: ['query'],\n };\n const result = resolveAndValidateGraphQLConfig(config, options);\n\n if (!result) {\n return;\n }\n\n if (result.isErr()) {\n const error = result.error;\n // Emit error response for actual parsing errors\n this.callback({\n data: undefined,\n errors: error.errors,\n } satisfies GraphQLResponse);\n return;\n }\n\n // Sanitize everything except query (DocumentNode must not be sanitized for AST resolution)\n const { query, ...rest } = result.value;\n this.config = {\n query,\n ...sanitize(rest),\n } as unknown as Config;\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": "3.7.1",
3
+ "version": "3.9.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": "3.7.1",
35
- "@conduit-client/jsonschema-validate": "3.7.1",
36
- "@conduit-client/onestore-graphql-parser": "3.7.1",
37
- "@conduit-client/utils": "3.7.1"
34
+ "@conduit-client/bindings-utils": "3.9.0",
35
+ "@conduit-client/jsonschema-validate": "3.9.0",
36
+ "@conduit-client/onestore-graphql-parser": "3.9.0",
37
+ "@conduit-client/utils": "3.9.0"
38
38
  },
39
39
  "devDependencies": {
40
- "@conduit-client/graphql-normalization": "3.7.1",
41
- "@conduit-client/lwc-types": "3.7.1"
40
+ "@conduit-client/graphql-normalization": "3.9.0",
41
+ "@conduit-client/lwc-types": "3.9.0"
42
42
  },
43
43
  "volta": {
44
44
  "extends": "../../../../package.json"