@compassdigital/sdk.typescript 3.0.0-beta.20 → 3.0.0-beta.3

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.
Files changed (224) hide show
  1. package/README.md +9 -126
  2. package/gen.ts +41 -86
  3. package/lib/announcement.d.ts.map +1 -0
  4. package/lib/announcement.js +3 -0
  5. package/lib/announcement.js.map +1 -0
  6. package/lib/base.d.ts +4 -141
  7. package/lib/base.d.ts.map +1 -1
  8. package/lib/base.js +35 -328
  9. package/lib/base.js.map +1 -1
  10. package/lib/brand.d.ts.map +1 -0
  11. package/lib/brand.js +3 -0
  12. package/lib/brand.js.map +1 -0
  13. package/lib/calendar.d.ts.map +1 -0
  14. package/lib/calendar.js +3 -0
  15. package/lib/calendar.js.map +1 -0
  16. package/lib/config.d.ts.map +1 -0
  17. package/lib/config.js +3 -0
  18. package/lib/config.js.map +1 -0
  19. package/lib/datalake.d.ts.map +1 -0
  20. package/lib/datalake.js +3 -0
  21. package/lib/datalake.js.map +1 -0
  22. package/lib/delivery.d.ts.map +1 -0
  23. package/lib/delivery.js +3 -0
  24. package/lib/delivery.js.map +1 -0
  25. package/lib/dh.d.ts.map +1 -0
  26. package/lib/dh.js +3 -0
  27. package/lib/dh.js.map +1 -0
  28. package/lib/email.d.ts.map +1 -0
  29. package/lib/email.js +3 -0
  30. package/lib/email.js.map +1 -0
  31. package/lib/file.d.ts.map +1 -0
  32. package/lib/file.js +3 -0
  33. package/lib/file.js.map +1 -0
  34. package/lib/index.d.ts +259 -476
  35. package/lib/index.d.ts.map +1 -1
  36. package/lib/index.js +234 -499
  37. package/lib/index.js.map +1 -1
  38. package/lib/{interface/kds.d.ts → kds.d.ts} +0 -1
  39. package/lib/kds.d.ts.map +1 -0
  40. package/lib/kds.js +3 -0
  41. package/lib/kds.js.map +1 -0
  42. package/lib/{interface/location.d.ts → location.d.ts} +0 -1
  43. package/lib/location.d.ts.map +1 -0
  44. package/lib/location.js +3 -0
  45. package/lib/location.js.map +1 -0
  46. package/lib/logger.d.ts.map +1 -0
  47. package/lib/logger.js +3 -0
  48. package/lib/logger.js.map +1 -0
  49. package/lib/loyalty.d.ts.map +1 -0
  50. package/lib/loyalty.js +3 -0
  51. package/lib/loyalty.js.map +1 -0
  52. package/lib/mealplan.d.ts.map +1 -0
  53. package/lib/mealplan.js +3 -0
  54. package/lib/mealplan.js.map +1 -0
  55. package/lib/message.d.ts.map +1 -0
  56. package/lib/message.js +3 -0
  57. package/lib/message.js.map +1 -0
  58. package/lib/{interface/order.d.ts → order.d.ts} +4 -5
  59. package/lib/order.d.ts.map +1 -0
  60. package/lib/order.js +3 -0
  61. package/lib/order.js.map +1 -0
  62. package/lib/{interface/partner.d.ts → partner.d.ts} +3 -233
  63. package/lib/partner.d.ts.map +1 -0
  64. package/lib/partner.js +3 -0
  65. package/lib/partner.js.map +1 -0
  66. package/lib/{interface/payment.d.ts → payment.d.ts} +0 -1
  67. package/lib/payment.d.ts.map +1 -0
  68. package/lib/payment.js +3 -0
  69. package/lib/payment.js.map +1 -0
  70. package/lib/promo.d.ts.map +1 -0
  71. package/lib/promo.js +3 -0
  72. package/lib/promo.js.map +1 -0
  73. package/lib/report.d.ts.map +1 -0
  74. package/lib/report.js +3 -0
  75. package/lib/report.js.map +1 -0
  76. package/lib/schedule.d.ts.map +1 -0
  77. package/lib/schedule.js +3 -0
  78. package/lib/schedule.js.map +1 -0
  79. package/lib/shoppingcart.d.ts.map +1 -0
  80. package/lib/shoppingcart.js +3 -0
  81. package/lib/shoppingcart.js.map +1 -0
  82. package/lib/task.d.ts.map +1 -0
  83. package/lib/task.js +3 -0
  84. package/lib/task.js.map +1 -0
  85. package/lib/{interface/user.d.ts → user.d.ts} +0 -2
  86. package/lib/user.d.ts.map +1 -0
  87. package/lib/user.js +3 -0
  88. package/lib/user.js.map +1 -0
  89. package/lib/vote.d.ts.map +1 -0
  90. package/lib/vote.js +3 -0
  91. package/lib/vote.js.map +1 -0
  92. package/manifest.json +50 -29
  93. package/package.json +5 -19
  94. package/src/{interface/announcement.ts → announcement.ts} +0 -2
  95. package/src/base.ts +17 -330
  96. package/src/{interface/brand.ts → brand.ts} +0 -2
  97. package/src/{interface/calendar.ts → calendar.ts} +0 -2
  98. package/src/{interface/config.ts → config.ts} +0 -2
  99. package/src/{interface/datalake.ts → datalake.ts} +0 -2
  100. package/src/{interface/delivery.ts → delivery.ts} +0 -2
  101. package/src/{interface/dh.ts → dh.ts} +0 -2
  102. package/src/{interface/email.ts → email.ts} +0 -2
  103. package/src/{interface/file.ts → file.ts} +0 -2
  104. package/src/index.ts +485 -2145
  105. package/src/{interface/kds.ts → kds.ts} +0 -4
  106. package/src/{interface/location.ts → location.ts} +0 -4
  107. package/src/{interface/logger.ts → logger.ts} +0 -2
  108. package/src/{interface/loyalty.ts → loyalty.ts} +0 -2
  109. package/src/{interface/mealplan.ts → mealplan.ts} +0 -2
  110. package/src/{interface/message.ts → message.ts} +0 -2
  111. package/src/{interface/order.ts → order.ts} +6 -10
  112. package/src/{interface/partner.ts → partner.ts} +4 -279
  113. package/src/{interface/payment.ts → payment.ts} +0 -4
  114. package/src/{interface/promo.ts → promo.ts} +0 -2
  115. package/src/{interface/report.ts → report.ts} +0 -2
  116. package/src/{interface/schedule.ts → schedule.ts} +0 -2
  117. package/src/{interface/shoppingcart.ts → shoppingcart.ts} +0 -2
  118. package/src/{interface/task.ts → task.ts} +0 -2
  119. package/src/{interface/user.ts → user.ts} +1 -7
  120. package/src/{interface/vote.ts → vote.ts} +0 -2
  121. package/template.ejs +2 -3
  122. package/bin/gen.js +0 -472
  123. package/bin/index.js +0 -3
  124. package/lib/interface/announcement.d.ts.map +0 -1
  125. package/lib/interface/announcement.js +0 -4
  126. package/lib/interface/announcement.js.map +0 -1
  127. package/lib/interface/brand.d.ts.map +0 -1
  128. package/lib/interface/brand.js +0 -4
  129. package/lib/interface/brand.js.map +0 -1
  130. package/lib/interface/calendar.d.ts.map +0 -1
  131. package/lib/interface/calendar.js +0 -4
  132. package/lib/interface/calendar.js.map +0 -1
  133. package/lib/interface/config.d.ts.map +0 -1
  134. package/lib/interface/config.js +0 -4
  135. package/lib/interface/config.js.map +0 -1
  136. package/lib/interface/datalake.d.ts.map +0 -1
  137. package/lib/interface/datalake.js +0 -4
  138. package/lib/interface/datalake.js.map +0 -1
  139. package/lib/interface/delivery.d.ts.map +0 -1
  140. package/lib/interface/delivery.js +0 -4
  141. package/lib/interface/delivery.js.map +0 -1
  142. package/lib/interface/dh.d.ts.map +0 -1
  143. package/lib/interface/dh.js +0 -4
  144. package/lib/interface/dh.js.map +0 -1
  145. package/lib/interface/email.d.ts.map +0 -1
  146. package/lib/interface/email.js +0 -4
  147. package/lib/interface/email.js.map +0 -1
  148. package/lib/interface/file.d.ts.map +0 -1
  149. package/lib/interface/file.js +0 -4
  150. package/lib/interface/file.js.map +0 -1
  151. package/lib/interface/kds.d.ts.map +0 -1
  152. package/lib/interface/kds.js +0 -4
  153. package/lib/interface/kds.js.map +0 -1
  154. package/lib/interface/location.d.ts.map +0 -1
  155. package/lib/interface/location.js +0 -4
  156. package/lib/interface/location.js.map +0 -1
  157. package/lib/interface/logger.d.ts.map +0 -1
  158. package/lib/interface/logger.js +0 -4
  159. package/lib/interface/logger.js.map +0 -1
  160. package/lib/interface/loyalty.d.ts.map +0 -1
  161. package/lib/interface/loyalty.js +0 -4
  162. package/lib/interface/loyalty.js.map +0 -1
  163. package/lib/interface/mealplan.d.ts.map +0 -1
  164. package/lib/interface/mealplan.js +0 -4
  165. package/lib/interface/mealplan.js.map +0 -1
  166. package/lib/interface/menu.d.ts +0 -444
  167. package/lib/interface/menu.d.ts.map +0 -1
  168. package/lib/interface/menu.js +0 -4
  169. package/lib/interface/menu.js.map +0 -1
  170. package/lib/interface/message.d.ts.map +0 -1
  171. package/lib/interface/message.js +0 -4
  172. package/lib/interface/message.js.map +0 -1
  173. package/lib/interface/order.d.ts.map +0 -1
  174. package/lib/interface/order.js +0 -4
  175. package/lib/interface/order.js.map +0 -1
  176. package/lib/interface/partner.d.ts.map +0 -1
  177. package/lib/interface/partner.js +0 -4
  178. package/lib/interface/partner.js.map +0 -1
  179. package/lib/interface/payment.d.ts.map +0 -1
  180. package/lib/interface/payment.js +0 -4
  181. package/lib/interface/payment.js.map +0 -1
  182. package/lib/interface/promo.d.ts.map +0 -1
  183. package/lib/interface/promo.js +0 -4
  184. package/lib/interface/promo.js.map +0 -1
  185. package/lib/interface/report.d.ts.map +0 -1
  186. package/lib/interface/report.js +0 -4
  187. package/lib/interface/report.js.map +0 -1
  188. package/lib/interface/schedule.d.ts.map +0 -1
  189. package/lib/interface/schedule.js +0 -4
  190. package/lib/interface/schedule.js.map +0 -1
  191. package/lib/interface/shoppingcart.d.ts.map +0 -1
  192. package/lib/interface/shoppingcart.js +0 -4
  193. package/lib/interface/shoppingcart.js.map +0 -1
  194. package/lib/interface/task.d.ts.map +0 -1
  195. package/lib/interface/task.js +0 -4
  196. package/lib/interface/task.js.map +0 -1
  197. package/lib/interface/user.d.ts.map +0 -1
  198. package/lib/interface/user.js +0 -4
  199. package/lib/interface/user.js.map +0 -1
  200. package/lib/interface/vote.d.ts.map +0 -1
  201. package/lib/interface/vote.js +0 -4
  202. package/lib/interface/vote.js.map +0 -1
  203. package/src/interface/menu.ts +0 -644
  204. package/test/client.test.ts +0 -192
  205. package/test/gen.test.ts +0 -22
  206. /package/lib/{interface/announcement.d.ts → announcement.d.ts} +0 -0
  207. /package/lib/{interface/brand.d.ts → brand.d.ts} +0 -0
  208. /package/lib/{interface/calendar.d.ts → calendar.d.ts} +0 -0
  209. /package/lib/{interface/config.d.ts → config.d.ts} +0 -0
  210. /package/lib/{interface/datalake.d.ts → datalake.d.ts} +0 -0
  211. /package/lib/{interface/delivery.d.ts → delivery.d.ts} +0 -0
  212. /package/lib/{interface/dh.d.ts → dh.d.ts} +0 -0
  213. /package/lib/{interface/email.d.ts → email.d.ts} +0 -0
  214. /package/lib/{interface/file.d.ts → file.d.ts} +0 -0
  215. /package/lib/{interface/logger.d.ts → logger.d.ts} +0 -0
  216. /package/lib/{interface/loyalty.d.ts → loyalty.d.ts} +0 -0
  217. /package/lib/{interface/mealplan.d.ts → mealplan.d.ts} +0 -0
  218. /package/lib/{interface/message.d.ts → message.d.ts} +0 -0
  219. /package/lib/{interface/promo.d.ts → promo.d.ts} +0 -0
  220. /package/lib/{interface/report.d.ts → report.d.ts} +0 -0
  221. /package/lib/{interface/schedule.d.ts → schedule.d.ts} +0 -0
  222. /package/lib/{interface/shoppingcart.d.ts → shoppingcart.d.ts} +0 -0
  223. /package/lib/{interface/task.d.ts → task.d.ts} +0 -0
  224. /package/lib/{interface/vote.d.ts → vote.d.ts} +0 -0
@@ -1,192 +0,0 @@
1
-
2
- import { ServiceClient, ResponseData, ServiceError, RequestData, InterceptFn } from "../src";
3
- import { Task } from "../src/interface/task";
4
-
5
- describe("ServiceClient", () => {
6
-
7
- function response(status: number, body?: any, err?: any): ResponseData {
8
- const res = { ok: status === 200, status: status, body: "", err: undefined };
9
- if (body) {
10
- res.body = JSON.stringify(body);
11
- }
12
- if (err) {
13
- res.err = err;
14
- }
15
- return res;
16
- }
17
-
18
- function interceptor(status: number, body?: any, err?: any): InterceptFn {
19
- return (req: RequestData) => Promise.resolve(response(status, body, err));
20
- }
21
-
22
- test("makes basic request", async () => {
23
- const fake: Task = { id: "some_id" };
24
- const intercept = jest.fn(interceptor(200, fake));
25
- const api = new ServiceClient({ intercept });
26
- const task = await api.get_task("some_id");
27
- expect(task).toEqual(fake);
28
- const req = intercept.mock.calls[0][0];
29
- expect(req).toEqual({
30
- name: "get_task",
31
- service: "task",
32
- url: "https://api.compassdigital.org/dev/task/some_id",
33
- method: "get",
34
- headers: {
35
- "User-Agent": "CDL/ServiceClient",
36
- },
37
- })
38
- });
39
-
40
- test("token gets passed", async () => {
41
- const token = "this is a token";
42
- const intercept = jest.fn(interceptor(200));
43
- const api = new ServiceClient({ intercept });
44
- await api.get_task("", { token });
45
- const req = intercept.mock.calls[0][0];
46
- expect(req.headers).toHaveProperty("Authorization", `Bearer ${token}`);
47
- });
48
-
49
- test("headers get merged", async () => {
50
- const intercept = jest.fn(interceptor(200));
51
- const api = new ServiceClient({
52
- intercept,
53
- headers: {
54
- "a": "a from constructor",
55
- "b": "b from constructor",
56
- },
57
- });
58
- await api.get_task("", {
59
- headers: {
60
- "b": "b from method",
61
- "c": "c from method",
62
- },
63
- });
64
- const req = intercept.mock.calls[0][0];
65
- expect(req.headers).toEqual({
66
- "User-Agent": "CDL/ServiceClient",
67
- "a": "a from constructor",
68
- "b": "b from method",
69
- "c": "c from method",
70
- });
71
- });
72
-
73
- test("client retries on bad status codes", async () => {
74
- const intercept = jest.fn(async (req: RequestData) => {
75
- if (intercept.mock.calls.length === 3) {
76
- return response(200, "{}");
77
- }
78
- return response(500, "something went wrong");
79
- });
80
- const api = new ServiceClient({ intercept });
81
- const task = await api.get_task("", { retry: 2 });
82
- expect(intercept.mock.calls.length).toBe(3);
83
- });
84
-
85
- test("client retries on network error", async () => {
86
- const intercept = jest.fn(async (req: RequestData) => {
87
- if (intercept.mock.calls.length === 3) {
88
- return response(200, "{}");
89
- }
90
- return response(0, "", new Error("network error"));
91
- });
92
- const api = new ServiceClient({ intercept });
93
- const task = await api.get_task("", { retry: 2 });
94
- expect(intercept.mock.calls.length).toBe(3);
95
- });
96
-
97
- test("client gives up after retry limit", async () => {
98
- const intercept = jest.fn(interceptor(500));
99
- const api = new ServiceClient({ intercept });
100
- const promise = api.get_task("", { retry: 5 });
101
- await expect(promise).rejects.toBeInstanceOf(ServiceError);
102
- expect(intercept.mock.calls.length).toEqual(6);
103
- });
104
-
105
- describe("ServiceError", () => {
106
-
107
- // see: https://github.com/microsoft/TypeScript/issues/13965
108
- test("is instance of itself", async () => {
109
- const err = new ServiceError(0, 0, "");
110
- expect(err).toBeInstanceOf(ServiceError);
111
- });
112
-
113
- test("returns null for ignored http status", async () => {
114
- const api = new ServiceClient({
115
- intercept: interceptor(501),
116
- });
117
- const task = await api.get_task("").ignore(501);
118
- expect(task).toBeNull();
119
- });
120
-
121
- test("returns null for ignored service error code", async () => {
122
- const api = new ServiceClient({
123
- intercept: interceptor(500, { code: 500.4, message: "uh oh" }),
124
- });
125
- const task = await api.get_task("").ignore(500.4);
126
- expect(task).toBeNull();
127
- });
128
-
129
- test("throws ServiceError for non-ignored errors", async () => {
130
- const api = new ServiceClient({
131
- intercept: interceptor(500, { code: 500.4, message: "hello world"}),
132
- });
133
- try {
134
- await api.get_task("");
135
- } catch (err) {
136
- expect(err).toBeInstanceOf(ServiceError);
137
- expect(ServiceError.status(err)).toBe(500);
138
- expect(ServiceError.code(err)).toBe(500.4);
139
- }
140
- });
141
-
142
- test("throws ServiceError for network errors", async () => {
143
- const api = new ServiceClient({
144
- intercept: interceptor(0, null, new Error("Network Error")),
145
- });
146
- try {
147
- await api.get_task("");
148
- } catch (err) {
149
- expect(err).toBeInstanceOf(ServiceError);
150
- expect(ServiceError.status(err)).toBe(0);
151
- expect(ServiceError.code(err)).toBe(0);
152
- }
153
- });
154
-
155
- test("either should be true with 200 response", async () => {
156
- const api = new ServiceClient({
157
- intercept: interceptor(200, "{}"),
158
- });
159
- const res = await api.get_task("{}").combine();
160
- expect(res.ok).toBe(true);
161
- expect(res.data).toBeTruthy();
162
- expect(res.err).toBeNull();
163
- });
164
-
165
- test("either should be false with non-200 response", async () => {
166
- const api = new ServiceClient({
167
- intercept: interceptor(400, "{}"),
168
- });
169
- const res = await api.get_task("{}").combine();
170
- expect(res.ok).toBe(false);
171
- expect(res.data).toBeNull();
172
- expect(res.err).toBeInstanceOf(ServiceError);
173
- });
174
-
175
- test("either should be false with matching code", async () => {
176
- const api = new ServiceClient({
177
- intercept: interceptor(400, "{}"),
178
- });
179
- const res = await api.get_task("{}").combine(400);
180
- expect(res.ok).toBe(false);
181
- expect(res.err).toBeInstanceOf(ServiceError);
182
- });
183
-
184
- test("method should throw if code is not specified", async () => {
185
- const api = new ServiceClient({
186
- intercept: interceptor(400, "{}"),
187
- });
188
- const promise = api.get_task("").combine(500);
189
- expect(promise).rejects.toThrow();
190
- });
191
- });
192
- });
package/test/gen.test.ts DELETED
@@ -1,22 +0,0 @@
1
-
2
- import { OperationObject, OperationParams, Schema } from "@icholy/openapi-ts";
3
- import { CodeGenerator } from "../gen";
4
-
5
- describe("CodeGenerator", () => {
6
- describe("inferName", () => {
7
- const gen = new CodeGenerator();
8
- test("/order/location/brand/{id}", () => {
9
- const op: OperationObject = {
10
- operationId: "get_brand_orders",
11
- }
12
- const name = gen.inferName({
13
- method: "get",
14
- params: new OperationParams(op),
15
- path: "/order/location/brand/{id}",
16
- obj: op,
17
- }, { name: "order", swagger: "" });
18
- expect(name.pascal).toBe("GetOrderLocationBrand");
19
- expect(name.snake).toBe("get_order_location_brand");
20
- });
21
- });
22
- });
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes