wetherspoons-api 0.0.5 → 0.0.7
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/README.md +4 -23
- package/dist/index.d.ts +13 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -19
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -65,11 +65,11 @@ console.log(details);
|
|
|
65
65
|
### Get Drinks with Price Analysis
|
|
66
66
|
|
|
67
67
|
```typescript
|
|
68
|
-
import { venues,
|
|
68
|
+
import { venues, getDrinks } from 'wetherspoons-api';
|
|
69
69
|
|
|
70
70
|
const allVenues = await venues();
|
|
71
71
|
const venue = allVenues[0];
|
|
72
|
-
const drinks = await
|
|
72
|
+
const drinks = await getDrinks(venue);
|
|
73
73
|
|
|
74
74
|
console.log(drinks);
|
|
75
75
|
// [
|
|
@@ -85,17 +85,6 @@ console.log(drinks);
|
|
|
85
85
|
// Sorted by best value (lowest price per unit first)
|
|
86
86
|
```
|
|
87
87
|
|
|
88
|
-
Alternatively, if you already have detailed venue information:
|
|
89
|
-
|
|
90
|
-
```typescript
|
|
91
|
-
import { venues, getVenue, getDrinksFromDetailedVenue } from 'wetherspoons-api';
|
|
92
|
-
|
|
93
|
-
const allVenues = await venues();
|
|
94
|
-
const venue = allVenues[0];
|
|
95
|
-
const detailedVenue = await getVenue(venue);
|
|
96
|
-
const drinks = await getDrinksFromDetailedVenue(detailedVenue);
|
|
97
|
-
```
|
|
98
|
-
|
|
99
88
|
### Get Menus
|
|
100
89
|
|
|
101
90
|
```typescript
|
|
@@ -153,22 +142,14 @@ Gets detailed menu information including all products and categories.
|
|
|
153
142
|
|
|
154
143
|
**Returns:** Detailed menu with categories, item groups, and products.
|
|
155
144
|
|
|
156
|
-
#### `
|
|
157
|
-
Fetches all drinks from a venue's drinks menu, calculates alcohol units and price per unit, then sorts by best value.
|
|
145
|
+
#### `getDrinks(highLevelVenue: HighLevelVenue): Promise<Drink[]>`
|
|
146
|
+
Fetches all drinks from a venue's drinks menu, calculates alcohol units and price per unit, then sorts by best value.
|
|
158
147
|
|
|
159
148
|
**Parameters:**
|
|
160
149
|
- `highLevelVenue`: A venue object from [`venues()`](src/index.ts:28)
|
|
161
150
|
|
|
162
151
|
**Returns:** Array of drinks sorted by price per unit (best value first).
|
|
163
152
|
|
|
164
|
-
#### `getDrinksFromDetailedVenue(detailedVenue: DetailedVenue): Promise<Drink[]>`
|
|
165
|
-
Fetches all drinks from a detailed venue's drinks menu, calculates alcohol units and price per unit, then sorts by best value. Use this function when you already have detailed venue information to avoid an extra API call.
|
|
166
|
-
|
|
167
|
-
**Parameters:**
|
|
168
|
-
- `detailedVenue`: A detailed venue object from [`getVenue()`](src/index.ts:49)
|
|
169
|
-
|
|
170
|
-
**Returns:** Array of drinks sorted by price per unit (best value first). Returns an empty array if the venue has no sales areas or no drinks menu.
|
|
171
|
-
|
|
172
153
|
### Types
|
|
173
154
|
|
|
174
155
|
#### `HighLevelVenue`
|
package/dist/index.d.ts
CHANGED
|
@@ -5,6 +5,18 @@ export declare const highLevelVenueSchema: z.ZodObject<{
|
|
|
5
5
|
isClosed: z.ZodBoolean;
|
|
6
6
|
name: z.ZodString;
|
|
7
7
|
venueRef: z.ZodNumber;
|
|
8
|
+
address: z.ZodObject<{
|
|
9
|
+
line1: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
10
|
+
line2: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
11
|
+
town: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
12
|
+
county: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
13
|
+
postcode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
14
|
+
location: z.ZodOptional<z.ZodObject<{
|
|
15
|
+
latitude: z.ZodNumber;
|
|
16
|
+
longitude: z.ZodNumber;
|
|
17
|
+
distanceTolerance: z.ZodOptional<z.ZodNumber>;
|
|
18
|
+
}, z.core.$strip>>;
|
|
19
|
+
}, z.core.$strip>;
|
|
8
20
|
}, z.core.$strip>;
|
|
9
21
|
export type HighLevelVenue = z.infer<typeof highLevelVenueSchema>;
|
|
10
22
|
export declare function venues(): Promise<HighLevelVenue[]>;
|
|
@@ -123,7 +135,6 @@ export interface Drink {
|
|
|
123
135
|
price: number;
|
|
124
136
|
ppu: number;
|
|
125
137
|
}
|
|
126
|
-
export declare function
|
|
127
|
-
export declare function getDrinksFromDetailedVenue(detailedVenue: DetailedVenue): Promise<Drink[]>;
|
|
138
|
+
export declare function getDrinks(highLevelVenue: HighLevelVenue): Promise<Drink[]>;
|
|
128
139
|
export {};
|
|
129
140
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiCxB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;iBAO/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,wBAAsB,MAAM,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAIxD;AAED,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;iBAYvB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,wBAAsB,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAI5E;AAED,eAAO,MAAM,mBAAmB;;;;;;;iBAO9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,wBAAsB,QAAQ,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAI9H;AAED,QAAA,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;iBAqB7B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2BtB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,wBAAsB,OAAO,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAIjF;AAMD,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,wBAAsB,SAAS,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CA+GhF"}
|
package/dist/index.js
CHANGED
|
@@ -3,6 +3,21 @@ const API_ENDPOINT = 'https://ca.jdw-apps.net/api/v0.1';
|
|
|
3
3
|
const API_HEADERS = {
|
|
4
4
|
Authorization: 'Bearer 1|SFS9MMnn5deflq0BMcUTSijwSMBB4mc7NSG2rOhqb2765466',
|
|
5
5
|
};
|
|
6
|
+
const addressSchema = z.object({
|
|
7
|
+
line1: z.string().nullable().optional(),
|
|
8
|
+
line2: z.string().nullable().optional(),
|
|
9
|
+
town: z.string().nullable().optional(),
|
|
10
|
+
county: z.string().nullable().optional(),
|
|
11
|
+
postcode: z.string().nullable().optional(),
|
|
12
|
+
// allow extra keys like location etc if present
|
|
13
|
+
location: z
|
|
14
|
+
.object({
|
|
15
|
+
latitude: z.number(),
|
|
16
|
+
longitude: z.number(),
|
|
17
|
+
distanceTolerance: z.number().optional(),
|
|
18
|
+
})
|
|
19
|
+
.optional(),
|
|
20
|
+
});
|
|
6
21
|
async function request(path) {
|
|
7
22
|
const response = await fetch(`${API_ENDPOINT}${path}`, {
|
|
8
23
|
headers: API_HEADERS,
|
|
@@ -16,6 +31,7 @@ export const highLevelVenueSchema = z.object({
|
|
|
16
31
|
isClosed: z.boolean(),
|
|
17
32
|
name: z.string(),
|
|
18
33
|
venueRef: z.number(),
|
|
34
|
+
address: addressSchema,
|
|
19
35
|
});
|
|
20
36
|
export async function venues() {
|
|
21
37
|
const response = await request('/venues');
|
|
@@ -33,21 +49,7 @@ const detailedVenueSchema = z.object({
|
|
|
33
49
|
})),
|
|
34
50
|
venueCanOrder: z.boolean(),
|
|
35
51
|
venueRef: z.union([z.string(), z.number()]),
|
|
36
|
-
address:
|
|
37
|
-
line1: z.string().nullable().optional(),
|
|
38
|
-
line2: z.string().nullable().optional(),
|
|
39
|
-
town: z.string().nullable().optional(),
|
|
40
|
-
county: z.string().nullable().optional(),
|
|
41
|
-
postcode: z.string().nullable().optional(),
|
|
42
|
-
// allow extra keys like location etc if present
|
|
43
|
-
location: z
|
|
44
|
-
.object({
|
|
45
|
-
latitude: z.number(),
|
|
46
|
-
longitude: z.number(),
|
|
47
|
-
distanceTolerance: z.number().optional(),
|
|
48
|
-
})
|
|
49
|
-
.optional(),
|
|
50
|
-
}),
|
|
52
|
+
address: addressSchema,
|
|
51
53
|
});
|
|
52
54
|
export async function getVenue(venue) {
|
|
53
55
|
const response = await request(`/venues/${venue.venueRef}`);
|
|
@@ -125,11 +127,8 @@ export async function getMenu(highLevelMenu) {
|
|
|
125
127
|
function strengthAndVolumeToUnits(strength, volume) {
|
|
126
128
|
return (strength * volume) / 1000;
|
|
127
129
|
}
|
|
128
|
-
export async function
|
|
130
|
+
export async function getDrinks(highLevelVenue) {
|
|
129
131
|
const detailedVenue = await getVenue(highLevelVenue);
|
|
130
|
-
return await getDrinksFromDetailedVenue(detailedVenue);
|
|
131
|
-
}
|
|
132
|
-
export async function getDrinksFromDetailedVenue(detailedVenue) {
|
|
133
132
|
const salesArea = detailedVenue.salesAreas[0];
|
|
134
133
|
if (!salesArea)
|
|
135
134
|
return [];
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,YAAY,GAAG,kCAAkC,CAAC;AACxD,MAAM,WAAW,GAAG;IAClB,aAAa,EAAE,2DAA2D;CAC3E,CAAC;AAEF,KAAK,UAAU,OAAO,CAAC,IAAY;IACjC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,YAAY,GAAG,IAAI,EAAE,EACnD;QACE,OAAO,EAAE,WAAW;KACrB,CACF,CAAC;IACF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|