@conduit-client/bindings-utils 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,5 +1,6 @@
1
1
  import { Command } from '@conduit-client/command-base/v1';
2
2
  import { Result, SyncOrAsync, SubscribableResult, Callback, IInternalError, IUserVisibleError } from '@conduit-client/utils';
3
+ import { type RequestedServices, type ServicesRequest } from '@conduit-client/service-provisioner/v1';
3
4
  export type ResultOrSubscribableResult<Data, Error = unknown> = Result<Data, Error> | SubscribableResult<Data, Error>;
4
5
  export type MaybeSubscribableResultCommand<Data, Error = unknown> = Command<SyncOrAsync<ResultOrSubscribableResult<Data, Error>>>;
5
6
  export type SubscribableResultCommand<Data, Error = unknown, Params extends Array<any> = []> = Command<SyncOrAsync<SubscribableResult<Data, Error>>, Params>;
@@ -10,3 +11,20 @@ export declare function throwUserlandError(error: unknown): never;
10
11
  export declare function emitError(callback: Callback<any>, error: unknown): void;
11
12
  export declare function buildUserlandError(error: unknown): Error;
12
13
  export declare function logError(error: unknown): void;
14
+ export type InitBindingsExportsArgs<Req extends ServicesRequest<any>, TExports extends object> = {
15
+ serviceRequirements: Req;
16
+ exports: TExports;
17
+ init: (services: RequestedServices<Req>, exports: TExports) => void;
18
+ timeout?: number;
19
+ };
20
+ /**
21
+ * Bootstraps a bindings exports map by requesting services from the service provisioner and
22
+ * invoking a generated (or custom) initializer to populate exports.
23
+ *
24
+ * This is intended to make generated code extensible: custom modules can compose exports and
25
+ * then call this function once, without needing to enumerate every generated export.
26
+ */
27
+ export declare function initBindingsExports<Req extends ServicesRequest<any>, TExports extends object>(args: InitBindingsExportsArgs<Req, TExports>): {
28
+ exports: TExports;
29
+ ready: PromiseLike<void>;
30
+ };
package/dist/v1/index.js CHANGED
@@ -3,6 +3,7 @@
3
3
  * All rights reserved.
4
4
  * For full license text, see the LICENSE.txt file
5
5
  */
6
+ import getServices from "@conduit-client/service-provisioner/v1";
6
7
  function isInternalError(error) {
7
8
  return error instanceof Error && "type" in error && error.type === "internal";
8
9
  }
@@ -29,9 +30,17 @@ function logError(error) {
29
30
  }
30
31
  console.error("OneStore Command threw an error that we did not expect", error);
31
32
  }
33
+ function initBindingsExports(args) {
34
+ const { serviceRequirements, exports: exports$1, init, timeout } = args;
35
+ const ready = getServices(serviceRequirements, timeout).then((services) => {
36
+ init(services, exports$1);
37
+ });
38
+ return { exports: exports$1, ready };
39
+ }
32
40
  export {
33
41
  buildUserlandError,
34
42
  emitError,
43
+ initBindingsExports,
35
44
  isInternalError,
36
45
  isUserVisibleError,
37
46
  logError,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/v1/utils.ts"],"sourcesContent":["import { Command } from '@conduit-client/command-base/v1';\nimport {\n Result,\n SyncOrAsync,\n SubscribableResult,\n Callback,\n IInternalError,\n IUserVisibleError,\n} from '@conduit-client/utils';\n\nexport type ResultOrSubscribableResult<Data, Error = unknown> =\n | Result<Data, Error>\n | SubscribableResult<Data, Error>;\n\nexport type MaybeSubscribableResultCommand<Data, Error = unknown> = Command<\n SyncOrAsync<ResultOrSubscribableResult<Data, Error>>\n>;\n\nexport type SubscribableResultCommand<\n Data,\n Error = unknown,\n Params extends Array<any> = [],\n> = Command<SyncOrAsync<SubscribableResult<Data, Error>>, Params>;\n\nexport type ResultCommand<Data, Error = unknown> = Command<SyncOrAsync<Result<Data, Error>>>;\n\nexport function isInternalError<Data = undefined>(error: unknown): error is IInternalError<Data> {\n return error instanceof Error && 'type' in error && error.type === 'internal';\n}\n\nexport function isUserVisibleError<Data = undefined>(\n error: unknown\n): error is IUserVisibleError<Data> {\n return error instanceof Error && 'type' in error && error.type === 'user-visible';\n}\n\nexport function throwUserlandError(error: unknown): never {\n logError(error);\n throw buildUserlandError(error);\n}\n\nexport function emitError(callback: Callback<any>, error: unknown): void {\n logError(error);\n callback({ data: undefined, error: buildUserlandError(error) });\n}\n\nexport function buildUserlandError(error: unknown): Error {\n if (isUserVisibleError<Error>(error)) {\n return error.data;\n }\n\n return new Error('Internal error in Lightning Data Service adapter occurred.');\n}\n\nexport function logError(error: unknown): void {\n if (isUserVisibleError(error)) {\n return;\n }\n\n console.error('OneStore Command threw an error that we did not expect', error);\n}\n"],"names":[],"mappings":";;;;;AA0BO,SAAS,gBAAkC,OAA+C;AAC7F,SAAO,iBAAiB,SAAS,UAAU,SAAS,MAAM,SAAS;AACvE;AAEO,SAAS,mBACZ,OACgC;AAChC,SAAO,iBAAiB,SAAS,UAAU,SAAS,MAAM,SAAS;AACvE;AAEO,SAAS,mBAAmB,OAAuB;AACtD,WAAS,KAAK;AACd,QAAM,mBAAmB,KAAK;AAClC;AAEO,SAAS,UAAU,UAAyB,OAAsB;AACrE,WAAS,KAAK;AACd,WAAS,EAAE,MAAM,QAAW,OAAO,mBAAmB,KAAK,GAAG;AAClE;AAEO,SAAS,mBAAmB,OAAuB;AACtD,MAAI,mBAA0B,KAAK,GAAG;AAClC,WAAO,MAAM;AAAA,EACjB;AAEA,SAAO,IAAI,MAAM,4DAA4D;AACjF;AAEO,SAAS,SAAS,OAAsB;AAC3C,MAAI,mBAAmB,KAAK,GAAG;AAC3B;AAAA,EACJ;AAEA,UAAQ,MAAM,0DAA0D,KAAK;AACjF;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/v1/utils.ts"],"sourcesContent":["import { Command } from '@conduit-client/command-base/v1';\nimport {\n Result,\n SyncOrAsync,\n SubscribableResult,\n Callback,\n IInternalError,\n IUserVisibleError,\n} from '@conduit-client/utils';\nimport getServices, {\n type RequestedServices,\n type ServicesRequest,\n} from '@conduit-client/service-provisioner/v1';\n\nexport type ResultOrSubscribableResult<Data, Error = unknown> =\n | Result<Data, Error>\n | SubscribableResult<Data, Error>;\n\nexport type MaybeSubscribableResultCommand<Data, Error = unknown> = Command<\n SyncOrAsync<ResultOrSubscribableResult<Data, Error>>\n>;\n\nexport type SubscribableResultCommand<\n Data,\n Error = unknown,\n Params extends Array<any> = [],\n> = Command<SyncOrAsync<SubscribableResult<Data, Error>>, Params>;\n\nexport type ResultCommand<Data, Error = unknown> = Command<SyncOrAsync<Result<Data, Error>>>;\n\nexport function isInternalError<Data = undefined>(error: unknown): error is IInternalError<Data> {\n return error instanceof Error && 'type' in error && error.type === 'internal';\n}\n\nexport function isUserVisibleError<Data = undefined>(\n error: unknown\n): error is IUserVisibleError<Data> {\n return error instanceof Error && 'type' in error && error.type === 'user-visible';\n}\n\nexport function throwUserlandError(error: unknown): never {\n logError(error);\n throw buildUserlandError(error);\n}\n\nexport function emitError(callback: Callback<any>, error: unknown): void {\n logError(error);\n callback({ data: undefined, error: buildUserlandError(error) });\n}\n\nexport function buildUserlandError(error: unknown): Error {\n if (isUserVisibleError<Error>(error)) {\n return error.data;\n }\n\n return new Error('Internal error in Lightning Data Service adapter occurred.');\n}\n\nexport function logError(error: unknown): void {\n if (isUserVisibleError(error)) {\n return;\n }\n\n console.error('OneStore Command threw an error that we did not expect', error);\n}\n\nexport type InitBindingsExportsArgs<Req extends ServicesRequest<any>, TExports extends object> = {\n serviceRequirements: Req;\n exports: TExports;\n init: (services: RequestedServices<Req>, exports: TExports) => void;\n timeout?: number;\n};\n\n/**\n * Bootstraps a bindings exports map by requesting services from the service provisioner and\n * invoking a generated (or custom) initializer to populate exports.\n *\n * This is intended to make generated code extensible: custom modules can compose exports and\n * then call this function once, without needing to enumerate every generated export.\n */\nexport function initBindingsExports<Req extends ServicesRequest<any>, TExports extends object>(\n args: InitBindingsExportsArgs<Req, TExports>\n): { exports: TExports; ready: PromiseLike<void> } {\n const { serviceRequirements, exports, init, timeout } = args;\n\n const ready = getServices(serviceRequirements, timeout).then((services) => {\n init(services, exports);\n });\n\n return { exports, ready };\n}\n"],"names":["exports"],"mappings":";;;;;;AA8BO,SAAS,gBAAkC,OAA+C;AAC7F,SAAO,iBAAiB,SAAS,UAAU,SAAS,MAAM,SAAS;AACvE;AAEO,SAAS,mBACZ,OACgC;AAChC,SAAO,iBAAiB,SAAS,UAAU,SAAS,MAAM,SAAS;AACvE;AAEO,SAAS,mBAAmB,OAAuB;AACtD,WAAS,KAAK;AACd,QAAM,mBAAmB,KAAK;AAClC;AAEO,SAAS,UAAU,UAAyB,OAAsB;AACrE,WAAS,KAAK;AACd,WAAS,EAAE,MAAM,QAAW,OAAO,mBAAmB,KAAK,GAAG;AAClE;AAEO,SAAS,mBAAmB,OAAuB;AACtD,MAAI,mBAA0B,KAAK,GAAG;AAClC,WAAO,MAAM;AAAA,EACjB;AAEA,SAAO,IAAI,MAAM,4DAA4D;AACjF;AAEO,SAAS,SAAS,OAAsB;AAC3C,MAAI,mBAAmB,KAAK,GAAG;AAC3B;AAAA,EACJ;AAEA,UAAQ,MAAM,0DAA0D,KAAK;AACjF;AAgBO,SAAS,oBACZ,MAC+C;AAC/C,QAAM,EAAE,qBAAA,SAAqBA,WAAS,MAAM,YAAY;AAExD,QAAM,QAAQ,YAAY,qBAAqB,OAAO,EAAE,KAAK,CAAC,aAAa;AACvE,SAAK,UAAUA,SAAO;AAAA,EAC1B,CAAC;AAED,SAAO,EAAA,SAAEA,WAAS,MAAA;AACtB;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@conduit-client/bindings-utils",
3
- "version": "3.7.1",
3
+ "version": "3.9.0",
4
4
  "private": false,
5
5
  "description": "Conduit utils for building bindings consistently",
6
6
  "type": "module",
@@ -31,16 +31,17 @@
31
31
  "watch": "npm run build --watch"
32
32
  },
33
33
  "dependencies": {
34
- "@conduit-client/command-base": "3.7.1",
35
- "@conduit-client/utils": "3.7.1"
34
+ "@conduit-client/command-base": "3.9.0",
35
+ "@conduit-client/service-provisioner": "3.9.0",
36
+ "@conduit-client/utils": "3.9.0"
36
37
  },
37
38
  "volta": {
38
- "extends": "../../../../package.json"
39
+ "extends": "../../../package.json"
39
40
  },
40
41
  "size-limit": [
41
42
  {
42
43
  "path": "./dist/v1/index.js",
43
- "limit": "500 B"
44
+ "limit": "2 KB"
44
45
  }
45
46
  ]
46
47
  }