@cords/sdk 0.0.7 → 0.0.9
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 +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +30 -49
- package/dist/index.mjs +30 -49
- package/package.json +1 -1
- package/src/index.ts +35 -16
- package/tsconfig.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -89,10 +89,11 @@ type CordsError = {
|
|
|
89
89
|
};
|
|
90
90
|
|
|
91
91
|
declare const ResourceOptions: {};
|
|
92
|
-
declare const CordsAPI: ({ apiKey, version, referer, }: {
|
|
92
|
+
declare const CordsAPI: ({ apiKey, version, referer, baseUrl, }: {
|
|
93
93
|
apiKey: string;
|
|
94
94
|
version?: "production" | "dev";
|
|
95
95
|
referer?: string;
|
|
96
|
+
baseUrl?: string;
|
|
96
97
|
}) => {
|
|
97
98
|
search: (q: string, { calculateCityFromSearchString, calculateProvinceFromSearchString, ...options }: SearchOptions) => Promise<{
|
|
98
99
|
data: SearchResourceType[];
|
package/dist/index.d.ts
CHANGED
|
@@ -89,10 +89,11 @@ type CordsError = {
|
|
|
89
89
|
};
|
|
90
90
|
|
|
91
91
|
declare const ResourceOptions: {};
|
|
92
|
-
declare const CordsAPI: ({ apiKey, version, referer, }: {
|
|
92
|
+
declare const CordsAPI: ({ apiKey, version, referer, baseUrl, }: {
|
|
93
93
|
apiKey: string;
|
|
94
94
|
version?: "production" | "dev";
|
|
95
95
|
referer?: string;
|
|
96
|
+
baseUrl?: string;
|
|
96
97
|
}) => {
|
|
97
98
|
search: (q: string, { calculateCityFromSearchString, calculateProvinceFromSearchString, ...options }: SearchOptions) => Promise<{
|
|
98
99
|
data: SearchResourceType[];
|
package/dist/index.js
CHANGED
|
@@ -45,26 +45,6 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
45
45
|
return to;
|
|
46
46
|
};
|
|
47
47
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
48
|
-
var __async = (__this, __arguments, generator) => {
|
|
49
|
-
return new Promise((resolve, reject) => {
|
|
50
|
-
var fulfilled = (value) => {
|
|
51
|
-
try {
|
|
52
|
-
step(generator.next(value));
|
|
53
|
-
} catch (e) {
|
|
54
|
-
reject(e);
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
var rejected = (value) => {
|
|
58
|
-
try {
|
|
59
|
-
step(generator.throw(value));
|
|
60
|
-
} catch (e) {
|
|
61
|
-
reject(e);
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
65
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
66
|
-
});
|
|
67
|
-
};
|
|
68
48
|
|
|
69
49
|
// src/index.ts
|
|
70
50
|
var src_exports = {};
|
|
@@ -78,11 +58,12 @@ var ResourceOptions = {};
|
|
|
78
58
|
var CordsAPI = ({
|
|
79
59
|
apiKey,
|
|
80
60
|
version = "production",
|
|
81
|
-
referer
|
|
61
|
+
referer,
|
|
62
|
+
baseUrl
|
|
82
63
|
}) => {
|
|
83
|
-
|
|
84
|
-
const request = (input, init) =>
|
|
85
|
-
const res =
|
|
64
|
+
baseUrl = baseUrl != null ? baseUrl : version === "production" ? "https://api.cords.ai" : "https://api.cords.dev";
|
|
65
|
+
const request = async (input, init) => {
|
|
66
|
+
const res = await fetch(input, __spreadProps(__spreadValues({}, init), {
|
|
86
67
|
headers: __spreadValues(__spreadValues({
|
|
87
68
|
"x-api-key": apiKey
|
|
88
69
|
}, referer ? { referer } : {}), init == null ? void 0 : init.headers)
|
|
@@ -90,13 +71,13 @@ var CordsAPI = ({
|
|
|
90
71
|
if (!res.ok) {
|
|
91
72
|
if (res.status === 403)
|
|
92
73
|
throw new Error("Bad API key. Ensure you have a valid API key.");
|
|
93
|
-
const data =
|
|
74
|
+
const data = await res.json();
|
|
94
75
|
if (data.detail) throw new Error(data.detail);
|
|
95
76
|
else throw new Error("An error occurred");
|
|
96
77
|
}
|
|
97
78
|
return res;
|
|
98
|
-
}
|
|
99
|
-
const search = (q, _a) =>
|
|
79
|
+
};
|
|
80
|
+
const search = async (q, _a) => {
|
|
100
81
|
var _b = _a, {
|
|
101
82
|
calculateCityFromSearchString = true,
|
|
102
83
|
calculateProvinceFromSearchString = true
|
|
@@ -131,31 +112,31 @@ var CordsAPI = ({
|
|
|
131
112
|
params.append(`filter[delivery][${key}]`, value ? "true" : "false");
|
|
132
113
|
}
|
|
133
114
|
}
|
|
134
|
-
const res =
|
|
135
|
-
const data =
|
|
115
|
+
const res = await request(`${url.toString()}?${params}`);
|
|
116
|
+
const data = await res.json();
|
|
136
117
|
return data;
|
|
137
|
-
}
|
|
138
|
-
const related = (id) =>
|
|
118
|
+
};
|
|
119
|
+
const related = async (id) => {
|
|
139
120
|
const url = new URL(`/resource/${id}/related`, baseUrl);
|
|
140
|
-
const res =
|
|
121
|
+
const res = await request(url.toString());
|
|
141
122
|
if (!res.ok) {
|
|
142
|
-
const data2 =
|
|
123
|
+
const data2 = await res.json();
|
|
143
124
|
throw new Error(data2.detail);
|
|
144
125
|
}
|
|
145
|
-
const data =
|
|
126
|
+
const data = await res.json();
|
|
146
127
|
return data;
|
|
147
|
-
}
|
|
148
|
-
const resource = (id) =>
|
|
128
|
+
};
|
|
129
|
+
const resource = async (id) => {
|
|
149
130
|
const url = new URL(`/resource/${id}`, baseUrl);
|
|
150
|
-
const res =
|
|
131
|
+
const res = await request(url.toString());
|
|
151
132
|
if (!res.ok) {
|
|
152
|
-
const data2 =
|
|
133
|
+
const data2 = await res.json();
|
|
153
134
|
throw new Error(data2.detail);
|
|
154
135
|
}
|
|
155
|
-
const data =
|
|
136
|
+
const data = await res.json();
|
|
156
137
|
return data;
|
|
157
|
-
}
|
|
158
|
-
const resourceList = (ids) =>
|
|
138
|
+
};
|
|
139
|
+
const resourceList = async (ids) => {
|
|
159
140
|
if (ids.length === 0)
|
|
160
141
|
return {
|
|
161
142
|
data: []
|
|
@@ -163,24 +144,24 @@ var CordsAPI = ({
|
|
|
163
144
|
const params = new URLSearchParams();
|
|
164
145
|
ids.forEach((id, index) => params.append(`ids[${index}]`, id));
|
|
165
146
|
const url = new URL(`/search?${params.toString()}`, baseUrl);
|
|
166
|
-
const res =
|
|
167
|
-
const data =
|
|
147
|
+
const res = await request(url.toString());
|
|
148
|
+
const data = await res.json();
|
|
168
149
|
return data;
|
|
169
|
-
}
|
|
170
|
-
const nearestNeighbour = (id, options) =>
|
|
150
|
+
};
|
|
151
|
+
const nearestNeighbour = async (id, options) => {
|
|
171
152
|
const url = new URL(`/resource/${id}/nearest-neighbor`, baseUrl);
|
|
172
153
|
const params = new URLSearchParams({
|
|
173
154
|
lat: options.lat.toString(),
|
|
174
155
|
lng: options.lng.toString()
|
|
175
156
|
});
|
|
176
|
-
const res =
|
|
157
|
+
const res = await request(url.toString() + "?delivery=local&" + params.toString());
|
|
177
158
|
if (!res.ok) {
|
|
178
|
-
const data2 =
|
|
159
|
+
const data2 = await res.json();
|
|
179
160
|
throw new Error(data2.detail);
|
|
180
161
|
}
|
|
181
|
-
const data =
|
|
162
|
+
const data = await res.json();
|
|
182
163
|
return data;
|
|
183
|
-
}
|
|
164
|
+
};
|
|
184
165
|
return {
|
|
185
166
|
search,
|
|
186
167
|
related,
|
package/dist/index.mjs
CHANGED
|
@@ -29,37 +29,18 @@ var __objRest = (source, exclude) => {
|
|
|
29
29
|
}
|
|
30
30
|
return target;
|
|
31
31
|
};
|
|
32
|
-
var __async = (__this, __arguments, generator) => {
|
|
33
|
-
return new Promise((resolve, reject) => {
|
|
34
|
-
var fulfilled = (value) => {
|
|
35
|
-
try {
|
|
36
|
-
step(generator.next(value));
|
|
37
|
-
} catch (e) {
|
|
38
|
-
reject(e);
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
var rejected = (value) => {
|
|
42
|
-
try {
|
|
43
|
-
step(generator.throw(value));
|
|
44
|
-
} catch (e) {
|
|
45
|
-
reject(e);
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
49
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
50
|
-
});
|
|
51
|
-
};
|
|
52
32
|
|
|
53
33
|
// src/index.ts
|
|
54
34
|
var ResourceOptions = {};
|
|
55
35
|
var CordsAPI = ({
|
|
56
36
|
apiKey,
|
|
57
37
|
version = "production",
|
|
58
|
-
referer
|
|
38
|
+
referer,
|
|
39
|
+
baseUrl
|
|
59
40
|
}) => {
|
|
60
|
-
|
|
61
|
-
const request = (input, init) =>
|
|
62
|
-
const res =
|
|
41
|
+
baseUrl = baseUrl != null ? baseUrl : version === "production" ? "https://api.cords.ai" : "https://api.cords.dev";
|
|
42
|
+
const request = async (input, init) => {
|
|
43
|
+
const res = await fetch(input, __spreadProps(__spreadValues({}, init), {
|
|
63
44
|
headers: __spreadValues(__spreadValues({
|
|
64
45
|
"x-api-key": apiKey
|
|
65
46
|
}, referer ? { referer } : {}), init == null ? void 0 : init.headers)
|
|
@@ -67,13 +48,13 @@ var CordsAPI = ({
|
|
|
67
48
|
if (!res.ok) {
|
|
68
49
|
if (res.status === 403)
|
|
69
50
|
throw new Error("Bad API key. Ensure you have a valid API key.");
|
|
70
|
-
const data =
|
|
51
|
+
const data = await res.json();
|
|
71
52
|
if (data.detail) throw new Error(data.detail);
|
|
72
53
|
else throw new Error("An error occurred");
|
|
73
54
|
}
|
|
74
55
|
return res;
|
|
75
|
-
}
|
|
76
|
-
const search = (q, _a) =>
|
|
56
|
+
};
|
|
57
|
+
const search = async (q, _a) => {
|
|
77
58
|
var _b = _a, {
|
|
78
59
|
calculateCityFromSearchString = true,
|
|
79
60
|
calculateProvinceFromSearchString = true
|
|
@@ -108,31 +89,31 @@ var CordsAPI = ({
|
|
|
108
89
|
params.append(`filter[delivery][${key}]`, value ? "true" : "false");
|
|
109
90
|
}
|
|
110
91
|
}
|
|
111
|
-
const res =
|
|
112
|
-
const data =
|
|
92
|
+
const res = await request(`${url.toString()}?${params}`);
|
|
93
|
+
const data = await res.json();
|
|
113
94
|
return data;
|
|
114
|
-
}
|
|
115
|
-
const related = (id) =>
|
|
95
|
+
};
|
|
96
|
+
const related = async (id) => {
|
|
116
97
|
const url = new URL(`/resource/${id}/related`, baseUrl);
|
|
117
|
-
const res =
|
|
98
|
+
const res = await request(url.toString());
|
|
118
99
|
if (!res.ok) {
|
|
119
|
-
const data2 =
|
|
100
|
+
const data2 = await res.json();
|
|
120
101
|
throw new Error(data2.detail);
|
|
121
102
|
}
|
|
122
|
-
const data =
|
|
103
|
+
const data = await res.json();
|
|
123
104
|
return data;
|
|
124
|
-
}
|
|
125
|
-
const resource = (id) =>
|
|
105
|
+
};
|
|
106
|
+
const resource = async (id) => {
|
|
126
107
|
const url = new URL(`/resource/${id}`, baseUrl);
|
|
127
|
-
const res =
|
|
108
|
+
const res = await request(url.toString());
|
|
128
109
|
if (!res.ok) {
|
|
129
|
-
const data2 =
|
|
110
|
+
const data2 = await res.json();
|
|
130
111
|
throw new Error(data2.detail);
|
|
131
112
|
}
|
|
132
|
-
const data =
|
|
113
|
+
const data = await res.json();
|
|
133
114
|
return data;
|
|
134
|
-
}
|
|
135
|
-
const resourceList = (ids) =>
|
|
115
|
+
};
|
|
116
|
+
const resourceList = async (ids) => {
|
|
136
117
|
if (ids.length === 0)
|
|
137
118
|
return {
|
|
138
119
|
data: []
|
|
@@ -140,24 +121,24 @@ var CordsAPI = ({
|
|
|
140
121
|
const params = new URLSearchParams();
|
|
141
122
|
ids.forEach((id, index) => params.append(`ids[${index}]`, id));
|
|
142
123
|
const url = new URL(`/search?${params.toString()}`, baseUrl);
|
|
143
|
-
const res =
|
|
144
|
-
const data =
|
|
124
|
+
const res = await request(url.toString());
|
|
125
|
+
const data = await res.json();
|
|
145
126
|
return data;
|
|
146
|
-
}
|
|
147
|
-
const nearestNeighbour = (id, options) =>
|
|
127
|
+
};
|
|
128
|
+
const nearestNeighbour = async (id, options) => {
|
|
148
129
|
const url = new URL(`/resource/${id}/nearest-neighbor`, baseUrl);
|
|
149
130
|
const params = new URLSearchParams({
|
|
150
131
|
lat: options.lat.toString(),
|
|
151
132
|
lng: options.lng.toString()
|
|
152
133
|
});
|
|
153
|
-
const res =
|
|
134
|
+
const res = await request(url.toString() + "?delivery=local&" + params.toString());
|
|
154
135
|
if (!res.ok) {
|
|
155
|
-
const data2 =
|
|
136
|
+
const data2 = await res.json();
|
|
156
137
|
throw new Error(data2.detail);
|
|
157
138
|
}
|
|
158
|
-
const data =
|
|
139
|
+
const data = await res.json();
|
|
159
140
|
return data;
|
|
160
|
-
}
|
|
141
|
+
};
|
|
161
142
|
return {
|
|
162
143
|
search,
|
|
163
144
|
related,
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -13,13 +13,21 @@ export const CordsAPI = ({
|
|
|
13
13
|
apiKey,
|
|
14
14
|
version = "production",
|
|
15
15
|
referer,
|
|
16
|
+
baseUrl,
|
|
16
17
|
}: {
|
|
17
18
|
apiKey: string;
|
|
18
19
|
version?: "production" | "dev";
|
|
19
20
|
referer?: string;
|
|
21
|
+
baseUrl?: string;
|
|
20
22
|
}) => {
|
|
21
23
|
// Set the base URL for the Cords API
|
|
22
|
-
|
|
24
|
+
baseUrl =
|
|
25
|
+
baseUrl ??
|
|
26
|
+
(version === "production"
|
|
27
|
+
? "https://api.cords.ai"
|
|
28
|
+
: "https://api.cords.dev");
|
|
29
|
+
|
|
30
|
+
baseUrl = baseUrl.replace(/\/$/, "");
|
|
23
31
|
|
|
24
32
|
// Helper for making requests to the Cords API that applies the api key, referrer, and handles errors
|
|
25
33
|
const request = async (input: RequestInfo, init?: RequestInit) => {
|
|
@@ -33,7 +41,9 @@ export const CordsAPI = ({
|
|
|
33
41
|
});
|
|
34
42
|
if (!res.ok) {
|
|
35
43
|
if (res.status === 403)
|
|
36
|
-
throw new Error(
|
|
44
|
+
throw new Error(
|
|
45
|
+
"Bad API key. Ensure you have a valid API key.",
|
|
46
|
+
);
|
|
37
47
|
const data: CordsError = await res.json();
|
|
38
48
|
if (data.detail) throw new Error(data.detail);
|
|
39
49
|
else throw new Error("An error occurred");
|
|
@@ -48,9 +58,9 @@ export const CordsAPI = ({
|
|
|
48
58
|
calculateCityFromSearchString = true,
|
|
49
59
|
calculateProvinceFromSearchString = true,
|
|
50
60
|
...options
|
|
51
|
-
}: SearchOptions
|
|
61
|
+
}: SearchOptions,
|
|
52
62
|
) => {
|
|
53
|
-
const url = new URL(
|
|
63
|
+
const url = new URL(`${baseUrl}/search`);
|
|
54
64
|
const params = new URLSearchParams({
|
|
55
65
|
q,
|
|
56
66
|
});
|
|
@@ -60,17 +70,19 @@ export const CordsAPI = ({
|
|
|
60
70
|
|
|
61
71
|
// Add top-level parameters
|
|
62
72
|
if (options.page) params.append("page", options.page.toString());
|
|
63
|
-
if (options.pageSize)
|
|
64
|
-
|
|
73
|
+
if (options.pageSize)
|
|
74
|
+
params.append("pageSize", options.pageSize.toString());
|
|
75
|
+
if (options.distance)
|
|
76
|
+
params.append("distance", options.distance.toString());
|
|
65
77
|
|
|
66
78
|
// Add boolean parameters
|
|
67
79
|
params.append(
|
|
68
80
|
"calculateProvinceFromSearchString",
|
|
69
|
-
calculateProvinceFromSearchString ? "true" : "false"
|
|
81
|
+
calculateProvinceFromSearchString ? "true" : "false",
|
|
70
82
|
);
|
|
71
83
|
params.append(
|
|
72
84
|
"calculateCityFromSearchString",
|
|
73
|
-
calculateCityFromSearchString ? "true" : "false"
|
|
85
|
+
calculateCityFromSearchString ? "true" : "false",
|
|
74
86
|
);
|
|
75
87
|
|
|
76
88
|
// Add partner parameters
|
|
@@ -83,7 +95,10 @@ export const CordsAPI = ({
|
|
|
83
95
|
// Add delivery parameters
|
|
84
96
|
if (options.delivery) {
|
|
85
97
|
for (const [key, value] of Object.entries(options.delivery)) {
|
|
86
|
-
params.append(
|
|
98
|
+
params.append(
|
|
99
|
+
`filter[delivery][${key}]`,
|
|
100
|
+
value ? "true" : "false",
|
|
101
|
+
);
|
|
87
102
|
}
|
|
88
103
|
}
|
|
89
104
|
|
|
@@ -97,7 +112,7 @@ export const CordsAPI = ({
|
|
|
97
112
|
|
|
98
113
|
// Get related to a resource
|
|
99
114
|
const related = async (id: string) => {
|
|
100
|
-
const url = new URL(
|
|
115
|
+
const url = new URL(`${baseUrl}/resource/${id}/related`);
|
|
101
116
|
|
|
102
117
|
const res = await request(url.toString());
|
|
103
118
|
if (!res.ok) {
|
|
@@ -110,7 +125,7 @@ export const CordsAPI = ({
|
|
|
110
125
|
|
|
111
126
|
// Get a single resource by id
|
|
112
127
|
const resource = async (id: string) => {
|
|
113
|
-
const url = new URL(
|
|
128
|
+
const url = new URL(`${baseUrl}/resource/${id}`);
|
|
114
129
|
|
|
115
130
|
const res = await request(url.toString());
|
|
116
131
|
if (!res.ok) {
|
|
@@ -122,7 +137,9 @@ export const CordsAPI = ({
|
|
|
122
137
|
};
|
|
123
138
|
|
|
124
139
|
// Get a list of resources by id
|
|
125
|
-
const resourceList = async (
|
|
140
|
+
const resourceList = async (
|
|
141
|
+
ids: string[],
|
|
142
|
+
): Promise<{ data: ResourceType[] }> => {
|
|
126
143
|
if (ids.length === 0)
|
|
127
144
|
return {
|
|
128
145
|
data: [],
|
|
@@ -130,7 +147,7 @@ export const CordsAPI = ({
|
|
|
130
147
|
const params = new URLSearchParams();
|
|
131
148
|
ids.forEach((id, index) => params.append(`ids[${index}]`, id));
|
|
132
149
|
|
|
133
|
-
const url = new URL(
|
|
150
|
+
const url = new URL(`${baseUrl}/search?${params.toString()}`);
|
|
134
151
|
|
|
135
152
|
const res = await request(url.toString());
|
|
136
153
|
const data = await res.json();
|
|
@@ -143,16 +160,18 @@ export const CordsAPI = ({
|
|
|
143
160
|
options: {
|
|
144
161
|
lat: number;
|
|
145
162
|
lng: number;
|
|
146
|
-
}
|
|
163
|
+
},
|
|
147
164
|
) => {
|
|
148
|
-
const url = new URL(
|
|
165
|
+
const url = new URL(`${baseUrl}/resource/${id}/nearest-neighbor`);
|
|
149
166
|
|
|
150
167
|
const params = new URLSearchParams({
|
|
151
168
|
lat: options.lat.toString(),
|
|
152
169
|
lng: options.lng.toString(),
|
|
153
170
|
});
|
|
154
171
|
|
|
155
|
-
const res = await request(
|
|
172
|
+
const res = await request(
|
|
173
|
+
url.toString() + "?delivery=local&" + params.toString(),
|
|
174
|
+
);
|
|
156
175
|
if (!res.ok) {
|
|
157
176
|
const data: CordsError = await res.json();
|
|
158
177
|
throw new Error(data.detail);
|