|
1 | 1 | /** |
2 | 2 | * @author Jason Dobry <jason.dobry@gmail.com> |
3 | 3 | * @file js-data-angular.js |
4 | | -* @version 2.0.0-alpha.2-0 - Homepage <http://www.js-data.io/js-data-angular/> |
| 4 | +* @version 2.0.0-alpha.3-0 - Homepage <http://www.js-data.io/js-data-angular/> |
5 | 5 | * @copyright (c) 2014 Jason Dobry <https://github.com/jmdobry/> |
6 | 6 | * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> |
7 | 7 | * |
|
93 | 93 | httpLoaded = true; |
94 | 94 | } |
95 | 95 | adapter.loaded = true; |
96 | | - angular.module(adapter.project, ['ng']).provider(adapter.class, function () { |
| 96 | + angular.module('js-data').provider(adapter.class, function () { |
97 | 97 | var _this = this; |
98 | 98 | _this.defaults = {}; |
99 | 99 | _this.$get = [function () { |
|
103 | 103 | } |
104 | 104 | } |
105 | 105 |
|
106 | | - for (var i = 0; i < adapters.length; i++) { |
107 | | - registerAdapter(adapters[i]); |
108 | | - } |
109 | | - |
110 | 106 | angular.module('js-data', ['ng']) |
111 | 107 | .value('DSUtils', JSData.DSUtils) |
112 | 108 | .value('DSErrors', JSData.DSErrors) |
|
199 | 195 | var store = new JSData.DS(_this.defaults); |
200 | 196 | var originals = {}; |
201 | 197 |
|
202 | | - function QPromise(cb) { |
| 198 | + function QPromise(executor) { |
203 | 199 | var deferred = $q.defer(); |
| 200 | + |
204 | 201 | try { |
205 | | - cb(function (val) { |
206 | | - if (!$rootScope.$$phase) { |
207 | | - $rootScope.$apply(function () { |
208 | | - deferred.resolve(val); |
209 | | - }); |
210 | | - } else { |
211 | | - deferred.resolve(val); |
212 | | - } |
213 | | - }, function (err) { |
214 | | - console.log(err); |
215 | | - if (!$rootScope.$$phase) { |
216 | | - $rootScope.$apply(function () { |
217 | | - deferred.reject(err); |
218 | | - }); |
219 | | - } else { |
220 | | - deferred.reject(err); |
221 | | - } |
222 | | - }); |
| 202 | + executor.call(undefined, |
| 203 | + angular.bind(deferred, deferred.resolve), |
| 204 | + angular.bind(deferred, deferred.reject)); |
223 | 205 | } catch (err) { |
224 | 206 | deferred.reject(err); |
225 | 207 | } |
| 208 | + |
226 | 209 | return deferred.promise; |
227 | 210 | } |
228 | 211 |
|
229 | | - //QPromise.all = $q.all; |
230 | | - //QPromise.when = $q.when; |
231 | | - //QPromise.reject = $q.reject; |
232 | | - // |
233 | | - //DSUtils.Promise = QPromise; |
| 212 | + QPromise.all = $q.all; |
| 213 | + QPromise.when = $q.when; |
| 214 | + QPromise.reject = $q.reject; |
| 215 | + |
| 216 | + DSUtils.Promise = QPromise; |
234 | 217 |
|
235 | 218 | // Register any adapters that have been loaded |
236 | 219 | for (var i = 0; i < adapters.length; i++) { |
|
259 | 242 | if (typeof Object.observe !== 'function' || |
260 | 243 | typeof Array.observe !== 'function') { |
261 | 244 | $rootScope.$watch(function () { |
262 | | - // TODO: observe.Platform.performMicrotaskCheckpoint(); |
263 | 245 | // Throttle angular-data's digest loop to tenths of a second |
264 | 246 | return new Date().getTime() / 100 | 0; |
265 | | - }, function () { |
266 | | - store.digest(); |
267 | | - }); |
| 247 | + }, store.observe.Platform.performMicrotaskCheckpoint); |
268 | 248 | } |
269 | 249 |
|
270 | 250 | return store; |
|
277 | 257 | _this.$get = deps; |
278 | 258 | }); |
279 | 259 |
|
| 260 | + |
| 261 | + for (var i = 0; i < adapters.length; i++) { |
| 262 | + registerAdapter(adapters[i]); |
| 263 | + } |
| 264 | + |
280 | 265 | if (!httpLoaded) { |
281 | 266 | var defaultsPrototype = Defaults.prototype; |
282 | 267 |
|
283 | | - defaultsPrototype.queryTransform = function (resourceName, params) { |
| 268 | + defaultsPrototype.queryTransform = function (resource, params) { |
284 | 269 | return params; |
285 | 270 | }; |
286 | 271 |
|
|
300 | 285 | } : function () { |
301 | 286 | }; |
302 | 287 |
|
303 | | - defaultsPrototype.deserialize = function (resourceName, data) { |
| 288 | + defaultsPrototype.deserialize = function (resource, data) { |
304 | 289 | return data ? ('data' in data ? data.data : data) : data; |
305 | 290 | }; |
306 | 291 |
|
307 | | - defaultsPrototype.serialize = function (resourceName, data) { |
| 292 | + defaultsPrototype.serialize = function (resource, data) { |
308 | 293 | return data; |
309 | 294 | }; |
310 | 295 |
|
|
367 | 352 | _this.getIdPath(resourceConfig, options, id), |
368 | 353 | options |
369 | 354 | ).then(function (data) { |
370 | | - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig.name, data); |
| 355 | + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); |
371 | 356 | }); |
372 | 357 | }; |
373 | 358 |
|
|
376 | 361 | options = options || {}; |
377 | 362 | options.params = options.params || {}; |
378 | 363 | if (params) { |
379 | | - params = _this.defaults.queryTransform(resourceConfig.name, params); |
| 364 | + params = _this.defaults.queryTransform(resourceConfig, params); |
380 | 365 | deepMixIn(options.params, params); |
381 | 366 | } |
382 | 367 | return _this.GET( |
383 | 368 | _this.getAllPath(resourceConfig, options), |
384 | 369 | options |
385 | 370 | ).then(function (data) { |
386 | | - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig.name, data); |
| 371 | + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); |
387 | 372 | }); |
388 | 373 | }; |
389 | 374 |
|
|
392 | 377 | options = options || {}; |
393 | 378 | return _this.POST( |
394 | 379 | makePath(options.basePath || this.defaults.basePath || resourceConfig.basePath, resourceConfig.getEndpoint(attrs, options)), |
395 | | - options.serialize ? options.serialize(resourceConfig.name, attrs) : _this.defaults.serialize(resourceConfig.name, attrs), |
| 380 | + (options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs), |
396 | 381 | options |
397 | 382 | ).then(function (data) { |
398 | | - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig.name, data); |
| 383 | + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); |
399 | 384 | }); |
400 | 385 | }; |
401 | 386 |
|
|
404 | 389 | options = options || {}; |
405 | 390 | return _this.PUT( |
406 | 391 | _this.getIdPath(resourceConfig, options, id), |
407 | | - options.serialize ? options.serialize(resourceConfig.name, attrs) : _this.defaults.serialize(resourceConfig.name, attrs), |
| 392 | + (options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs), |
408 | 393 | options |
409 | 394 | ).then(function (data) { |
410 | | - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig.name, data); |
| 395 | + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); |
411 | 396 | }); |
412 | 397 | }; |
413 | 398 |
|
|
416 | 401 | options = options || {}; |
417 | 402 | options.params = options.params || {}; |
418 | 403 | if (params) { |
419 | | - params = _this.defaults.queryTransform(resourceConfig.name, params); |
| 404 | + params = _this.defaults.queryTransform(resourceConfig, params); |
420 | 405 | deepMixIn(options.params, params); |
421 | 406 | } |
422 | 407 | return this.PUT( |
423 | 408 | _this.getAllPath(resourceConfig, options), |
424 | | - options.serialize ? options.serialize(resourceConfig.name, attrs) : _this.defaults.serialize(resourceConfig.name, attrs), |
| 409 | + (options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs), |
425 | 410 | options |
426 | 411 | ).then(function (data) { |
427 | | - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig.name, data); |
| 412 | + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); |
428 | 413 | }); |
429 | 414 | }; |
430 | 415 |
|
|
435 | 420 | _this.getIdPath(resourceConfig, options, id), |
436 | 421 | options |
437 | 422 | ).then(function (data) { |
438 | | - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig.name, data); |
| 423 | + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); |
439 | 424 | }); |
440 | 425 | }; |
441 | 426 |
|
|
444 | 429 | options = options || {}; |
445 | 430 | options.params = options.params || {}; |
446 | 431 | if (params) { |
447 | | - params = _this.defaults.queryTransform(resourceConfig.name, params); |
| 432 | + params = _this.defaults.queryTransform(resourceConfig, params); |
448 | 433 | deepMixIn(options.params, params); |
449 | 434 | } |
450 | 435 | return this.DEL( |
451 | 436 | _this.getAllPath(resourceConfig, options), |
452 | 437 | options |
453 | 438 | ).then(function (data) { |
454 | | - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig.name, data); |
| 439 | + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); |
455 | 440 | }); |
456 | 441 | }; |
457 | 442 |
|
|
491 | 476 | return adapter; |
492 | 477 | }]; |
493 | 478 | }); |
| 479 | + |
| 480 | + angular.module('js-data').run(['DS', 'DSHttpAdapter', function (DS, DSHttpAdapter) { |
| 481 | + DS.registerAdapter('http', DSHttpAdapter, { default: true }); |
| 482 | + }]); |
494 | 483 | } |
495 | 484 |
|
496 | 485 | })(window, window.angular); |
|
0 commit comments