summaryrefslogtreecommitdiff
path: root/www/lib/filelogger/dist/filelogger.min.js
blob: 4fd8ec7940c40cfecb558fe2ffd09ff240729b28 (plain)
1
2
3
4
5
6
/*!
 * fileLogger
 * Copyright 2015 Peter Bakondy https://github.com/pbakondy
 * See LICENSE in this repository for license information
 */
!function(){angular.module("fileLogger",["ngCordova.plugins.file"]).factory("$fileLogger",["$q","$window","$cordovaFile","$timeout","$filter",function(e,o,n,r,t){"use strict";function a(){return!o.cordova&&!o.PhoneGap&&!o.phonegap}function l(e){angular.isString(e)?(e=e.toUpperCase(),-1===O.indexOf(e)&&(e="INFO")):e="INFO";for(var o,n=new Date,r=m?t("date")(n,m,F):n.toJSON(),l=Array.prototype.slice.call(arguments,1),c=[r,e],s=0;s<l.length;s++)if(angular.isArray(l[s])){o="[Array]";try{o=JSON.stringify(l[s])}catch(u){}c.push(o)}else if(angular.isObject(l[s])){o="[Object]";try{o=JSON.stringify(l[s])}catch(u){}c.push(o)}else c.push(l[s]);if(a()){if(l.unshift(r),angular.isObject(console)&&angular.isFunction(console.log))switch(e){case"DEBUG":angular.isFunction(console.debug)?console.debug.apply(console,l):console.log.apply(console,l);break;case"INFO":angular.isFunction(console.debug)?console.info.apply(console,l):console.log.apply(console,l);break;case"WARN":angular.isFunction(console.debug)?console.warn.apply(console,l):console.log.apply(console,l);break;case"ERROR":angular.isFunction(console.debug)?console.error.apply(console,l):console.log.apply(console,l);break;default:console.log.apply(console,l)}}else console.log(c.join(" "));S.push({message:c.join(" ")+"\n"}),b||i()}function i(){if(!S.length)return void(b=!1);b=!0;var e=S.shift();c(e.message).then(function(){r(function(){i()})},function(){r(function(){i()})})}function c(r){var t=e.defer();return a()?(o.localStorage[R]||(o.localStorage[R]=""),o.localStorage[R]+=r,t.resolve()):n.checkFile(cordova.file.dataDirectory,R).then(function(){n.writeExistingFile(cordova.file.dataDirectory,R,r).then(function(){t.resolve()},function(e){t.reject(e)})},function(){n.writeFile(cordova.file.dataDirectory,R,r,!0).then(function(){t.resolve()},function(e){t.reject(e)})}),t.promise}function s(){var r=e.defer();return a()?r.resolve(o.localStorage[R]):n.readAsText(cordova.file.dataDirectory,R).then(function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise}function u(){var r=e.defer();return a()?(o.localStorage.removeItem(R),r.resolve()):n.removeFile(cordova.file.dataDirectory,R).then(function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise}function f(e){return angular.isString(e)&&e.length>0?(R=e,!0):!1}function g(e,o){if(!angular.isUndefined(e)&&!angular.isString(e))throw new TypeError("format parameter must be a string or undefined");if(!angular.isUndefined(o)&&!angular.isString(o))throw new TypeError("timezone parameter must be a string or undefined");m=e,F=o}function p(){var r=e.defer();return a()?r.resolve({name:R,localURL:"localStorage://localhost/"+R,type:"text/plain",size:o.localStorage[R]?o.localStorage[R].length:0}):n.checkFile(cordova.file.dataDirectory,R).then(function(e){e.file(r.resolve,r.reject)},r.reject),r.promise}function d(){var e=Array.prototype.slice.call(arguments,0);e.unshift("DEBUG"),l.apply(void 0,e)}function y(){var e=Array.prototype.slice.call(arguments,0);e.unshift("INFO"),l.apply(void 0,e)}function v(){var e=Array.prototype.slice.call(arguments,0);e.unshift("WARN"),l.apply(void 0,e)}function h(){var e=Array.prototype.slice.call(arguments,0);e.unshift("ERROR"),l.apply(void 0,e)}var m,F,S=[],b=!1,O=["DEBUG","INFO","WARN","ERROR"],R="messages.log";return{log:l,getLogfile:s,deleteLogfile:u,setStorageFilename:f,setTimestampFormat:g,checkFile:p,debug:d,info:y,warn:v,error:h}}])}();