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