@cords/sdk 0.0.10 → 0.0.12

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/index.d.mts CHANGED
@@ -89,7 +89,7 @@ type CordsError = {
89
89
  };
90
90
 
91
91
  declare const ResourceOptions: {};
92
- declare const CordsAPI: ({ apiKey, version, referer, baseUrl, }: {
92
+ declare const CordsAPI: ({ apiKey, version, referer, baseUrl: customBaseUrl, }: {
93
93
  apiKey: string;
94
94
  version?: "production" | "dev";
95
95
  referer?: string;
package/dist/index.d.ts CHANGED
@@ -89,7 +89,7 @@ type CordsError = {
89
89
  };
90
90
 
91
91
  declare const ResourceOptions: {};
92
- declare const CordsAPI: ({ apiKey, version, referer, baseUrl, }: {
92
+ declare const CordsAPI: ({ apiKey, version, referer, baseUrl: customBaseUrl, }: {
93
93
  apiKey: string;
94
94
  version?: "production" | "dev";
95
95
  referer?: string;
package/dist/index.js CHANGED
@@ -59,9 +59,10 @@ var CordsAPI = ({
59
59
  apiKey,
60
60
  version = "production",
61
61
  referer,
62
- baseUrl
62
+ baseUrl: customBaseUrl
63
63
  }) => {
64
- baseUrl = baseUrl != null ? baseUrl : version === "production" ? "https://api.cords.ai" : "https://api.cords.dev";
64
+ const baseUrl = customBaseUrl ? customBaseUrl == null ? void 0 : customBaseUrl.replace(/\/$/, "") : version === "production" ? "https://api.cords.ai" : "https://api.cords.dev";
65
+ console.log("test", baseUrl);
65
66
  const request = async (input, init) => {
66
67
  const res = await fetch(input, __spreadProps(__spreadValues({}, init), {
67
68
  headers: __spreadValues(__spreadValues({
@@ -70,13 +71,20 @@ var CordsAPI = ({
70
71
  }));
71
72
  if (!res.ok) {
72
73
  if (res.status === 403)
73
- throw new Error("Bad API key. Ensure you have a valid API key.");
74
+ throw new Error(
75
+ "Bad API key. Ensure you have a valid API key."
76
+ );
74
77
  const data = await res.json();
75
78
  if (data.detail) throw new Error(data.detail);
76
79
  else throw new Error("An error occurred");
77
80
  }
78
81
  return res;
79
82
  };
83
+ const formatUrl = (pathname) => {
84
+ const url = new URL(baseUrl);
85
+ url.pathname = url.pathname.replace(/\/$/, "") + pathname;
86
+ return url;
87
+ };
80
88
  const search = async (q, _a) => {
81
89
  var _b = _a, {
82
90
  calculateCityFromSearchString = true,
@@ -85,15 +93,17 @@ var CordsAPI = ({
85
93
  "calculateCityFromSearchString",
86
94
  "calculateProvinceFromSearchString"
87
95
  ]);
88
- const url = new URL("/search", baseUrl);
96
+ const url = formatUrl("/search");
89
97
  const params = new URLSearchParams({
90
98
  q
91
99
  });
92
100
  params.append("lat", options.lat.toString());
93
101
  params.append("lng", options.lng.toString());
94
102
  if (options.page) params.append("page", options.page.toString());
95
- if (options.pageSize) params.append("pageSize", options.pageSize.toString());
96
- if (options.distance) params.append("distance", options.distance.toString());
103
+ if (options.pageSize)
104
+ params.append("pageSize", options.pageSize.toString());
105
+ if (options.distance)
106
+ params.append("distance", options.distance.toString());
97
107
  params.append(
98
108
  "calculateProvinceFromSearchString",
99
109
  calculateProvinceFromSearchString ? "true" : "false"
@@ -109,7 +119,10 @@ var CordsAPI = ({
109
119
  }
110
120
  if (options.delivery) {
111
121
  for (const [key, value] of Object.entries(options.delivery)) {
112
- params.append(`filter[delivery][${key}]`, value ? "true" : "false");
122
+ params.append(
123
+ `filter[delivery][${key}]`,
124
+ value ? "true" : "false"
125
+ );
113
126
  }
114
127
  }
115
128
  const res = await request(`${url.toString()}?${params}`);
@@ -117,7 +130,7 @@ var CordsAPI = ({
117
130
  return data;
118
131
  };
119
132
  const related = async (id) => {
120
- const url = new URL(`/resource/${id}/related`, baseUrl);
133
+ const url = formatUrl(`/resource/${id}/related`);
121
134
  const res = await request(url.toString());
122
135
  if (!res.ok) {
123
136
  const data2 = await res.json();
@@ -127,7 +140,7 @@ var CordsAPI = ({
127
140
  return data;
128
141
  };
129
142
  const resource = async (id) => {
130
- const url = new URL(`/resource/${id}`, baseUrl);
143
+ const url = formatUrl(`/resource/${id}`);
131
144
  const res = await request(url.toString());
132
145
  if (!res.ok) {
133
146
  const data2 = await res.json();
@@ -143,18 +156,21 @@ var CordsAPI = ({
143
156
  };
144
157
  const params = new URLSearchParams();
145
158
  ids.forEach((id, index) => params.append(`ids[${index}]`, id));
146
- const url = new URL(`/search?${params.toString()}`, baseUrl);
159
+ const url = formatUrl("/resource/list");
160
+ url.search = params.toString();
147
161
  const res = await request(url.toString());
148
162
  const data = await res.json();
149
163
  return data;
150
164
  };
151
165
  const nearestNeighbour = async (id, options) => {
152
- const url = new URL(`/resource/${id}/nearest-neighbor`, baseUrl);
166
+ const url = formatUrl(`/resource/${id}/nearest-neighbor`);
153
167
  const params = new URLSearchParams({
154
168
  lat: options.lat.toString(),
155
169
  lng: options.lng.toString()
156
170
  });
157
- const res = await request(url.toString() + "?delivery=local&" + params.toString());
171
+ const res = await request(
172
+ url.toString() + "?delivery=local&" + params.toString()
173
+ );
158
174
  if (!res.ok) {
159
175
  const data2 = await res.json();
160
176
  throw new Error(data2.detail);
package/dist/index.mjs CHANGED
@@ -36,9 +36,10 @@ var CordsAPI = ({
36
36
  apiKey,
37
37
  version = "production",
38
38
  referer,
39
- baseUrl
39
+ baseUrl: customBaseUrl
40
40
  }) => {
41
- baseUrl = baseUrl != null ? baseUrl : version === "production" ? "https://api.cords.ai" : "https://api.cords.dev";
41
+ const baseUrl = customBaseUrl ? customBaseUrl == null ? void 0 : customBaseUrl.replace(/\/$/, "") : version === "production" ? "https://api.cords.ai" : "https://api.cords.dev";
42
+ console.log("test", baseUrl);
42
43
  const request = async (input, init) => {
43
44
  const res = await fetch(input, __spreadProps(__spreadValues({}, init), {
44
45
  headers: __spreadValues(__spreadValues({
@@ -47,13 +48,20 @@ var CordsAPI = ({
47
48
  }));
48
49
  if (!res.ok) {
49
50
  if (res.status === 403)
50
- throw new Error("Bad API key. Ensure you have a valid API key.");
51
+ throw new Error(
52
+ "Bad API key. Ensure you have a valid API key."
53
+ );
51
54
  const data = await res.json();
52
55
  if (data.detail) throw new Error(data.detail);
53
56
  else throw new Error("An error occurred");
54
57
  }
55
58
  return res;
56
59
  };
60
+ const formatUrl = (pathname) => {
61
+ const url = new URL(baseUrl);
62
+ url.pathname = url.pathname.replace(/\/$/, "") + pathname;
63
+ return url;
64
+ };
57
65
  const search = async (q, _a) => {
58
66
  var _b = _a, {
59
67
  calculateCityFromSearchString = true,
@@ -62,15 +70,17 @@ var CordsAPI = ({
62
70
  "calculateCityFromSearchString",
63
71
  "calculateProvinceFromSearchString"
64
72
  ]);
65
- const url = new URL("/search", baseUrl);
73
+ const url = formatUrl("/search");
66
74
  const params = new URLSearchParams({
67
75
  q
68
76
  });
69
77
  params.append("lat", options.lat.toString());
70
78
  params.append("lng", options.lng.toString());
71
79
  if (options.page) params.append("page", options.page.toString());
72
- if (options.pageSize) params.append("pageSize", options.pageSize.toString());
73
- if (options.distance) params.append("distance", options.distance.toString());
80
+ if (options.pageSize)
81
+ params.append("pageSize", options.pageSize.toString());
82
+ if (options.distance)
83
+ params.append("distance", options.distance.toString());
74
84
  params.append(
75
85
  "calculateProvinceFromSearchString",
76
86
  calculateProvinceFromSearchString ? "true" : "false"
@@ -86,7 +96,10 @@ var CordsAPI = ({
86
96
  }
87
97
  if (options.delivery) {
88
98
  for (const [key, value] of Object.entries(options.delivery)) {
89
- params.append(`filter[delivery][${key}]`, value ? "true" : "false");
99
+ params.append(
100
+ `filter[delivery][${key}]`,
101
+ value ? "true" : "false"
102
+ );
90
103
  }
91
104
  }
92
105
  const res = await request(`${url.toString()}?${params}`);
@@ -94,7 +107,7 @@ var CordsAPI = ({
94
107
  return data;
95
108
  };
96
109
  const related = async (id) => {
97
- const url = new URL(`/resource/${id}/related`, baseUrl);
110
+ const url = formatUrl(`/resource/${id}/related`);
98
111
  const res = await request(url.toString());
99
112
  if (!res.ok) {
100
113
  const data2 = await res.json();
@@ -104,7 +117,7 @@ var CordsAPI = ({
104
117
  return data;
105
118
  };
106
119
  const resource = async (id) => {
107
- const url = new URL(`/resource/${id}`, baseUrl);
120
+ const url = formatUrl(`/resource/${id}`);
108
121
  const res = await request(url.toString());
109
122
  if (!res.ok) {
110
123
  const data2 = await res.json();
@@ -120,18 +133,21 @@ var CordsAPI = ({
120
133
  };
121
134
  const params = new URLSearchParams();
122
135
  ids.forEach((id, index) => params.append(`ids[${index}]`, id));
123
- const url = new URL(`/search?${params.toString()}`, baseUrl);
136
+ const url = formatUrl("/resource/list");
137
+ url.search = params.toString();
124
138
  const res = await request(url.toString());
125
139
  const data = await res.json();
126
140
  return data;
127
141
  };
128
142
  const nearestNeighbour = async (id, options) => {
129
- const url = new URL(`/resource/${id}/nearest-neighbor`, baseUrl);
143
+ const url = formatUrl(`/resource/${id}/nearest-neighbor`);
130
144
  const params = new URLSearchParams({
131
145
  lat: options.lat.toString(),
132
146
  lng: options.lng.toString()
133
147
  });
134
- const res = await request(url.toString() + "?delivery=local&" + params.toString());
148
+ const res = await request(
149
+ url.toString() + "?delivery=local&" + params.toString()
150
+ );
135
151
  if (!res.ok) {
136
152
  const data2 = await res.json();
137
153
  throw new Error(data2.detail);
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "main": "./dist/index.js",
4
4
  "module": "./dist/index.mjs",
5
5
  "types": "./dist/index.d.ts",
6
- "version": "0.0.10",
6
+ "version": "0.0.12",
7
7
  "private": false,
8
8
  "publishConfig": {
9
9
  "access": "public"
package/src/index.ts CHANGED
@@ -49,6 +49,12 @@ export const CordsAPI = ({
49
49
  return res;
50
50
  };
51
51
 
52
+ const formatUrl = (pathname: string) => {
53
+ const url = new URL(baseUrl);
54
+ url.pathname = url.pathname.replace(/\/$/, "") + pathname;
55
+ return url;
56
+ };
57
+
52
58
  // Search for resources
53
59
  const search = async (
54
60
  q: string,
@@ -58,8 +64,7 @@ export const CordsAPI = ({
58
64
  ...options
59
65
  }: SearchOptions,
60
66
  ) => {
61
- const url = new URL(baseUrl);
62
- url.pathname += "/search";
67
+ const url = formatUrl("/search");
63
68
  const params = new URLSearchParams({
64
69
  q,
65
70
  });
@@ -111,8 +116,7 @@ export const CordsAPI = ({
111
116
 
112
117
  // Get related to a resource
113
118
  const related = async (id: string) => {
114
- const url = new URL(baseUrl);
115
- url.pathname += `/resource/${id}/related`;
119
+ const url = formatUrl(`/resource/${id}/related`);
116
120
 
117
121
  const res = await request(url.toString());
118
122
  if (!res.ok) {
@@ -125,8 +129,7 @@ export const CordsAPI = ({
125
129
 
126
130
  // Get a single resource by id
127
131
  const resource = async (id: string) => {
128
- const url = new URL(baseUrl);
129
- url.pathname += `/resource/${id}`;
132
+ const url = formatUrl(`/resource/${id}`);
130
133
 
131
134
  const res = await request(url.toString());
132
135
  if (!res.ok) {
@@ -148,8 +151,7 @@ export const CordsAPI = ({
148
151
  const params = new URLSearchParams();
149
152
  ids.forEach((id, index) => params.append(`ids[${index}]`, id));
150
153
 
151
- const url = new URL(baseUrl);
152
- url.pathname += "/resource/list";
154
+ const url = formatUrl("/resource/list");
153
155
  url.search = params.toString();
154
156
 
155
157
  const res = await request(url.toString());
@@ -165,8 +167,7 @@ export const CordsAPI = ({
165
167
  lng: number;
166
168
  },
167
169
  ) => {
168
- const url = new URL(baseUrl);
169
- url.pathname += `/resource/${id}/nearest-neighbor`;
170
+ const url = formatUrl(`/resource/${id}/nearest-neighbor`);
170
171
 
171
172
  const params = new URLSearchParams({
172
173
  lat: options.lat.toString(),