|
1 | 1 | /**
|
2 | 2 | * @author Jason Dobry <[email protected]>
|
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