@warp-drive/legacy 5.8.0-alpha.4 → 5.8.0-alpha.40

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 (213) hide show
  1. package/README.md +14 -27
  2. package/declarations/adapter/error.d.ts +5 -5
  3. package/declarations/adapter/json-api.d.ts +6 -8
  4. package/declarations/adapter/rest.d.ts +5 -8
  5. package/declarations/adapter.d.ts +4 -6
  6. package/declarations/compat/-private.d.ts +1 -1
  7. package/declarations/compat/builders/find-all.d.ts +6 -6
  8. package/declarations/compat/builders/find-record.d.ts +8 -8
  9. package/declarations/compat/builders/query.d.ts +12 -12
  10. package/declarations/compat/extensions.d.ts +1 -1
  11. package/declarations/compat/legacy-network-handler/minimum-adapter-interface.d.ts +7 -9
  12. package/declarations/compat/legacy-network-handler/minimum-serializer-interface.d.ts +20 -30
  13. package/declarations/compat/utils.d.ts +17 -17
  14. package/declarations/compat.d.ts +35 -11
  15. package/declarations/index.d.ts +70 -0
  16. package/declarations/model/-private/attr.d.ts +5 -6
  17. package/declarations/model/-private/belongs-to.d.ts +4 -5
  18. package/declarations/model/-private/has-many.d.ts +4 -5
  19. package/declarations/model/-private/hooks.d.ts +1 -1
  20. package/declarations/model/-private/legacy-relationships-support.d.ts +2 -2
  21. package/declarations/model/-private/model.d.ts +8 -8
  22. package/declarations/model/-private/record-state.d.ts +1 -1
  23. package/declarations/model/-private/references/belongs-to.d.ts +5 -5
  24. package/declarations/model/-private/references/has-many.d.ts +3 -3
  25. package/declarations/model/migration-support.d.ts +46 -21
  26. package/declarations/model-fragments/extensions/fragment-array.d.ts +16 -0
  27. package/declarations/model-fragments/extensions/fragment.d.ts +15 -0
  28. package/declarations/model-fragments/hooks/model-for.d.ts +20 -0
  29. package/declarations/model-fragments/index.d.ts +5 -0
  30. package/declarations/model-fragments/instance-initializers/fragment-extensions.d.ts +9 -0
  31. package/declarations/model-fragments/utilities/with-array-defaults.d.ts +15 -0
  32. package/declarations/model-fragments/utilities/with-fragment-array-defaults.d.ts +20 -0
  33. package/declarations/model-fragments/utilities/with-fragment-defaults.d.ts +19 -0
  34. package/declarations/model-fragments/utilities/with-legacy.d.ts +3 -0
  35. package/declarations/model-fragments.d.ts +9 -0
  36. package/declarations/model.d.ts +2 -2
  37. package/declarations/serializer/-private/embedded-records-mixin.d.ts +1 -6
  38. package/declarations/serializer/-private/transforms/boolean.d.ts +2 -2
  39. package/declarations/serializer/-private/transforms/date.d.ts +2 -2
  40. package/declarations/serializer/-private/transforms/number.d.ts +1 -1
  41. package/declarations/serializer/-private/transforms/string.d.ts +1 -1
  42. package/declarations/serializer/json-api.d.ts +7 -9
  43. package/declarations/serializer/json.d.ts +7 -9
  44. package/declarations/serializer/rest.d.ts +4 -6
  45. package/declarations/serializer.d.ts +9 -12
  46. package/dist/{-private-8UmnAf9J.js → -private-B1pSSN52.js} +1 -1
  47. package/dist/adapter/-private.js +1 -1
  48. package/dist/adapter/error.js +12 -13
  49. package/dist/adapter/json-api.js +4 -1
  50. package/dist/adapter/rest.js +6 -9
  51. package/dist/adapter.js +4 -6
  52. package/dist/compat/-private.js +1 -1
  53. package/dist/compat/builders.js +26 -26
  54. package/dist/compat/utils.js +17 -18
  55. package/dist/compat.js +58 -41
  56. package/dist/{errors-8kD2mSe_.js → errors-CIGPcDvd.js} +87 -65
  57. package/dist/hooks-QqRnX108.js +74 -0
  58. package/dist/index.js +195 -0
  59. package/dist/{json-DziiodPf.js → json-BNrV8EYG.js} +12 -16
  60. package/dist/model/-private.js +1 -1
  61. package/dist/model/migration-support.js +54 -24
  62. package/dist/model-for-CqXsIKws.js +221 -0
  63. package/dist/model-fragments.js +76 -0
  64. package/dist/model.js +18 -90
  65. package/dist/{schema-provider-DQu4Rjco.js → schema-provider-g5MfTj8n.js} +18 -20
  66. package/dist/{serialize-into-hash-CS0MIv4F.js → serialize-into-hash-BnYvPex3.js} +1 -1
  67. package/dist/serializer/json-api.js +17 -44
  68. package/dist/serializer/json.js +1 -1
  69. package/dist/serializer/rest.js +14 -21
  70. package/dist/serializer/transform.js +15 -6
  71. package/dist/serializer.js +9 -13
  72. package/dist/store.js +3 -0
  73. package/dist/unpkg/dev/-private-DbaSCSym.js +1205 -0
  74. package/dist/unpkg/dev/adapter/-private.js +1 -0
  75. package/dist/unpkg/dev/adapter/error.js +335 -0
  76. package/dist/unpkg/dev/adapter/json-api.js +271 -0
  77. package/dist/unpkg/dev/adapter/rest.js +1255 -0
  78. package/dist/unpkg/dev/adapter.js +1252 -0
  79. package/dist/unpkg/dev/compat/-private.js +1 -0
  80. package/dist/unpkg/dev/compat/builders.js +275 -0
  81. package/dist/unpkg/dev/compat/extensions.js +242 -0
  82. package/dist/unpkg/dev/compat/utils.js +223 -0
  83. package/dist/unpkg/dev/compat.js +1146 -0
  84. package/dist/unpkg/dev/errors-DD96TBEs.js +2591 -0
  85. package/dist/unpkg/dev/hooks-CqWjNWeL.js +73 -0
  86. package/dist/unpkg/dev/index.js +197 -0
  87. package/dist/unpkg/dev/json-CCU-ZQ4b.js +1269 -0
  88. package/dist/unpkg/dev/model/-private.js +1 -0
  89. package/dist/unpkg/dev/model/migration-support.js +551 -0
  90. package/dist/unpkg/dev/model-for-CqXsIKws.js +221 -0
  91. package/dist/unpkg/dev/model-fragments.js +76 -0
  92. package/dist/unpkg/dev/model.js +678 -0
  93. package/dist/unpkg/dev/runtime-BPCpkOf1-BKOwiRJp.js +65 -0
  94. package/dist/unpkg/dev/schema-provider-B8jiJOYC.js +2229 -0
  95. package/dist/unpkg/dev/serialize-into-hash-CPAZXrQU.js +259 -0
  96. package/dist/unpkg/dev/serializer/json-api.js +648 -0
  97. package/dist/unpkg/dev/serializer/json.js +4 -0
  98. package/dist/unpkg/dev/serializer/rest.js +1242 -0
  99. package/dist/unpkg/dev/serializer/transform.js +278 -0
  100. package/dist/unpkg/dev/serializer.js +248 -0
  101. package/dist/unpkg/dev/store.js +636 -0
  102. package/dist/unpkg/dev/util-DvanW33H.js +20 -0
  103. package/dist/unpkg/dev/utils-BhvS1iTS.js +8 -0
  104. package/dist/unpkg/dev-deprecated/-private-DbaSCSym.js +1205 -0
  105. package/dist/unpkg/dev-deprecated/adapter/-private.js +1 -0
  106. package/dist/unpkg/dev-deprecated/adapter/error.js +335 -0
  107. package/dist/unpkg/dev-deprecated/adapter/json-api.js +271 -0
  108. package/dist/unpkg/dev-deprecated/adapter/rest.js +1255 -0
  109. package/dist/unpkg/dev-deprecated/adapter.js +1252 -0
  110. package/dist/unpkg/dev-deprecated/compat/-private.js +1 -0
  111. package/dist/unpkg/dev-deprecated/compat/builders.js +275 -0
  112. package/dist/unpkg/dev-deprecated/compat/extensions.js +242 -0
  113. package/dist/unpkg/dev-deprecated/compat/utils.js +223 -0
  114. package/dist/unpkg/dev-deprecated/compat.js +1146 -0
  115. package/dist/unpkg/dev-deprecated/errors-DEnabIZj.js +2594 -0
  116. package/dist/unpkg/dev-deprecated/hooks-CAll-Ets.js +73 -0
  117. package/dist/unpkg/dev-deprecated/index.js +196 -0
  118. package/dist/unpkg/dev-deprecated/json-CCU-ZQ4b.js +1269 -0
  119. package/dist/unpkg/dev-deprecated/model/-private.js +1 -0
  120. package/dist/unpkg/dev-deprecated/model/migration-support.js +568 -0
  121. package/dist/unpkg/dev-deprecated/model-for-CqXsIKws.js +221 -0
  122. package/dist/unpkg/dev-deprecated/model-fragments.js +76 -0
  123. package/dist/unpkg/dev-deprecated/model.js +682 -0
  124. package/dist/unpkg/dev-deprecated/runtime-BPCpkOf1-BKOwiRJp.js +65 -0
  125. package/dist/unpkg/dev-deprecated/schema-provider-k2qXQTBg.js +2254 -0
  126. package/dist/unpkg/dev-deprecated/serialize-into-hash-CPAZXrQU.js +259 -0
  127. package/dist/unpkg/dev-deprecated/serializer/json-api.js +648 -0
  128. package/dist/unpkg/dev-deprecated/serializer/json.js +4 -0
  129. package/dist/unpkg/dev-deprecated/serializer/rest.js +1242 -0
  130. package/dist/unpkg/dev-deprecated/serializer/transform.js +278 -0
  131. package/dist/unpkg/dev-deprecated/serializer.js +248 -0
  132. package/dist/unpkg/dev-deprecated/store.js +636 -0
  133. package/dist/unpkg/dev-deprecated/util-CWr5WQOT.js +24 -0
  134. package/dist/unpkg/dev-deprecated/utils-C9PJehtL.js +12 -0
  135. package/dist/unpkg/prod/-private-Cvf_97EG.js +970 -0
  136. package/dist/unpkg/prod/adapter/-private.js +1 -0
  137. package/dist/unpkg/prod/adapter/error.js +330 -0
  138. package/dist/unpkg/prod/adapter/json-api.js +266 -0
  139. package/dist/unpkg/prod/adapter/rest.js +1218 -0
  140. package/dist/unpkg/prod/adapter.js +1219 -0
  141. package/dist/unpkg/prod/compat/-private.js +1 -0
  142. package/dist/unpkg/prod/compat/builders.js +210 -0
  143. package/dist/unpkg/prod/compat/extensions.js +232 -0
  144. package/dist/unpkg/prod/compat/utils.js +218 -0
  145. package/dist/unpkg/prod/compat.js +726 -0
  146. package/dist/unpkg/prod/errors-CXnfnBfQ.js +2343 -0
  147. package/dist/unpkg/prod/hooks-DvyWhLNg.js +41 -0
  148. package/dist/unpkg/prod/index.js +151 -0
  149. package/dist/unpkg/prod/json-BYrUP8ao.js +1256 -0
  150. package/dist/unpkg/prod/model/-private.js +1 -0
  151. package/dist/unpkg/prod/model/migration-support.js +544 -0
  152. package/dist/unpkg/prod/model-for-CqXsIKws.js +221 -0
  153. package/dist/unpkg/prod/model-fragments.js +76 -0
  154. package/dist/unpkg/prod/model.js +593 -0
  155. package/dist/unpkg/prod/runtime-BPCpkOf1-BKOwiRJp.js +65 -0
  156. package/dist/unpkg/prod/schema-provider-CHujJvA9.js +1904 -0
  157. package/dist/unpkg/prod/serialize-into-hash-DYU2egXl.js +215 -0
  158. package/dist/unpkg/prod/serializer/json-api.js +591 -0
  159. package/dist/unpkg/prod/serializer/json.js +4 -0
  160. package/dist/unpkg/prod/serializer/rest.js +1210 -0
  161. package/dist/unpkg/prod/serializer/transform.js +278 -0
  162. package/dist/unpkg/prod/serializer.js +248 -0
  163. package/dist/unpkg/prod/store.js +504 -0
  164. package/dist/unpkg/prod/util-DvanW33H.js +20 -0
  165. package/dist/unpkg/prod/utils-BhvS1iTS.js +8 -0
  166. package/dist/unpkg/prod-deprecated/-private-Cvf_97EG.js +970 -0
  167. package/dist/unpkg/prod-deprecated/adapter/-private.js +1 -0
  168. package/dist/unpkg/prod-deprecated/adapter/error.js +330 -0
  169. package/dist/unpkg/prod-deprecated/adapter/json-api.js +266 -0
  170. package/dist/unpkg/prod-deprecated/adapter/rest.js +1218 -0
  171. package/dist/unpkg/prod-deprecated/adapter.js +1219 -0
  172. package/dist/unpkg/prod-deprecated/compat/-private.js +1 -0
  173. package/dist/unpkg/prod-deprecated/compat/builders.js +210 -0
  174. package/dist/unpkg/prod-deprecated/compat/extensions.js +232 -0
  175. package/dist/unpkg/prod-deprecated/compat/utils.js +218 -0
  176. package/dist/unpkg/prod-deprecated/compat.js +726 -0
  177. package/dist/unpkg/prod-deprecated/errors-CG1SPYVg.js +2346 -0
  178. package/dist/unpkg/prod-deprecated/hooks-BIUBiNGR.js +41 -0
  179. package/dist/unpkg/prod-deprecated/index.js +150 -0
  180. package/dist/unpkg/prod-deprecated/json-BYrUP8ao.js +1256 -0
  181. package/dist/unpkg/prod-deprecated/model/-private.js +1 -0
  182. package/dist/unpkg/prod-deprecated/model/migration-support.js +561 -0
  183. package/dist/unpkg/prod-deprecated/model-for-CqXsIKws.js +221 -0
  184. package/dist/unpkg/prod-deprecated/model-fragments.js +76 -0
  185. package/dist/unpkg/prod-deprecated/model.js +596 -0
  186. package/dist/unpkg/prod-deprecated/runtime-BPCpkOf1-BKOwiRJp.js +65 -0
  187. package/dist/unpkg/prod-deprecated/schema-provider-BJ4TWnZf.js +1947 -0
  188. package/dist/unpkg/prod-deprecated/serialize-into-hash-DYU2egXl.js +215 -0
  189. package/dist/unpkg/prod-deprecated/serializer/json-api.js +591 -0
  190. package/dist/unpkg/prod-deprecated/serializer/json.js +4 -0
  191. package/dist/unpkg/prod-deprecated/serializer/rest.js +1210 -0
  192. package/dist/unpkg/prod-deprecated/serializer/transform.js +278 -0
  193. package/dist/unpkg/prod-deprecated/serializer.js +248 -0
  194. package/dist/unpkg/prod-deprecated/store.js +504 -0
  195. package/dist/unpkg/prod-deprecated/util-B6cn-i93.js +23 -0
  196. package/dist/unpkg/prod-deprecated/utils-BUWwQwCh.js +11 -0
  197. package/logos/README.md +2 -2
  198. package/logos/logo-yellow-slab.svg +1 -0
  199. package/logos/word-mark-black.svg +1 -0
  200. package/logos/word-mark-white.svg +1 -0
  201. package/package.json +14 -6
  202. package/logos/NCC-1701-a-blue.svg +0 -4
  203. package/logos/NCC-1701-a-gold.svg +0 -4
  204. package/logos/NCC-1701-a-gold_100.svg +0 -1
  205. package/logos/NCC-1701-a-gold_base-64.txt +0 -1
  206. package/logos/NCC-1701-a.svg +0 -4
  207. package/logos/docs-badge.svg +0 -2
  208. package/logos/ember-data-logo-dark.svg +0 -12
  209. package/logos/ember-data-logo-light.svg +0 -12
  210. package/logos/social1.png +0 -0
  211. package/logos/social2.png +0 -0
  212. package/logos/warp-drive-logo-dark.svg +0 -4
  213. package/logos/warp-drive-logo-gold.svg +0 -4
@@ -0,0 +1,259 @@
1
+ import '@warp-drive/core/reactive/-private';
2
+ import "./-private-DbaSCSym.js";
3
+ import '@warp-drive/core/store/-private';
4
+ const newline = /\r?\n/;
5
+ function parseResponseHeaders(headersString) {
6
+ const headers = Object.create(null);
7
+ if (!headersString) {
8
+ return headers;
9
+ }
10
+ const headerPairs = headersString.split(newline);
11
+ for (let i = 0; i < headerPairs.length; i++) {
12
+ const header = headerPairs[i];
13
+ let j = 0;
14
+ let foundSep = false;
15
+ for (; j < header.length; j++) {
16
+ if (header.charCodeAt(j) === 58 /* ':' */) {
17
+ foundSep = true;
18
+ break;
19
+ }
20
+ }
21
+ if (foundSep === false) {
22
+ continue;
23
+ }
24
+ const field = header.substring(0, j).trim();
25
+ const value = header.substring(j + 1, header.length).trim();
26
+ if (value) {
27
+ const lowerCasedField = field.toLowerCase();
28
+ headers[lowerCasedField] = value;
29
+ headers[field] = value;
30
+ }
31
+ }
32
+ return headers;
33
+ }
34
+
35
+ /**
36
+ * A utility function that returns a promise that resolves
37
+ * even when the source promise rejects.
38
+ *
39
+ * @internal
40
+ */
41
+ function continueOnReject(promise) {
42
+ return Promise.resolve(promise).catch(e => e);
43
+ }
44
+
45
+ /*
46
+ * Function that always attempts to parse the response as json, and if an error is thrown,
47
+ * returns `undefined` if the response is successful and has a status code of 204 (No Content),
48
+ * or 205 (Reset Content) or if the request method was 'HEAD', and the plain payload otherwise.
49
+ */
50
+ function _determineContent(response, requestData, payload) {
51
+ let ret = payload;
52
+ let error = null;
53
+ if (!response.ok) {
54
+ return payload;
55
+ }
56
+ const status = response.status;
57
+ const payloadIsEmpty = payload === '' || payload === null;
58
+ const statusIndicatesEmptyResponse = status === 204 || status === 205 || requestData.method === 'HEAD';
59
+ {
60
+ if (payloadIsEmpty && !statusIndicatesEmptyResponse) {
61
+ const message = `The server returned an empty string for ${requestData.method} ${requestData.url}, which cannot be parsed into a valid JSON. Return either null or {}.`;
62
+ if (payload === '') {
63
+ console.warn(message, {
64
+ id: 'ds.adapter.returned-empty-string-as-JSON'
65
+ });
66
+ }
67
+ }
68
+ }
69
+ if (response.ok && (statusIndicatesEmptyResponse || payloadIsEmpty)) {
70
+ return;
71
+ }
72
+ try {
73
+ ret = JSON.parse(payload);
74
+ } catch (e) {
75
+ if (!(e instanceof SyntaxError)) {
76
+ return e;
77
+ }
78
+ e.payload = payload;
79
+ error = e;
80
+ }
81
+ if (error) {
82
+ {
83
+ // eslint-disable-next-line no-console
84
+ console.warn('This response was unable to be parsed as json.', payload);
85
+ }
86
+ return error;
87
+ }
88
+ return ret;
89
+ }
90
+ function determineBodyPromise(response, requestData) {
91
+ // response.text() may resolve or reject
92
+ // it is a native promise, may not have finally
93
+ return continueOnReject(response.text()).then(payload => _determineContent(response, requestData, payload));
94
+ }
95
+ const RBRACKET = /\[\]$/;
96
+ function isPlainObject(obj) {
97
+ return Object.prototype.toString.call(obj) === '[object Object]';
98
+ }
99
+ function isPrimitiveArray(obj) {
100
+ return Array.isArray(obj);
101
+ }
102
+ function isParamsArray(obj) {
103
+ return Array.isArray(obj);
104
+ }
105
+ function buildParams(prefix, obj, s) {
106
+ let i, len, key;
107
+ if (prefix) {
108
+ if (isPrimitiveArray(obj)) {
109
+ for (i = 0, len = obj.length; i < len; i++) {
110
+ if (RBRACKET.test(prefix)) {
111
+ add(s, prefix, obj[i]);
112
+ } else {
113
+ buildParams(prefix + '[' + (typeof obj[i] === 'object' && obj[i] !== null ? i : '') + ']', obj[i], s);
114
+ }
115
+ }
116
+ } else if (isPlainObject(obj)) {
117
+ for (key in obj) {
118
+ buildParams(prefix + '[' + key + ']', obj[key], s);
119
+ }
120
+ } else {
121
+ (test => {
122
+ if (!test) {
123
+ throw new Error(`query params cannot be a { name, value } pair if prefix is present`);
124
+ }
125
+ })(obj === null || typeof obj !== 'object');
126
+ add(s, prefix, obj);
127
+ }
128
+ } else if (isParamsArray(obj)) {
129
+ for (i = 0, len = obj.length; i < len; i++) {
130
+ add(s, obj[i].name, obj[i].value);
131
+ }
132
+ } else {
133
+ (test => {
134
+ if (!test) {
135
+ throw new Error(`query params cannot be a string if no prefix is present`);
136
+ }
137
+ })(typeof obj !== 'string');
138
+ (test => {
139
+ if (!test) {
140
+ throw new Error(`query params should not be an array if no prefix is present`);
141
+ }
142
+ })(!Array.isArray(obj));
143
+ (test => {
144
+ if (!test) {
145
+ throw new Error(`query params should not be a { name, value } pair if no prefix is present`);
146
+ }
147
+ })(isPlainObject(obj));
148
+ for (key in obj) {
149
+ buildParams(key, obj[key], s);
150
+ }
151
+ }
152
+ return s;
153
+ }
154
+
155
+ /*
156
+ * Helper function that turns the data/body of a request into a query param string.
157
+ * This is directly copied from jQuery.param.
158
+ */
159
+ function serializeQueryParams(queryParamsObject) {
160
+ return buildParams('', queryParamsObject, []).join('&');
161
+ }
162
+
163
+ /*
164
+ * Part of the `serializeQueryParams` helper function.
165
+ */
166
+ function add(s, k, v) {
167
+ // Strip out keys with undefined value and replace null values with
168
+ // empty strings (mimics jQuery.ajax)
169
+ if (v === undefined) {
170
+ return;
171
+ } else if (v === null) {
172
+ v = '';
173
+ }
174
+ v = typeof v === 'function' ? v() : v;
175
+ s[s.length] = `${encodeURIComponent(k)}=${encodeURIComponent(v)}`;
176
+ }
177
+ let _fetch = null;
178
+ let REQUEST = null;
179
+ function getFetchFunction() {
180
+ // return cached fetch function
181
+ if (_fetch !== null) {
182
+ return _fetch();
183
+ }
184
+
185
+ // grab browser native fetch if available, or global fetch if otherwise configured
186
+ if (typeof fetch === 'function') {
187
+ // fallback to using global fetch
188
+ _fetch = () => fetch;
189
+
190
+ /* global FastBoot */
191
+ // grab fetch from node-fetch
192
+ } else if (typeof FastBoot !== 'undefined') {
193
+ try {
194
+ const nodeFetch = FastBoot.require('node-fetch');
195
+ const httpRegex = /^https?:\/\//;
196
+ const protocolRelativeRegex = /^\/\//;
197
+ function parseRequest(request) {
198
+ if (request === null) {
199
+ throw new Error("Trying to fetch with relative url but the application hasn't finished loading FastBootInfo, see details at https://github.com/ember-cli/ember-fetch#relative-url");
200
+ }
201
+ // Old Prember version is not sending protocol
202
+ const protocol = request.protocol === 'undefined:' ? 'http:' : request.protocol;
203
+ return [request.get('host'), protocol];
204
+ }
205
+ function buildAbsoluteUrl(url) {
206
+ if (protocolRelativeRegex.test(url)) {
207
+ const [host] = parseRequest(REQUEST);
208
+ url = host + url;
209
+ } else if (!httpRegex.test(url)) {
210
+ const [host, protocol] = parseRequest(REQUEST);
211
+ url = protocol + '//' + host + url;
212
+ }
213
+ return url;
214
+ }
215
+ function patchedFetch(input, options) {
216
+ if (input && typeof input === 'object' && 'href' in input) {
217
+ const url = buildAbsoluteUrl(input.href);
218
+ const info = Object.assign({}, input, {
219
+ url
220
+ });
221
+ return nodeFetch(info, options);
222
+ } else if (typeof input === 'string') {
223
+ const url = buildAbsoluteUrl(input);
224
+ return nodeFetch(url, options);
225
+ }
226
+ return nodeFetch(input, options);
227
+ }
228
+ _fetch = () => patchedFetch;
229
+ } catch {
230
+ throw new Error(`Unable to create a compatible 'fetch' for FastBoot with node-fetch`);
231
+ }
232
+ }
233
+ (test => {
234
+ if (!test) {
235
+ throw new Error(`Cannot find a 'fetch' global and did not detect FastBoot.`);
236
+ }
237
+ })(_fetch);
238
+ return _fetch();
239
+ }
240
+ function setupFastboot(fastBootRequest) {
241
+ REQUEST = fastBootRequest;
242
+ }
243
+ function serializeIntoHash(store, modelClass, snapshot, options = {
244
+ includeId: true
245
+ }) {
246
+ const serializer = store.serializerFor(modelClass.modelName);
247
+ (test => {
248
+ if (!test) {
249
+ throw new Error(`Cannot serialize record, no serializer defined`);
250
+ }
251
+ })(serializer);
252
+ if (typeof serializer.serializeIntoHash === 'function') {
253
+ const data = {};
254
+ serializer.serializeIntoHash(data, modelClass, snapshot, options);
255
+ return data;
256
+ }
257
+ return serializer.serialize(snapshot, options);
258
+ }
259
+ export { setupFastboot as a, serializeIntoHash as b, determineBodyPromise as d, getFetchFunction as g, parseResponseHeaders as p, serializeQueryParams as s };