forked from mcwebb/angular-parse-patch
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathangular-parse-patch.js
More file actions
1 lines (1 loc) · 1.58 KB
/
Copy pathangular-parse-patch.js
File metadata and controls
1 lines (1 loc) · 1.58 KB
1
!function(angular){function ngParseProvider(){this.initialize=function(appId,jsKey,serverURL){internal.credentials.appId=appId,internal.credentials.jsKey=jsKey,internal.serverURL=serverURL},this.$get=["$window","$q",function($window,$q){if(angular.isUndefined($window.Parse))throw new Error("Parse SDK not available");var ngParse=$window.Parse;return ngParse.initialize(internal.credentials.appId,internal.credentials.jsKey),ngParse.serverURL=internal.serverURL,ngParse.Object.prototype.initialize=function(){"object"==typeof this.fields&&internal.enablePropAccess(this,this.fields)},ngParse.$q=function(parsePromise){if(!ngParse.Promise.is(parsePromise))throw new Error("ngParse.$q only accepts Parse.Promise");var deferred=$q.defer();return parsePromise.then(function(result){deferred.resolve(result)},function(error){deferred.reject(error)}),deferred.promise},ngParse}]}var internal={};internal={credentials:{appId:"",jsKey:""},serverURL:""},internal.generateProps=function(instance,fields){var props={};return angular.forEach(fields,function(name){props[name]={get:function(){return instance.get(name)},set:function(value){instance.set(name,value)}}}),props},internal.enablePropAccess=function(instance,fields){"undefined"!=typeof Object.defineProperties?Object.defineProperties(instance,internal.generateProps(instance,fields)):angular.forEach(fields,function(name){instance.__defineGetter__(name,function(){return instance.get(name)}),instance.__defineSetter__(name,function(value){return instance.set(name,value)})})},angular.module("mcwebb.parse-patch",[]).provider("ngParse",ngParseProvider)}(window.angular);