shred-api-client 1.0.4 → 1.0.6

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.
@@ -0,0 +1,8 @@
1
+ import Context from "../model/Context";
2
+ import { User, UserAPISchema } from "../model/User.schema";
3
+ declare class UserAPI implements UserAPISchema {
4
+ private clientHTTP;
5
+ constructor();
6
+ getUserInfo(context: Context): Promise<User>;
7
+ }
8
+ export default UserAPI;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const User_schema_1 = require("../model/User.schema");
7
+ const HTTPClient_1 = __importDefault(require("../util/HTTPClient"));
8
+ class UserAPI {
9
+ constructor() {
10
+ this.clientHTTP = new HTTPClient_1.default();
11
+ }
12
+ async getUserInfo(context) {
13
+ const data = await this.clientHTTP.makeRequest(User_schema_1.UserEndpoints.GetUserInfo, "GET", null, context);
14
+ return data;
15
+ }
16
+ }
17
+ exports.default = UserAPI;
package/dist/index.d.mts CHANGED
@@ -33,4 +33,4 @@ declare class ShredAPI {
33
33
  constructor();
34
34
  }
35
35
 
36
- export { ShredAPI };
36
+ export { ShredAPI as default };
package/dist/index.d.ts CHANGED
@@ -1,36 +1,2 @@
1
- type Context = {
2
- token: string;
3
- requestId: string;
4
- };
5
-
6
- interface UserAPISchema {
7
- getUserInfo: (context: Context) => Promise<User>;
8
- }
9
- type Preferences = {
10
- primaryColor?: string;
11
- secondaryColor?: string;
12
- facebookLink?: string;
13
- instagramLink?: string;
14
- bRoll?: boolean;
15
- logo?: string;
16
- };
17
- type User = {
18
- id: string;
19
- name: string;
20
- email: string;
21
- customerId: string;
22
- registered: boolean;
23
- profession?: string;
24
- registeredAt: number;
25
- fcmToken?: string;
26
- photoUrl?: string;
27
- preferences?: Preferences;
28
- invitationCode?: string;
29
- };
30
-
31
- declare class ShredAPI {
32
- user: UserAPISchema;
33
- constructor();
34
- }
35
-
36
- export { ShredAPI };
1
+ import { ShredAPI } from "./model/Api";
2
+ export default ShredAPI;
package/dist/index.js CHANGED
@@ -1,93 +1,4 @@
1
1
  "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/index.ts
21
- var src_exports = {};
22
- __export(src_exports, {
23
- ShredAPI: () => ShredAPI
24
- });
25
- module.exports = __toCommonJS(src_exports);
26
-
27
- // src/model/User.schema.ts
28
- var UserEndpoints = {
29
- GetUserInfo: "/user/info"
30
- };
31
-
32
- // src/util/HTTPClient.ts
33
- var HOSTS = {
34
- prod: "https://api.shredmedia.co",
35
- staging: "https://api-staging.shredmedia.co"
36
- };
37
- var HTTPClient = class {
38
- constructor() {
39
- const env = process.env.ENV;
40
- this.host = HOSTS[env] || HOSTS.staging;
41
- }
42
- async makeRequest(uri, method, data, context) {
43
- const headers = new Headers();
44
- headers.append("Authorization", `Bearer ${context.token}`);
45
- headers.append("X-Request-ID", context.requestId);
46
- const config = {
47
- method,
48
- headers,
49
- body: method === "GET" ? null : JSON.stringify(data)
50
- };
51
- try {
52
- const endpoint = this.host + uri;
53
- const response = await fetch(endpoint, config);
54
- console.log("Making Request to", endpoint);
55
- if (!response.ok) {
56
- throw new Error(`HTTP error! status: ${response.status}`);
57
- }
58
- return await response.json();
59
- } catch (error) {
60
- console.error("Error making HTTP request:", error);
61
- throw error;
62
- }
63
- }
64
- };
65
-
66
- // src/api/User.api.ts
67
- var UserAPI = class {
68
- constructor() {
69
- this.clientHTTP = new HTTPClient();
70
- }
71
- async getUserInfo(context) {
72
- const data = await this.clientHTTP.makeRequest(
73
- UserEndpoints.GetUserInfo,
74
- "GET",
75
- null,
76
- context
77
- );
78
- return data;
79
- }
80
- };
81
- var User_api_default = UserAPI;
82
-
83
- // src/model/Api.ts
84
- var ShredAPI = class {
85
- constructor() {
86
- this.user = new User_api_default();
87
- }
88
- };
89
- // Annotate the CommonJS export names for ESM import in node:
90
- 0 && (module.exports = {
91
- ShredAPI
92
- });
93
- //# sourceMappingURL=index.js.map
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const Api_1 = require("./model/Api");
4
+ exports.default = Api_1.ShredAPI;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/model/User.schema.ts","../src/util/HTTPClient.ts","../src/api/User.api.ts","../src/model/Api.ts"],"sourcesContent":["export { ShredAPI } from \"./model/Api\";\n","import Context from \"./Context\";\n\ninterface UserAPISchema {\n getUserInfo: (context: Context) => Promise<User>;\n}\n\nconst UserEndpoints = {\n GetUserInfo: \"/user/info\",\n};\n\ntype Preferences = {\n primaryColor?: string;\n secondaryColor?: string;\n facebookLink?: string;\n instagramLink?: string;\n bRoll?: boolean;\n logo?: string;\n};\n\ntype User = {\n id: string;\n name: string;\n email: string;\n customerId: string;\n registered: boolean;\n profession?: string;\n registeredAt: number;\n fcmToken?: string;\n photoUrl?: string;\n preferences?: Preferences;\n invitationCode?: string;\n};\n\nexport { User, UserAPISchema, UserEndpoints };\n","import Context from \"./../model/Context\";\n\nconst HOSTS = {\n prod: \"https://api.shredmedia.co\",\n staging: \"https://api-staging.shredmedia.co\",\n};\n\nexport default class HTTPClient {\n private host: string;\n\n constructor() {\n const env = process.env.ENV as \"prod\" | \"staging\";\n this.host = HOSTS[env] || HOSTS.staging;\n }\n\n async makeRequest(\n uri: string,\n method: \"GET\" | \"POST\" | \"PUT\" | \"DELETE\",\n data: any,\n context: Context\n ) {\n const headers = new Headers();\n headers.append(\"Authorization\", `Bearer ${context.token}`);\n headers.append(\"X-Request-ID\", context.requestId);\n\n const config: RequestInit = {\n method: method,\n headers: headers,\n body: method === \"GET\" ? null : JSON.stringify(data),\n };\n\n try {\n const endpoint = this.host + uri;\n const response = await fetch(endpoint, config);\n console.log(\"Making Request to\", endpoint);\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n return await response.json();\n } catch (error) {\n console.error(\"Error making HTTP request:\", error);\n throw error;\n }\n }\n}\n","import Context from \"../model/Context\";\nimport { User, UserAPISchema, UserEndpoints } from \"../model/User.schema\";\nimport HTTPClient from \"../util/HTTPClient\";\n\nclass UserAPI implements UserAPISchema {\n private clientHTTP: HTTPClient;\n\n constructor() {\n this.clientHTTP = new HTTPClient();\n }\n\n async getUserInfo(context: Context): Promise<User> {\n const data = await this.clientHTTP.makeRequest(\n UserEndpoints.GetUserInfo,\n \"GET\",\n null,\n context\n );\n\n return data;\n }\n}\n\nexport default UserAPI;\n","import UserAPI from \"../api/User.api\";\nimport { UserAPISchema } from \"./User.schema\";\n\nexport class ShredAPI {\n user: UserAPISchema;\n\n constructor() {\n this.user = new UserAPI();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACMA,IAAM,gBAAgB;AAAA,EACpB,aAAa;AACf;;;ACNA,IAAM,QAAQ;AAAA,EACZ,MAAM;AAAA,EACN,SAAS;AACX;AAEA,IAAqB,aAArB,MAAgC;AAAA,EAG9B,cAAc;AACZ,UAAM,MAAM,QAAQ,IAAI;AACxB,SAAK,OAAO,MAAM,GAAG,KAAK,MAAM;AAAA,EAClC;AAAA,EAEA,MAAM,YACJ,KACA,QACA,MACA,SACA;AACA,UAAM,UAAU,IAAI,QAAQ;AAC5B,YAAQ,OAAO,iBAAiB,UAAU,QAAQ,KAAK,EAAE;AACzD,YAAQ,OAAO,gBAAgB,QAAQ,SAAS;AAEhD,UAAM,SAAsB;AAAA,MAC1B;AAAA,MACA;AAAA,MACA,MAAM,WAAW,QAAQ,OAAO,KAAK,UAAU,IAAI;AAAA,IACrD;AAEA,QAAI;AACF,YAAM,WAAW,KAAK,OAAO;AAC7B,YAAM,WAAW,MAAM,MAAM,UAAU,MAAM;AAC7C,cAAQ,IAAI,qBAAqB,QAAQ;AACzC,UAAI,CAAC,SAAS,IAAI;AAChB,cAAM,IAAI,MAAM,uBAAuB,SAAS,MAAM,EAAE;AAAA,MAC1D;AACA,aAAO,MAAM,SAAS,KAAK;AAAA,IAC7B,SAAS,OAAO;AACd,cAAQ,MAAM,8BAA8B,KAAK;AACjD,YAAM;AAAA,IACR;AAAA,EACF;AACF;;;ACxCA,IAAM,UAAN,MAAuC;AAAA,EAGrC,cAAc;AACZ,SAAK,aAAa,IAAI,WAAW;AAAA,EACnC;AAAA,EAEA,MAAM,YAAY,SAAiC;AACjD,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;AAEA,IAAO,mBAAQ;;;ACpBR,IAAM,WAAN,MAAe;AAAA,EAGpB,cAAc;AACZ,SAAK,OAAO,IAAI,iBAAQ;AAAA,EAC1B;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts","../src/model/User.schema.ts","../src/util/HTTPClient.ts","../src/api/User.api.ts","../src/model/Api.ts"],"sourcesContent":["import { ShredAPI } from \"./model/Api\";\n\nexport default ShredAPI;\n","import Context from \"./Context\";\n\ninterface UserAPISchema {\n getUserInfo: (context: Context) => Promise<User>;\n}\n\nconst UserEndpoints = {\n GetUserInfo: \"/user/info\",\n};\n\ntype Preferences = {\n primaryColor?: string;\n secondaryColor?: string;\n facebookLink?: string;\n instagramLink?: string;\n bRoll?: boolean;\n logo?: string;\n};\n\ntype User = {\n id: string;\n name: string;\n email: string;\n customerId: string;\n registered: boolean;\n profession?: string;\n registeredAt: number;\n fcmToken?: string;\n photoUrl?: string;\n preferences?: Preferences;\n invitationCode?: string;\n};\n\nexport { User, UserAPISchema, UserEndpoints };\n","import Context from \"./../model/Context\";\n\nconst HOSTS = {\n prod: \"https://api.shredmedia.co\",\n staging: \"https://api-staging.shredmedia.co\",\n};\n\nexport default class HTTPClient {\n private host: string;\n\n constructor() {\n const env = process.env.ENV as \"prod\" | \"staging\";\n this.host = HOSTS[env] || HOSTS.staging;\n }\n\n async makeRequest(\n uri: string,\n method: \"GET\" | \"POST\" | \"PUT\" | \"DELETE\",\n data: any,\n context: Context\n ) {\n const headers = new Headers();\n headers.append(\"Authorization\", `Bearer ${context.token}`);\n headers.append(\"X-Request-ID\", context.requestId);\n\n const config: RequestInit = {\n method: method,\n headers: headers,\n body: method === \"GET\" ? null : JSON.stringify(data),\n };\n\n try {\n const endpoint = this.host + uri;\n const response = await fetch(endpoint, config);\n console.log(\"Making Request to\", endpoint);\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n return await response.json();\n } catch (error) {\n console.error(\"Error making HTTP request:\", error);\n throw error;\n }\n }\n}\n","import Context from \"../model/Context\";\nimport { User, UserAPISchema, UserEndpoints } from \"../model/User.schema\";\nimport HTTPClient from \"../util/HTTPClient\";\n\nclass UserAPI implements UserAPISchema {\n private clientHTTP: HTTPClient;\n\n constructor() {\n this.clientHTTP = new HTTPClient();\n }\n\n async getUserInfo(context: Context): Promise<User> {\n const data = await this.clientHTTP.makeRequest(\n UserEndpoints.GetUserInfo,\n \"GET\",\n null,\n context\n );\n\n return data;\n }\n}\n\nexport default UserAPI;\n","import UserAPI from \"../api/User.api\";\nimport { UserAPISchema } from \"./User.schema\";\n\nexport class ShredAPI {\n user: UserAPISchema;\n\n constructor() {\n this.user = new UserAPI();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACMA,IAAM,gBAAgB;AAAA,EACpB,aAAa;AACf;;;ACNA,IAAM,QAAQ;AAAA,EACZ,MAAM;AAAA,EACN,SAAS;AACX;AAEA,IAAqB,aAArB,MAAgC;AAAA,EAG9B,cAAc;AACZ,UAAM,MAAM,QAAQ,IAAI;AACxB,SAAK,OAAO,MAAM,GAAG,KAAK,MAAM;AAAA,EAClC;AAAA,EAEA,MAAM,YACJ,KACA,QACA,MACA,SACA;AACA,UAAM,UAAU,IAAI,QAAQ;AAC5B,YAAQ,OAAO,iBAAiB,UAAU,QAAQ,KAAK,EAAE;AACzD,YAAQ,OAAO,gBAAgB,QAAQ,SAAS;AAEhD,UAAM,SAAsB;AAAA,MAC1B;AAAA,MACA;AAAA,MACA,MAAM,WAAW,QAAQ,OAAO,KAAK,UAAU,IAAI;AAAA,IACrD;AAEA,QAAI;AACF,YAAM,WAAW,KAAK,OAAO;AAC7B,YAAM,WAAW,MAAM,MAAM,UAAU,MAAM;AAC7C,cAAQ,IAAI,qBAAqB,QAAQ;AACzC,UAAI,CAAC,SAAS,IAAI;AAChB,cAAM,IAAI,MAAM,uBAAuB,SAAS,MAAM,EAAE;AAAA,MAC1D;AACA,aAAO,MAAM,SAAS,KAAK;AAAA,IAC7B,SAAS,OAAO;AACd,cAAQ,MAAM,8BAA8B,KAAK;AACjD,YAAM;AAAA,IACR;AAAA,EACF;AACF;;;ACxCA,IAAM,UAAN,MAAuC;AAAA,EAGrC,cAAc;AACZ,SAAK,aAAa,IAAI,WAAW;AAAA,EACnC;AAAA,EAEA,MAAM,YAAY,SAAiC;AACjD,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;AAEA,IAAO,mBAAQ;;;ACpBR,IAAM,WAAN,MAAe;AAAA,EAGpB,cAAc;AACZ,SAAK,OAAO,IAAI,iBAAQ;AAAA,EAC1B;AACF;;;AJPA,IAAO,cAAQ;","names":[]}
package/dist/index.mjs CHANGED
@@ -60,7 +60,10 @@ var ShredAPI = class {
60
60
  this.user = new User_api_default();
61
61
  }
62
62
  };
63
+
64
+ // src/index.ts
65
+ var src_default = ShredAPI;
63
66
  export {
64
- ShredAPI
67
+ src_default as default
65
68
  };
66
69
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/model/User.schema.ts","../src/util/HTTPClient.ts","../src/api/User.api.ts","../src/model/Api.ts"],"sourcesContent":["import Context from \"./Context\";\n\ninterface UserAPISchema {\n getUserInfo: (context: Context) => Promise<User>;\n}\n\nconst UserEndpoints = {\n GetUserInfo: \"/user/info\",\n};\n\ntype Preferences = {\n primaryColor?: string;\n secondaryColor?: string;\n facebookLink?: string;\n instagramLink?: string;\n bRoll?: boolean;\n logo?: string;\n};\n\ntype User = {\n id: string;\n name: string;\n email: string;\n customerId: string;\n registered: boolean;\n profession?: string;\n registeredAt: number;\n fcmToken?: string;\n photoUrl?: string;\n preferences?: Preferences;\n invitationCode?: string;\n};\n\nexport { User, UserAPISchema, UserEndpoints };\n","import Context from \"./../model/Context\";\n\nconst HOSTS = {\n prod: \"https://api.shredmedia.co\",\n staging: \"https://api-staging.shredmedia.co\",\n};\n\nexport default class HTTPClient {\n private host: string;\n\n constructor() {\n const env = process.env.ENV as \"prod\" | \"staging\";\n this.host = HOSTS[env] || HOSTS.staging;\n }\n\n async makeRequest(\n uri: string,\n method: \"GET\" | \"POST\" | \"PUT\" | \"DELETE\",\n data: any,\n context: Context\n ) {\n const headers = new Headers();\n headers.append(\"Authorization\", `Bearer ${context.token}`);\n headers.append(\"X-Request-ID\", context.requestId);\n\n const config: RequestInit = {\n method: method,\n headers: headers,\n body: method === \"GET\" ? null : JSON.stringify(data),\n };\n\n try {\n const endpoint = this.host + uri;\n const response = await fetch(endpoint, config);\n console.log(\"Making Request to\", endpoint);\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n return await response.json();\n } catch (error) {\n console.error(\"Error making HTTP request:\", error);\n throw error;\n }\n }\n}\n","import Context from \"../model/Context\";\nimport { User, UserAPISchema, UserEndpoints } from \"../model/User.schema\";\nimport HTTPClient from \"../util/HTTPClient\";\n\nclass UserAPI implements UserAPISchema {\n private clientHTTP: HTTPClient;\n\n constructor() {\n this.clientHTTP = new HTTPClient();\n }\n\n async getUserInfo(context: Context): Promise<User> {\n const data = await this.clientHTTP.makeRequest(\n UserEndpoints.GetUserInfo,\n \"GET\",\n null,\n context\n );\n\n return data;\n }\n}\n\nexport default UserAPI;\n","import UserAPI from \"../api/User.api\";\nimport { UserAPISchema } from \"./User.schema\";\n\nexport class ShredAPI {\n user: UserAPISchema;\n\n constructor() {\n this.user = new UserAPI();\n }\n}\n"],"mappings":";AAMA,IAAM,gBAAgB;AAAA,EACpB,aAAa;AACf;;;ACNA,IAAM,QAAQ;AAAA,EACZ,MAAM;AAAA,EACN,SAAS;AACX;AAEA,IAAqB,aAArB,MAAgC;AAAA,EAG9B,cAAc;AACZ,UAAM,MAAM,QAAQ,IAAI;AACxB,SAAK,OAAO,MAAM,GAAG,KAAK,MAAM;AAAA,EAClC;AAAA,EAEA,MAAM,YACJ,KACA,QACA,MACA,SACA;AACA,UAAM,UAAU,IAAI,QAAQ;AAC5B,YAAQ,OAAO,iBAAiB,UAAU,QAAQ,KAAK,EAAE;AACzD,YAAQ,OAAO,gBAAgB,QAAQ,SAAS;AAEhD,UAAM,SAAsB;AAAA,MAC1B;AAAA,MACA;AAAA,MACA,MAAM,WAAW,QAAQ,OAAO,KAAK,UAAU,IAAI;AAAA,IACrD;AAEA,QAAI;AACF,YAAM,WAAW,KAAK,OAAO;AAC7B,YAAM,WAAW,MAAM,MAAM,UAAU,MAAM;AAC7C,cAAQ,IAAI,qBAAqB,QAAQ;AACzC,UAAI,CAAC,SAAS,IAAI;AAChB,cAAM,IAAI,MAAM,uBAAuB,SAAS,MAAM,EAAE;AAAA,MAC1D;AACA,aAAO,MAAM,SAAS,KAAK;AAAA,IAC7B,SAAS,OAAO;AACd,cAAQ,MAAM,8BAA8B,KAAK;AACjD,YAAM;AAAA,IACR;AAAA,EACF;AACF;;;ACxCA,IAAM,UAAN,MAAuC;AAAA,EAGrC,cAAc;AACZ,SAAK,aAAa,IAAI,WAAW;AAAA,EACnC;AAAA,EAEA,MAAM,YAAY,SAAiC;AACjD,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;AAEA,IAAO,mBAAQ;;;ACpBR,IAAM,WAAN,MAAe;AAAA,EAGpB,cAAc;AACZ,SAAK,OAAO,IAAI,iBAAQ;AAAA,EAC1B;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/model/User.schema.ts","../src/util/HTTPClient.ts","../src/api/User.api.ts","../src/model/Api.ts","../src/index.ts"],"sourcesContent":["import Context from \"./Context\";\n\ninterface UserAPISchema {\n getUserInfo: (context: Context) => Promise<User>;\n}\n\nconst UserEndpoints = {\n GetUserInfo: \"/user/info\",\n};\n\ntype Preferences = {\n primaryColor?: string;\n secondaryColor?: string;\n facebookLink?: string;\n instagramLink?: string;\n bRoll?: boolean;\n logo?: string;\n};\n\ntype User = {\n id: string;\n name: string;\n email: string;\n customerId: string;\n registered: boolean;\n profession?: string;\n registeredAt: number;\n fcmToken?: string;\n photoUrl?: string;\n preferences?: Preferences;\n invitationCode?: string;\n};\n\nexport { User, UserAPISchema, UserEndpoints };\n","import Context from \"./../model/Context\";\n\nconst HOSTS = {\n prod: \"https://api.shredmedia.co\",\n staging: \"https://api-staging.shredmedia.co\",\n};\n\nexport default class HTTPClient {\n private host: string;\n\n constructor() {\n const env = process.env.ENV as \"prod\" | \"staging\";\n this.host = HOSTS[env] || HOSTS.staging;\n }\n\n async makeRequest(\n uri: string,\n method: \"GET\" | \"POST\" | \"PUT\" | \"DELETE\",\n data: any,\n context: Context\n ) {\n const headers = new Headers();\n headers.append(\"Authorization\", `Bearer ${context.token}`);\n headers.append(\"X-Request-ID\", context.requestId);\n\n const config: RequestInit = {\n method: method,\n headers: headers,\n body: method === \"GET\" ? null : JSON.stringify(data),\n };\n\n try {\n const endpoint = this.host + uri;\n const response = await fetch(endpoint, config);\n console.log(\"Making Request to\", endpoint);\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n return await response.json();\n } catch (error) {\n console.error(\"Error making HTTP request:\", error);\n throw error;\n }\n }\n}\n","import Context from \"../model/Context\";\nimport { User, UserAPISchema, UserEndpoints } from \"../model/User.schema\";\nimport HTTPClient from \"../util/HTTPClient\";\n\nclass UserAPI implements UserAPISchema {\n private clientHTTP: HTTPClient;\n\n constructor() {\n this.clientHTTP = new HTTPClient();\n }\n\n async getUserInfo(context: Context): Promise<User> {\n const data = await this.clientHTTP.makeRequest(\n UserEndpoints.GetUserInfo,\n \"GET\",\n null,\n context\n );\n\n return data;\n }\n}\n\nexport default UserAPI;\n","import UserAPI from \"../api/User.api\";\nimport { UserAPISchema } from \"./User.schema\";\n\nexport class ShredAPI {\n user: UserAPISchema;\n\n constructor() {\n this.user = new UserAPI();\n }\n}\n","import { ShredAPI } from \"./model/Api\";\n\nexport default ShredAPI;\n"],"mappings":";AAMA,IAAM,gBAAgB;AAAA,EACpB,aAAa;AACf;;;ACNA,IAAM,QAAQ;AAAA,EACZ,MAAM;AAAA,EACN,SAAS;AACX;AAEA,IAAqB,aAArB,MAAgC;AAAA,EAG9B,cAAc;AACZ,UAAM,MAAM,QAAQ,IAAI;AACxB,SAAK,OAAO,MAAM,GAAG,KAAK,MAAM;AAAA,EAClC;AAAA,EAEA,MAAM,YACJ,KACA,QACA,MACA,SACA;AACA,UAAM,UAAU,IAAI,QAAQ;AAC5B,YAAQ,OAAO,iBAAiB,UAAU,QAAQ,KAAK,EAAE;AACzD,YAAQ,OAAO,gBAAgB,QAAQ,SAAS;AAEhD,UAAM,SAAsB;AAAA,MAC1B;AAAA,MACA;AAAA,MACA,MAAM,WAAW,QAAQ,OAAO,KAAK,UAAU,IAAI;AAAA,IACrD;AAEA,QAAI;AACF,YAAM,WAAW,KAAK,OAAO;AAC7B,YAAM,WAAW,MAAM,MAAM,UAAU,MAAM;AAC7C,cAAQ,IAAI,qBAAqB,QAAQ;AACzC,UAAI,CAAC,SAAS,IAAI;AAChB,cAAM,IAAI,MAAM,uBAAuB,SAAS,MAAM,EAAE;AAAA,MAC1D;AACA,aAAO,MAAM,SAAS,KAAK;AAAA,IAC7B,SAAS,OAAO;AACd,cAAQ,MAAM,8BAA8B,KAAK;AACjD,YAAM;AAAA,IACR;AAAA,EACF;AACF;;;ACxCA,IAAM,UAAN,MAAuC;AAAA,EAGrC,cAAc;AACZ,SAAK,aAAa,IAAI,WAAW;AAAA,EACnC;AAAA,EAEA,MAAM,YAAY,SAAiC;AACjD,UAAM,OAAO,MAAM,KAAK,WAAW;AAAA,MACjC,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;AAEA,IAAO,mBAAQ;;;ACpBR,IAAM,WAAN,MAAe;AAAA,EAGpB,cAAc;AACZ,SAAK,OAAO,IAAI,iBAAQ;AAAA,EAC1B;AACF;;;ACPA,IAAO,cAAQ;","names":[]}
@@ -0,0 +1,5 @@
1
+ import { UserAPISchema } from "./User.schema";
2
+ export declare class ShredAPI {
3
+ user: UserAPISchema;
4
+ constructor();
5
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ShredAPI = void 0;
7
+ const User_api_1 = __importDefault(require("../api/User.api"));
8
+ class ShredAPI {
9
+ constructor() {
10
+ this.user = new User_api_1.default();
11
+ }
12
+ }
13
+ exports.ShredAPI = ShredAPI;
@@ -0,0 +1,5 @@
1
+ type Context = {
2
+ token: string;
3
+ requestId: string;
4
+ };
5
+ export default Context;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,29 @@
1
+ import Context from "./Context";
2
+ interface UserAPISchema {
3
+ getUserInfo: (context: Context) => Promise<User>;
4
+ }
5
+ declare const UserEndpoints: {
6
+ GetUserInfo: string;
7
+ };
8
+ type Preferences = {
9
+ primaryColor?: string;
10
+ secondaryColor?: string;
11
+ facebookLink?: string;
12
+ instagramLink?: string;
13
+ bRoll?: boolean;
14
+ logo?: string;
15
+ };
16
+ type User = {
17
+ id: string;
18
+ name: string;
19
+ email: string;
20
+ customerId: string;
21
+ registered: boolean;
22
+ profession?: string;
23
+ registeredAt: number;
24
+ fcmToken?: string;
25
+ photoUrl?: string;
26
+ preferences?: Preferences;
27
+ invitationCode?: string;
28
+ };
29
+ export { User, UserAPISchema, UserEndpoints };
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UserEndpoints = void 0;
4
+ const UserEndpoints = {
5
+ GetUserInfo: "/api/user/info",
6
+ };
7
+ exports.UserEndpoints = UserEndpoints;
@@ -0,0 +1,6 @@
1
+ import Context from "./../model/Context";
2
+ export default class HTTPClient {
3
+ private host;
4
+ constructor();
5
+ makeRequest(uri: string, method: "GET" | "POST" | "PUT" | "DELETE", data: any, context: Context): Promise<any>;
6
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const HOSTS = {
4
+ prod: "https://api.shredmedia.co",
5
+ staging: "https://api-staging.shredmedia.co",
6
+ };
7
+ class HTTPClient {
8
+ constructor() {
9
+ const env = process.env.ENV;
10
+ this.host = HOSTS[env] || HOSTS.staging;
11
+ }
12
+ async makeRequest(uri, method, data, context) {
13
+ const headers = new Headers();
14
+ headers.append("Authorization", `Bearer ${context.token}`);
15
+ headers.append("X-Request-ID", context.requestId);
16
+ const config = {
17
+ method: method,
18
+ headers: headers,
19
+ body: method === "GET" ? null : JSON.stringify(data),
20
+ };
21
+ try {
22
+ const endpoint = this.host + uri;
23
+ const response = await fetch(endpoint, config);
24
+ if (!response.ok) {
25
+ throw new Error(`HTTP error! status: ${response.status}`);
26
+ }
27
+ return await response.json();
28
+ }
29
+ catch (error) {
30
+ console.error("Error making HTTP request:", error);
31
+ throw error;
32
+ }
33
+ }
34
+ }
35
+ exports.default = HTTPClient;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shred-api-client",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "API Client for Shred",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -10,7 +10,8 @@
10
10
  ],
11
11
  "scripts": {
12
12
  "test": "echo \"Error: no test specified\" && exit 1",
13
- "build": "tsup"
13
+ "build": "tsc --project tsconfig.json && tscpaths -p tsconfig.json -s . -o ./dist",
14
+ "build:watch": "tsc -w"
14
15
  },
15
16
  "author": "Marcus Cartágenes",
16
17
  "license": "ISC",
@@ -20,6 +21,7 @@
20
21
  },
21
22
  "devDependencies": {
22
23
  "@types/node": "^20.12.7",
24
+ "tscpaths": "^0.0.9",
23
25
  "tsup": "^8.0.2",
24
26
  "typescript": "^5.4.5"
25
27
  }