@palmetto/users-sdk 0.0.2 → 0.0.4

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.
package/dist/client.d.ts CHANGED
@@ -1,6 +1,18 @@
1
+ type AnyObject = {
2
+ [k in string]: unknown;
3
+ };
4
+ interface LogPayload extends AnyObject {
5
+ message: string;
6
+ }
7
+ interface Logger {
8
+ log(payload: LogPayload): void;
9
+ error(payload: LogPayload): void;
10
+ warn(payload: LogPayload): void;
11
+ }
1
12
  export interface CreateClientOptions {
2
13
  apiUrl: string;
3
14
  authToken?: string;
15
+ logger?: Logger;
4
16
  }
5
17
  export interface ApiOptions {
6
18
  authToken?: string;
@@ -10,6 +22,7 @@ export declare class UsersApiClient {
10
22
  private api;
11
23
  private fetcher;
12
24
  private headers;
25
+ private logger;
13
26
  constructor(opts: CreateClientOptions);
14
27
  setAuthToken(authToken: string): void;
15
28
  me(opts?: ApiOptions): Promise<import("./result").ResultOk<import("openapi-typescript-fetch").ApiResponse<{
@@ -32,10 +45,11 @@ export declare class UsersApiClient {
32
45
  }>> | import("./result").ResultErr<{
33
46
  code: "NOT_AUTHENTICATED";
34
47
  }> | import("./result").ResultErr<{
35
- error: unknown;
48
+ message: string;
36
49
  } & {
37
50
  code: "UNKNOWN_ERROR";
38
51
  }>>;
39
52
  protected generateRequestInit(opts?: ApiOptions): RequestInit;
40
53
  protected mergeHeaders(overrides: Record<string, string>): Headers;
41
54
  }
55
+ export {};
package/dist/client.js CHANGED
@@ -7,6 +7,7 @@ class UsersApiClient {
7
7
  api;
8
8
  fetcher;
9
9
  headers;
10
+ logger;
10
11
  constructor(opts) {
11
12
  this.fetcher = openapi_typescript_fetch_1.Fetcher.for();
12
13
  this.fetcher.configure({ baseUrl: opts.apiUrl });
@@ -14,6 +15,7 @@ class UsersApiClient {
14
15
  if (opts.authToken) {
15
16
  this.setAuthToken(opts.authToken);
16
17
  }
18
+ this.logger = opts.logger;
17
19
  this.api = {
18
20
  me: this.fetcher.path("/api/users/me").method("get").create(),
19
21
  };
@@ -28,12 +30,18 @@ class UsersApiClient {
28
30
  }
29
31
  catch (err) {
30
32
  if (err instanceof openapi_typescript_fetch_1.ApiError) {
33
+ this.logger?.warn({
34
+ message: `API call failed`,
35
+ status: err.status,
36
+ });
31
37
  switch (err.status) {
32
38
  case 401:
33
39
  return (0, result_1.Err)("NOT_AUTHENTICATED");
34
40
  }
35
41
  }
36
- return (0, result_1.Err)("UNKNOWN_ERROR", { error: err });
42
+ const message = err instanceof Error ? err.message : "An unknown error occurred.";
43
+ this.logger?.error({ message, err });
44
+ return (0, result_1.Err)("UNKNOWN_ERROR", { message });
37
45
  }
38
46
  }
39
47
  generateRequestInit(opts) {
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@palmetto/users-sdk",
3
- "version": "0.0.2",
3
+ "private": false,
4
+ "version": "0.0.4",
4
5
  "main": "./dist/main.js",
5
6
  "files": [
6
7
  "dist/**/*",
@@ -12,7 +13,8 @@
12
13
  "scripts": {
13
14
  "build": "tsc",
14
15
  "tc": "tsc --noEmit",
15
- "generate": "node ./scripts/generateApiSchema.mjs"
16
+ "generate": "node ./scripts/generateApiSchema.mjs",
17
+ "prepublishOnly": "yarn build"
16
18
  },
17
19
  "devDependencies": {
18
20
  "@types/node": "^22.5.5",
@@ -21,5 +23,8 @@
21
23
  },
22
24
  "dependencies": {
23
25
  "openapi-typescript-fetch": "^2.0.0"
26
+ },
27
+ "publishConfig": {
28
+ "access": "public"
24
29
  }
25
30
  }