wetherspoons-api 0.0.4 → 0.0.6
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 +25 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -4
- 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
|
@@ -19,6 +19,18 @@ declare const detailedVenueSchema: z.ZodObject<{
|
|
|
19
19
|
}, z.core.$strip>>;
|
|
20
20
|
venueCanOrder: z.ZodBoolean;
|
|
21
21
|
venueRef: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
|
|
22
|
+
address: z.ZodObject<{
|
|
23
|
+
line1: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
24
|
+
line2: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
25
|
+
town: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
26
|
+
county: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
27
|
+
postcode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
28
|
+
location: z.ZodOptional<z.ZodObject<{
|
|
29
|
+
latitude: z.ZodNumber;
|
|
30
|
+
longitude: z.ZodNumber;
|
|
31
|
+
distanceTolerance: z.ZodOptional<z.ZodNumber>;
|
|
32
|
+
}, z.core.$strip>>;
|
|
33
|
+
}, z.core.$strip>;
|
|
22
34
|
}, z.core.$strip>;
|
|
23
35
|
export type DetailedVenue = z.infer<typeof detailedVenueSchema>;
|
|
24
36
|
export declare function getVenue(venue: HighLevelVenue): Promise<DetailedVenue>;
|
|
@@ -29,6 +41,18 @@ export declare const highLevelMenuSchema: z.ZodObject<{
|
|
|
29
41
|
name: z.ZodString;
|
|
30
42
|
salesAreaId: z.ZodNumber;
|
|
31
43
|
venueRef: z.ZodNumber;
|
|
44
|
+
address: z.ZodObject<{
|
|
45
|
+
line1: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
46
|
+
line2: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
47
|
+
town: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
48
|
+
county: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
49
|
+
postcode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
50
|
+
location: z.ZodOptional<z.ZodObject<{
|
|
51
|
+
latitude: z.ZodNumber;
|
|
52
|
+
longitude: z.ZodNumber;
|
|
53
|
+
distanceTolerance: z.ZodOptional<z.ZodNumber>;
|
|
54
|
+
}, z.core.$strip>>;
|
|
55
|
+
}, z.core.$strip>;
|
|
32
56
|
}, z.core.$strip>;
|
|
33
57
|
export type HighLevelMenu = z.infer<typeof highLevelMenuSchema>;
|
|
34
58
|
export declare function getMenus({ venue, salesAreaId }: {
|
|
@@ -111,7 +135,6 @@ export interface Drink {
|
|
|
111
135
|
price: number;
|
|
112
136
|
ppu: number;
|
|
113
137
|
}
|
|
114
|
-
export declare function
|
|
115
|
-
export declare function getDrinksFromDetailedVenue(detailedVenue: DetailedVenue): Promise<Drink[]>;
|
|
138
|
+
export declare function getDrinks(highLevelVenue: HighLevelVenue): Promise<Drink[]>;
|
|
116
139
|
export {};
|
|
117
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;;;;;;iBAM/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;;;;;;;;;;;;;;;;;;;iBAQ9B,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,
|
|
@@ -33,6 +48,7 @@ const detailedVenueSchema = z.object({
|
|
|
33
48
|
})),
|
|
34
49
|
venueCanOrder: z.boolean(),
|
|
35
50
|
venueRef: z.union([z.string(), z.number()]),
|
|
51
|
+
address: addressSchema,
|
|
36
52
|
});
|
|
37
53
|
export async function getVenue(venue) {
|
|
38
54
|
const response = await request(`/venues/${venue.venueRef}`);
|
|
@@ -46,6 +62,7 @@ export const highLevelMenuSchema = z.object({
|
|
|
46
62
|
name: z.string(),
|
|
47
63
|
salesAreaId: z.number(),
|
|
48
64
|
venueRef: z.number(),
|
|
65
|
+
address: addressSchema,
|
|
49
66
|
});
|
|
50
67
|
export async function getMenus({ venue, salesAreaId }) {
|
|
51
68
|
const response = await request(`/${venue.franchise}/venues/${venue.venueRef}/sales-areas/${salesAreaId}/menus`);
|
|
@@ -110,11 +127,8 @@ export async function getMenu(highLevelMenu) {
|
|
|
110
127
|
function strengthAndVolumeToUnits(strength, volume) {
|
|
111
128
|
return (strength * volume) / 1000;
|
|
112
129
|
}
|
|
113
|
-
export async function
|
|
130
|
+
export async function getDrinks(highLevelVenue) {
|
|
114
131
|
const detailedVenue = await getVenue(highLevelVenue);
|
|
115
|
-
return await getDrinksFromDetailedVenue(detailedVenue);
|
|
116
|
-
}
|
|
117
|
-
export async function getDrinksFromDetailedVenue(detailedVenue) {
|
|
118
132
|
const salesArea = detailedVenue.salesAreas[0];
|
|
119
133
|
if (!salesArea)
|
|
120
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;CACrB,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,MAAM;IAC1B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjF,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE;IAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;KACf,CAAC,CAAC;IACH,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE;IAC1B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|