vinmonopolet-ts 5.2.11 → 5.2.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/CHANGELOG.md +6 -0
- package/README.md +18 -0
- package/dist/cjs/exceptions/VinmonopoletError.js +9 -0
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/util/GET.js +27 -14
- package/dist/esm/exceptions/VinmonopoletError.js +8 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/util/GET.js +24 -14
- package/dist/types/exceptions/VinmonopoletError.d.ts +5 -0
- package/dist/types/index.d.ts +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -32,6 +32,24 @@ This project is a rewrite of the original package in typescript, so it is now fu
|
|
|
32
32
|
|
|
33
33
|
You can override the base URL (`www.vinmonopolet.no`) by setting the `VINMONOPOLET_BASE_URL` environment variable, for example `VINMONOPOLET_BASE_URL=http://localhost:3000`.
|
|
34
34
|
|
|
35
|
+
## Error handling
|
|
36
|
+
|
|
37
|
+
All the functions throws `VinmonopoletError` if something goes wrong. It extends from the base javascript `Error`class and contains a http status code.
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
import { VinmonopoletError } from "vinmonopolet-ts";
|
|
41
|
+
|
|
42
|
+
async function getAllProducs() {
|
|
43
|
+
try {
|
|
44
|
+
const procuts = await getProducts();
|
|
45
|
+
} catch (error) {
|
|
46
|
+
if (error instanceof VinmonopoletError) {
|
|
47
|
+
// Handle error
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
35
53
|
## Documentation
|
|
36
54
|
|
|
37
55
|
### GetProducts
|
package/dist/cjs/index.js
CHANGED
|
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.getProductReleases = exports.getStore = exports.searchStores = exports.getAllStores = exports.getProductsByIds = exports.getProductsByStore = exports.getFacets = exports.getProduct = exports.getProducts = exports.PopulatedStore = exports.BaseStore = exports.RawMaterial = exports.ProductStatus = exports.ProductImage = exports.PopulatedProduct = exports.BaseProduct = exports.Pagination = exports.FoodPairing = exports.FacetCategory = exports.FacetValue = exports.Facet = void 0;
|
|
29
|
+
exports.getProductReleases = exports.getStore = exports.searchStores = exports.getAllStores = exports.getProductsByIds = exports.getProductsByStore = exports.getFacets = exports.getProduct = exports.getProducts = exports.VinmonopoletError = exports.PopulatedStore = exports.BaseStore = exports.RawMaterial = exports.ProductStatus = exports.ProductImage = exports.PopulatedProduct = exports.BaseProduct = exports.Pagination = exports.FoodPairing = exports.FacetCategory = exports.FacetValue = exports.Facet = void 0;
|
|
30
30
|
require("reflect-metadata");
|
|
31
31
|
var Facet_1 = require("./models/Facet");
|
|
32
32
|
Object.defineProperty(exports, "Facet", { enumerable: true, get: function () { return __importDefault(Facet_1).default; } });
|
|
@@ -51,6 +51,8 @@ var BaseStore_1 = require("./models/store/BaseStore");
|
|
|
51
51
|
Object.defineProperty(exports, "BaseStore", { enumerable: true, get: function () { return __importDefault(BaseStore_1).default; } });
|
|
52
52
|
var BaseStore_2 = require("./models/store/BaseStore");
|
|
53
53
|
Object.defineProperty(exports, "PopulatedStore", { enumerable: true, get: function () { return __importDefault(BaseStore_2).default; } });
|
|
54
|
+
var VinmonopoletError_1 = require("./exceptions/VinmonopoletError");
|
|
55
|
+
Object.defineProperty(exports, "VinmonopoletError", { enumerable: true, get: function () { return __importDefault(VinmonopoletError_1).default; } });
|
|
54
56
|
var getProducts_1 = require("./retrievers/getProducts");
|
|
55
57
|
Object.defineProperty(exports, "getProducts", { enumerable: true, get: function () { return __importDefault(getProducts_1).default; } });
|
|
56
58
|
var getProduct_1 = require("./retrievers/getProduct");
|
package/dist/cjs/util/GET.js
CHANGED
|
@@ -1,22 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.GET = void 0;
|
|
7
|
+
const VinmonopoletError_1 = __importDefault(require("../exceptions/VinmonopoletError"));
|
|
4
8
|
async function GET(url, queryparams) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
try {
|
|
10
|
+
const urlSearchParams = queryparams?.toString() ?? "";
|
|
11
|
+
const headers = {
|
|
12
|
+
"Content-Type": "Application/json",
|
|
13
|
+
};
|
|
14
|
+
if (process.env.USER_AGENT) {
|
|
15
|
+
headers["User-Agent"] = process.env.USER_AGENT;
|
|
16
|
+
}
|
|
17
|
+
const response = await fetch(url + "?" + urlSearchParams, { headers });
|
|
18
|
+
if (!response.ok) {
|
|
19
|
+
const parsedErrorResponse = await response.text();
|
|
20
|
+
throw new VinmonopoletError_1.default(parsedErrorResponse != ""
|
|
21
|
+
? parsedErrorResponse
|
|
22
|
+
: `Unable to get ${url}?${urlSearchParams}: http error ${response.status}`, response.status);
|
|
23
|
+
}
|
|
24
|
+
const responseJson = (await response.json());
|
|
25
|
+
return responseJson;
|
|
11
26
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
27
|
+
catch (error) {
|
|
28
|
+
if (error instanceof VinmonopoletError_1.default)
|
|
29
|
+
throw error;
|
|
30
|
+
if (error instanceof Error)
|
|
31
|
+
throw new VinmonopoletError_1.default(`Network error fetching ${url}: ${error.message}`);
|
|
32
|
+
throw new VinmonopoletError_1.default(`Network error fetching ${url}: ${error}`);
|
|
18
33
|
}
|
|
19
|
-
const responseJson = (await response.json());
|
|
20
|
-
return responseJson;
|
|
21
34
|
}
|
|
22
35
|
exports.GET = GET;
|
package/dist/esm/index.js
CHANGED
|
@@ -11,6 +11,7 @@ export { default as ProductStatus } from "./models/ProductStatus";
|
|
|
11
11
|
export { default as RawMaterial } from "./models/RawMaterial";
|
|
12
12
|
export { default as BaseStore } from "./models/store/BaseStore";
|
|
13
13
|
export { default as PopulatedStore } from "./models/store/BaseStore";
|
|
14
|
+
export { default as VinmonopoletError } from "./exceptions/VinmonopoletError";
|
|
14
15
|
export { default as getProducts } from "./retrievers/getProducts";
|
|
15
16
|
export { default as getProduct } from "./retrievers/getProduct";
|
|
16
17
|
export { default as getFacets } from "./retrievers/getFacets";
|
package/dist/esm/util/GET.js
CHANGED
|
@@ -1,18 +1,28 @@
|
|
|
1
|
+
import VinmonopoletError from "../exceptions/VinmonopoletError";
|
|
1
2
|
export async function GET(url, queryparams) {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
try {
|
|
4
|
+
const urlSearchParams = queryparams?.toString() ?? "";
|
|
5
|
+
const headers = {
|
|
6
|
+
"Content-Type": "Application/json",
|
|
7
|
+
};
|
|
8
|
+
if (process.env.USER_AGENT) {
|
|
9
|
+
headers["User-Agent"] = process.env.USER_AGENT;
|
|
10
|
+
}
|
|
11
|
+
const response = await fetch(url + "?" + urlSearchParams, { headers });
|
|
12
|
+
if (!response.ok) {
|
|
13
|
+
const parsedErrorResponse = await response.text();
|
|
14
|
+
throw new VinmonopoletError(parsedErrorResponse != ""
|
|
15
|
+
? parsedErrorResponse
|
|
16
|
+
: `Unable to get ${url}?${urlSearchParams}: http error ${response.status}`, response.status);
|
|
17
|
+
}
|
|
18
|
+
const responseJson = (await response.json());
|
|
19
|
+
return responseJson;
|
|
8
20
|
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
21
|
+
catch (error) {
|
|
22
|
+
if (error instanceof VinmonopoletError)
|
|
23
|
+
throw error;
|
|
24
|
+
if (error instanceof Error)
|
|
25
|
+
throw new VinmonopoletError(`Network error fetching ${url}: ${error.message}`);
|
|
26
|
+
throw new VinmonopoletError(`Network error fetching ${url}: ${error}`);
|
|
15
27
|
}
|
|
16
|
-
const responseJson = (await response.json());
|
|
17
|
-
return responseJson;
|
|
18
28
|
}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export { default as ProductStatus } from "./models/ProductStatus";
|
|
|
11
11
|
export { default as RawMaterial } from "./models/RawMaterial";
|
|
12
12
|
export { default as BaseStore } from "./models/store/BaseStore";
|
|
13
13
|
export { default as PopulatedStore } from "./models/store/BaseStore";
|
|
14
|
+
export { default as VinmonopoletError } from "./exceptions/VinmonopoletError";
|
|
14
15
|
export { default as getProducts } from "./retrievers/getProducts";
|
|
15
16
|
export { default as getProduct } from "./retrievers/getProduct";
|
|
16
17
|
export { default as getFacets } from "./retrievers/getFacets";
|