@orq-ai/node 3.1.7 → 3.2.0-rc.3

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.
Files changed (147) hide show
  1. package/README.md +0 -38
  2. package/docs/sdks/deployments/README.md +0 -81
  3. package/jsr.json +1 -2
  4. package/lib/config.d.ts +3 -3
  5. package/lib/config.js +3 -3
  6. package/lib/config.js.map +1 -1
  7. package/lib/matchers.d.ts.map +1 -1
  8. package/lib/matchers.js +1 -4
  9. package/lib/matchers.js.map +1 -1
  10. package/models/operations/createcontact.js +2 -2
  11. package/models/operations/fileget.js +2 -2
  12. package/models/operations/filelist.js +2 -2
  13. package/models/operations/fileupload.js +2 -2
  14. package/models/operations/index.d.ts +0 -1
  15. package/models/operations/index.d.ts.map +1 -1
  16. package/models/operations/index.js +0 -1
  17. package/models/operations/index.js.map +1 -1
  18. package/package.json +3 -2
  19. package/sdk/deployments.d.ts +0 -8
  20. package/sdk/deployments.d.ts.map +1 -1
  21. package/sdk/deployments.js +0 -10
  22. package/sdk/deployments.js.map +1 -1
  23. package/src/lib/config.ts +3 -3
  24. package/src/lib/matchers.ts +1 -4
  25. package/src/models/operations/createcontact.ts +2 -2
  26. package/src/models/operations/fileget.ts +2 -2
  27. package/src/models/operations/filelist.ts +2 -2
  28. package/src/models/operations/fileupload.ts +2 -2
  29. package/src/models/operations/index.ts +0 -1
  30. package/src/sdk/deployments.ts +0 -19
  31. package/funcs/deploymentsStream.d.ts +0 -16
  32. package/funcs/deploymentsStream.d.ts.map +0 -1
  33. package/funcs/deploymentsStream.js +0 -126
  34. package/funcs/deploymentsStream.js.map +0 -1
  35. package/lib/event-streams.d.ts +0 -17
  36. package/lib/event-streams.d.ts.map +0 -1
  37. package/lib/event-streams.js +0 -220
  38. package/lib/event-streams.js.map +0 -1
  39. package/models/operations/deploymentstream.d.ts +0 -1622
  40. package/models/operations/deploymentstream.d.ts.map +0 -1
  41. package/models/operations/deploymentstream.js +0 -1571
  42. package/models/operations/deploymentstream.js.map +0 -1
  43. package/packages/orq-rc/FUNCTIONS.md +0 -106
  44. package/packages/orq-rc/README.md +0 -506
  45. package/packages/orq-rc/RUNTIMES.md +0 -48
  46. package/packages/orq-rc/docs/sdks/contacts/README.md +0 -84
  47. package/packages/orq-rc/docs/sdks/deployments/README.md +0 -235
  48. package/packages/orq-rc/docs/sdks/feedback/README.md +0 -92
  49. package/packages/orq-rc/docs/sdks/files/README.md +0 -305
  50. package/packages/orq-rc/docs/sdks/metrics/README.md +0 -86
  51. package/packages/orq-rc/docs/sdks/orq/README.md +0 -10
  52. package/packages/orq-rc/docs/sdks/prompts/README.md +0 -608
  53. package/packages/orq-rc/docs/sdks/remoteconfigs/README.md +0 -80
  54. package/packages/orq-rc/jsr.json +0 -27
  55. package/packages/orq-rc/package-lock.json +0 -1861
  56. package/packages/orq-rc/package.json +0 -31
  57. package/packages/orq-rc/src/core.ts +0 -13
  58. package/packages/orq-rc/src/funcs/contactsCreate.ts +0 -127
  59. package/packages/orq-rc/src/funcs/deploymentsGetConfig.ts +0 -135
  60. package/packages/orq-rc/src/funcs/deploymentsInvoke.ts +0 -143
  61. package/packages/orq-rc/src/funcs/deploymentsList.ts +0 -142
  62. package/packages/orq-rc/src/funcs/deploymentsMetricsCreate.ts +0 -135
  63. package/packages/orq-rc/src/funcs/feedbackCreate.ts +0 -127
  64. package/packages/orq-rc/src/funcs/filesCreate.ts +0 -150
  65. package/packages/orq-rc/src/funcs/filesDelete.ts +0 -131
  66. package/packages/orq-rc/src/funcs/filesGet.ts +0 -133
  67. package/packages/orq-rc/src/funcs/filesList.ts +0 -134
  68. package/packages/orq-rc/src/funcs/promptsCreate.ts +0 -127
  69. package/packages/orq-rc/src/funcs/promptsDelete.ts +0 -131
  70. package/packages/orq-rc/src/funcs/promptsGetVersion.ts +0 -147
  71. package/packages/orq-rc/src/funcs/promptsList.ts +0 -134
  72. package/packages/orq-rc/src/funcs/promptsListVersions.ts +0 -140
  73. package/packages/orq-rc/src/funcs/promptsRetrieve.ts +0 -133
  74. package/packages/orq-rc/src/funcs/promptsUpdate.ts +0 -139
  75. package/packages/orq-rc/src/funcs/remoteconfigsRetrieve.ts +0 -128
  76. package/packages/orq-rc/src/hooks/global.ts +0 -44
  77. package/packages/orq-rc/src/hooks/hooks.ts +0 -132
  78. package/packages/orq-rc/src/hooks/index.ts +0 -6
  79. package/packages/orq-rc/src/hooks/registration.ts +0 -15
  80. package/packages/orq-rc/src/hooks/types.ts +0 -110
  81. package/packages/orq-rc/src/index.ts +0 -7
  82. package/packages/orq-rc/src/lib/base64.ts +0 -37
  83. package/packages/orq-rc/src/lib/config.ts +0 -70
  84. package/packages/orq-rc/src/lib/dlv.ts +0 -53
  85. package/packages/orq-rc/src/lib/encodings.ts +0 -483
  86. package/packages/orq-rc/src/lib/env.ts +0 -73
  87. package/packages/orq-rc/src/lib/files.ts +0 -40
  88. package/packages/orq-rc/src/lib/http.ts +0 -323
  89. package/packages/orq-rc/src/lib/is-plain-object.ts +0 -43
  90. package/packages/orq-rc/src/lib/logger.ts +0 -9
  91. package/packages/orq-rc/src/lib/matchers.ts +0 -322
  92. package/packages/orq-rc/src/lib/primitives.ts +0 -136
  93. package/packages/orq-rc/src/lib/retries.ts +0 -218
  94. package/packages/orq-rc/src/lib/schemas.ts +0 -91
  95. package/packages/orq-rc/src/lib/sdks.ts +0 -400
  96. package/packages/orq-rc/src/lib/security.ts +0 -253
  97. package/packages/orq-rc/src/lib/url.ts +0 -33
  98. package/packages/orq-rc/src/models/components/deployments.ts +0 -1666
  99. package/packages/orq-rc/src/models/components/index.ts +0 -6
  100. package/packages/orq-rc/src/models/components/security.ts +0 -71
  101. package/packages/orq-rc/src/models/errors/apierror.ts +0 -27
  102. package/packages/orq-rc/src/models/errors/getpromptversion.ts +0 -71
  103. package/packages/orq-rc/src/models/errors/honoapierror.ts +0 -82
  104. package/packages/orq-rc/src/models/errors/httpclienterrors.ts +0 -62
  105. package/packages/orq-rc/src/models/errors/index.ts +0 -10
  106. package/packages/orq-rc/src/models/errors/sdkvalidationerror.ts +0 -97
  107. package/packages/orq-rc/src/models/errors/updateprompt.ts +0 -71
  108. package/packages/orq-rc/src/models/operations/createcontact.ts +0 -256
  109. package/packages/orq-rc/src/models/operations/createfeedback.ts +0 -286
  110. package/packages/orq-rc/src/models/operations/createprompt.ts +0 -3717
  111. package/packages/orq-rc/src/models/operations/deleteprompt.ts +0 -69
  112. package/packages/orq-rc/src/models/operations/deploymentcreatemetric.ts +0 -1790
  113. package/packages/orq-rc/src/models/operations/deploymentgetconfig.ts +0 -3527
  114. package/packages/orq-rc/src/models/operations/deploymentinvoke.ts +0 -1144
  115. package/packages/orq-rc/src/models/operations/deployments.ts +0 -2148
  116. package/packages/orq-rc/src/models/operations/filedelete.ts +0 -78
  117. package/packages/orq-rc/src/models/operations/fileget.ts +0 -222
  118. package/packages/orq-rc/src/models/operations/filelist.ts +0 -336
  119. package/packages/orq-rc/src/models/operations/fileupload.ts +0 -322
  120. package/packages/orq-rc/src/models/operations/getallprompts.ts +0 -2116
  121. package/packages/orq-rc/src/models/operations/getoneprompt.ts +0 -1982
  122. package/packages/orq-rc/src/models/operations/getpromptversion.ts +0 -2012
  123. package/packages/orq-rc/src/models/operations/index.ts +0 -22
  124. package/packages/orq-rc/src/models/operations/listpromptversions.ts +0 -2146
  125. package/packages/orq-rc/src/models/operations/remoteconfigsgetconfig.ts +0 -190
  126. package/packages/orq-rc/src/models/operations/updateprompt.ts +0 -3900
  127. package/packages/orq-rc/src/sdk/contacts.ts +0 -27
  128. package/packages/orq-rc/src/sdk/deployments.ts +0 -70
  129. package/packages/orq-rc/src/sdk/feedback.ts +0 -27
  130. package/packages/orq-rc/src/sdk/files.ts +0 -78
  131. package/packages/orq-rc/src/sdk/index.ts +0 -5
  132. package/packages/orq-rc/src/sdk/metrics.ts +0 -27
  133. package/packages/orq-rc/src/sdk/prompts.ts +0 -126
  134. package/packages/orq-rc/src/sdk/remoteconfigs.ts +0 -24
  135. package/packages/orq-rc/src/sdk/sdk.ts +0 -43
  136. package/packages/orq-rc/src/types/blobs.ts +0 -31
  137. package/packages/orq-rc/src/types/constdatetime.ts +0 -15
  138. package/packages/orq-rc/src/types/enums.ts +0 -16
  139. package/packages/orq-rc/src/types/fp.ts +0 -50
  140. package/packages/orq-rc/src/types/index.ts +0 -11
  141. package/packages/orq-rc/src/types/operations.ts +0 -105
  142. package/packages/orq-rc/src/types/rfcdate.ts +0 -54
  143. package/packages/orq-rc/src/types/streams.ts +0 -21
  144. package/packages/orq-rc/tsconfig.json +0 -41
  145. package/src/funcs/deploymentsStream.ts +0 -151
  146. package/src/lib/event-streams.ts +0 -264
  147. package/src/models/operations/deploymentstream.ts +0 -3062
@@ -1,132 +0,0 @@
1
- /*
2
- * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
- */
4
-
5
- import { RequestInput } from "../lib/http.js";
6
- import {
7
- AfterErrorContext,
8
- AfterErrorHook,
9
- AfterSuccessContext,
10
- AfterSuccessHook,
11
- BeforeCreateRequestContext,
12
- BeforeCreateRequestHook,
13
- BeforeRequestContext,
14
- BeforeRequestHook,
15
- Hook,
16
- Hooks,
17
- SDKInitHook,
18
- SDKInitOptions,
19
- } from "./types.js";
20
-
21
- import { initHooks } from "./registration.js";
22
-
23
- export class SDKHooks implements Hooks {
24
- sdkInitHooks: SDKInitHook[] = [];
25
- beforeCreateRequestHooks: BeforeCreateRequestHook[] = [];
26
- beforeRequestHooks: BeforeRequestHook[] = [];
27
- afterSuccessHooks: AfterSuccessHook[] = [];
28
- afterErrorHooks: AfterErrorHook[] = [];
29
-
30
- constructor() {
31
- const presetHooks: Array<Hook> = [];
32
-
33
- for (const hook of presetHooks) {
34
- if ("sdkInit" in hook) {
35
- this.registerSDKInitHook(hook);
36
- }
37
- if ("beforeCreateRequest" in hook) {
38
- this.registerBeforeCreateRequestHook(hook);
39
- }
40
- if ("beforeRequest" in hook) {
41
- this.registerBeforeRequestHook(hook);
42
- }
43
- if ("afterSuccess" in hook) {
44
- this.registerAfterSuccessHook(hook);
45
- }
46
- if ("afterError" in hook) {
47
- this.registerAfterErrorHook(hook);
48
- }
49
- }
50
- initHooks(this);
51
- }
52
-
53
- registerSDKInitHook(hook: SDKInitHook) {
54
- this.sdkInitHooks.push(hook);
55
- }
56
-
57
- registerBeforeCreateRequestHook(hook: BeforeCreateRequestHook) {
58
- this.beforeCreateRequestHooks.push(hook);
59
- }
60
-
61
- registerBeforeRequestHook(hook: BeforeRequestHook) {
62
- this.beforeRequestHooks.push(hook);
63
- }
64
-
65
- registerAfterSuccessHook(hook: AfterSuccessHook) {
66
- this.afterSuccessHooks.push(hook);
67
- }
68
-
69
- registerAfterErrorHook(hook: AfterErrorHook) {
70
- this.afterErrorHooks.push(hook);
71
- }
72
-
73
- sdkInit(opts: SDKInitOptions): SDKInitOptions {
74
- return this.sdkInitHooks.reduce((opts, hook) => hook.sdkInit(opts), opts);
75
- }
76
-
77
- beforeCreateRequest(
78
- hookCtx: BeforeCreateRequestContext,
79
- input: RequestInput,
80
- ): RequestInput {
81
- let inp = input;
82
-
83
- for (const hook of this.beforeCreateRequestHooks) {
84
- inp = hook.beforeCreateRequest(hookCtx, inp);
85
- }
86
-
87
- return inp;
88
- }
89
-
90
- async beforeRequest(
91
- hookCtx: BeforeRequestContext,
92
- request: Request,
93
- ): Promise<Request> {
94
- let req = request;
95
-
96
- for (const hook of this.beforeRequestHooks) {
97
- req = await hook.beforeRequest(hookCtx, req);
98
- }
99
-
100
- return req;
101
- }
102
-
103
- async afterSuccess(
104
- hookCtx: AfterSuccessContext,
105
- response: Response,
106
- ): Promise<Response> {
107
- let res = response;
108
-
109
- for (const hook of this.afterSuccessHooks) {
110
- res = await hook.afterSuccess(hookCtx, res);
111
- }
112
-
113
- return res;
114
- }
115
-
116
- async afterError(
117
- hookCtx: AfterErrorContext,
118
- response: Response | null,
119
- error: unknown,
120
- ): Promise<{ response: Response | null; error: unknown }> {
121
- let res = response;
122
- let err = error;
123
-
124
- for (const hook of this.afterErrorHooks) {
125
- const result = await hook.afterError(hookCtx, res, err);
126
- res = result.response;
127
- err = result.error;
128
- }
129
-
130
- return { response: res, error: err };
131
- }
132
- }
@@ -1,6 +0,0 @@
1
- /*
2
- * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
- */
4
-
5
- export * from "./hooks.js";
6
- export * from "./types.js";
@@ -1,15 +0,0 @@
1
- import { GlobalHook } from "./global.js";
2
- import { Hooks } from "./types.js";
3
-
4
- /*
5
- * This file is only ever generated once on the first generation and then is free to be modified.
6
- * Any hooks you wish to add should be registered in the initHooks function. Feel free to define them
7
- * in this file or in separate files in the hooks folder.
8
- */
9
-
10
- export function initHooks(hooks: Hooks) {
11
- // Add hooks by calling hooks.register{ClientInit/BeforeCreateRequest/BeforeRequest/AfterSuccess/AfterError}Hook
12
- // with an instance of a hook that implements that specific Hook interface
13
- // Hooks are registered per SDK instance, and are valid for the lifetime of the SDK instance
14
- hooks.registerBeforeRequestHook(new GlobalHook());
15
- }
@@ -1,110 +0,0 @@
1
- /*
2
- * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
- */
4
-
5
- import { HTTPClient, RequestInput } from "../lib/http.js";
6
- import { RetryConfig } from "../lib/retries.js";
7
- import { SecurityState } from "../lib/security.js";
8
-
9
- export type HookContext = {
10
- baseURL: string | URL;
11
- operationID: string;
12
- oAuth2Scopes?: string[];
13
- securitySource?: any | (() => Promise<any>);
14
- retryConfig: RetryConfig;
15
- resolvedSecurity: SecurityState | null;
16
- };
17
-
18
- export type Awaitable<T> = T | Promise<T>;
19
-
20
- export type SDKInitOptions = {
21
- baseURL: URL | null;
22
- client: HTTPClient;
23
- };
24
-
25
- export type BeforeCreateRequestContext = HookContext & {};
26
- export type BeforeRequestContext = HookContext & {};
27
- export type AfterSuccessContext = HookContext & {};
28
- export type AfterErrorContext = HookContext & {};
29
-
30
- /**
31
- * SDKInitHook is called when the SDK is initializing. The
32
- * hook can return a new baseURL and HTTP client to be used by the SDK.
33
- */
34
- export interface SDKInitHook {
35
- sdkInit: (opts: SDKInitOptions) => SDKInitOptions;
36
- }
37
-
38
- export interface BeforeCreateRequestHook {
39
- /**
40
- * A hook that is called before the SDK creates a `Request` object. The hook
41
- * can modify how a request is constructed since certain modifications, like
42
- * changing the request URL, cannot be done on a request object directly.
43
- */
44
- beforeCreateRequest: (
45
- hookCtx: BeforeCreateRequestContext,
46
- input: RequestInput,
47
- ) => RequestInput;
48
- }
49
-
50
- export interface BeforeRequestHook {
51
- /**
52
- * A hook that is called before the SDK sends a request. The hook can
53
- * introduce instrumentation code such as logging, tracing and metrics or
54
- * replace the request before it is sent or throw an error to stop the
55
- * request from being sent.
56
- */
57
- beforeRequest: (
58
- hookCtx: BeforeRequestContext,
59
- request: Request,
60
- ) => Awaitable<Request>;
61
- }
62
-
63
- export interface AfterSuccessHook {
64
- /**
65
- * A hook that is called after the SDK receives a response. The hook can
66
- * introduce instrumentation code such as logging, tracing and metrics or
67
- * modify the response before it is handled or throw an error to stop the
68
- * response from being handled.
69
- */
70
- afterSuccess: (
71
- hookCtx: AfterSuccessContext,
72
- response: Response,
73
- ) => Awaitable<Response>;
74
- }
75
-
76
- export interface AfterErrorHook {
77
- /**
78
- * A hook that is called after the SDK encounters an error, or a
79
- * non-successful response. The hook can introduce instrumentation code such
80
- * as logging, tracing and metrics or modify the response or error values.
81
- */
82
- afterError: (
83
- hookCtx: AfterErrorContext,
84
- response: Response | null,
85
- error: unknown,
86
- ) => Awaitable<{
87
- response: Response | null;
88
- error: unknown;
89
- }>;
90
- }
91
-
92
- export interface Hooks {
93
- /** Registers a hook to be used by the SDK for initialization event. */
94
- registerSDKInitHook(hook: SDKInitHook): void;
95
- /** Registers a hook to be used by the SDK for to modify `Request` construction. */
96
- registerBeforeCreateRequestHook(hook: BeforeCreateRequestHook): void;
97
- /** Registers a hook to be used by the SDK for the before request event. */
98
- registerBeforeRequestHook(hook: BeforeRequestHook): void;
99
- /** Registers a hook to be used by the SDK for the after success event. */
100
- registerAfterSuccessHook(hook: AfterSuccessHook): void;
101
- /** Registers a hook to be used by the SDK for the after error event. */
102
- registerAfterErrorHook(hook: AfterErrorHook): void;
103
- }
104
-
105
- export type Hook =
106
- | SDKInitHook
107
- | BeforeCreateRequestHook
108
- | BeforeRequestHook
109
- | AfterSuccessHook
110
- | AfterErrorHook;
@@ -1,7 +0,0 @@
1
- /*
2
- * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
- */
4
-
5
- export * from "./lib/config.js";
6
- export * as files from "./lib/files.js";
7
- export * from "./sdk/sdk.js";
@@ -1,37 +0,0 @@
1
- /*
2
- * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
- */
4
-
5
- import * as z from "zod";
6
-
7
- export function bytesToBase64(u8arr: Uint8Array): string {
8
- return btoa(String.fromCodePoint(...u8arr));
9
- }
10
-
11
- export function bytesFromBase64(encoded: string): Uint8Array {
12
- return Uint8Array.from(atob(encoded), (c) => c.charCodeAt(0));
13
- }
14
-
15
- export function stringToBytes(str: string): Uint8Array {
16
- return new TextEncoder().encode(str);
17
- }
18
-
19
- export function stringFromBytes(u8arr: Uint8Array): string {
20
- return new TextDecoder().decode(u8arr);
21
- }
22
-
23
- export function stringToBase64(str: string): string {
24
- return bytesToBase64(stringToBytes(str));
25
- }
26
-
27
- export function stringFromBase64(b64str: string): string {
28
- return stringFromBytes(bytesFromBase64(b64str));
29
- }
30
-
31
- export const zodOutbound = z
32
- .instanceof(Uint8Array)
33
- .or(z.string().transform(stringToBytes));
34
-
35
- export const zodInbound = z
36
- .instanceof(Uint8Array)
37
- .or(z.string().transform(bytesFromBase64));
@@ -1,70 +0,0 @@
1
- /*
2
- * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
- */
4
-
5
- import { HTTPClient } from "./http.js";
6
- import { Logger } from "./logger.js";
7
- import { RetryConfig } from "./retries.js";
8
- import { Params, pathToFunc } from "./url.js";
9
-
10
- /**
11
- * Contains the list of servers available to the SDK
12
- */
13
- export const ServerList = [
14
- "https://my.orq.ai",
15
- ] as const;
16
-
17
- export type SDKOptions = {
18
- apiKey?: string | (() => Promise<string>);
19
-
20
- /**
21
- * Allows setting the contactId parameter for all supported operations
22
- */
23
- contactId?: string | undefined;
24
-
25
- /**
26
- * Allows setting the environment parameter for all supported operations
27
- */
28
- environment?: string | undefined;
29
-
30
- httpClient?: HTTPClient;
31
- /**
32
- * Allows overriding the default server used by the SDK
33
- */
34
- serverIdx?: number;
35
- /**
36
- * Allows overriding the default server URL used by the SDK
37
- */
38
- serverURL?: string;
39
- /**
40
- * Allows overriding the default retry config used by the SDK
41
- */
42
- retryConfig?: RetryConfig;
43
- timeoutMs?: number;
44
- debugLogger?: Logger;
45
- };
46
-
47
- export function serverURLFromOptions(options: SDKOptions): URL | null {
48
- let serverURL = options.serverURL;
49
-
50
- const params: Params = {};
51
-
52
- if (!serverURL) {
53
- const serverIdx = options.serverIdx ?? 0;
54
- if (serverIdx < 0 || serverIdx >= ServerList.length) {
55
- throw new Error(`Invalid server index ${serverIdx}`);
56
- }
57
- serverURL = ServerList[serverIdx] || "";
58
- }
59
-
60
- const u = pathToFunc(serverURL)(params);
61
- return new URL(u);
62
- }
63
-
64
- export const SDK_METADATA = {
65
- language: "typescript",
66
- openapiDocVersion: "2.0",
67
- sdkVersion: "3.2.0-rc.4",
68
- genVersion: "2.512.4",
69
- userAgent: "speakeasy-sdk/typescript 3.2.0-rc.4 2.512.4 2.0 @orq-ai/node",
70
- } as const;
@@ -1,53 +0,0 @@
1
- /*
2
- * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
- */
4
-
5
- /*
6
- MIT License
7
-
8
- Copyright (c) 2024 Jason Miller <jason@developit.ca> (http://jasonformat.com)
9
-
10
- Permission is hereby granted, free of charge, to any person obtaining a copy of
11
- this software and associated documentation files (the "Software"), to deal in
12
- the Software without restriction, including without limitation the rights to
13
- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
14
- the Software, and to permit persons to whom the Software is furnished to do so,
15
- subject to the following conditions:
16
-
17
- The above copyright notice and this permission notice shall be included in all
18
- copies or substantial portions of the Software.
19
-
20
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
22
- FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
23
- COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
24
- IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
25
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26
- */
27
-
28
- /**
29
- * @param obj The object to walk
30
- * @param key The key path to walk the object with
31
- * @param def A default value to return if the result is undefined
32
- *
33
- * @example
34
- * dlv(obj, "a.b.c.d")
35
- * @example
36
- * dlv(object, ["a", "b", "c", "d"])
37
- * @example
38
- * dlv(object, "foo.bar.baz", "Hello, default value!")
39
- */
40
- export function dlv<T = any>(
41
- obj: any,
42
- key: string | string[],
43
- def?: T,
44
- p?: number,
45
- undef?: never,
46
- ): T | undefined {
47
- key = Array.isArray(key) ? key : key.split(".");
48
- for (p = 0; p < key.length; p++) {
49
- const k = key[p];
50
- obj = k != null && obj ? obj[k] : undef;
51
- }
52
- return obj === undef ? def : obj;
53
- }