summaryrefslogtreecommitdiff
path: root/www/lib/filelogger/dist/filelogger.min.js
blob: de02b8637bcb2fe1171158b77a73e3f28d8b374f (plain)
1
2
3
4
5
6
/*!
 * fileLogger
 * Copyright 2016 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,r,a,n){"use strict";function t(){return!o.cordova&&!o.PhoneGap&&!o.phonegap}function i(e){angular.isString(e)?(e=e.toUpperCase(),-1===S.indexOf(e)&&(e="INFO")):e="INFO";for(var o,r=new Date,a=m?n("date")(r,m,b):r.toJSON(),i=Array.prototype.slice.call(arguments,1),c=[a,e],s=0;s<i.length;s++)if(angular.isArray(i[s])){o="[Array]";try{o=JSON.stringify(i[s])}catch(f){}c.push(o)}else if(angular.isObject(i[s])){o="[Object]";try{o=JSON.stringify(i[s])}catch(f){}c.push(o)}else c.push(i[s]);if(t()){if(i.unshift(a),angular.isObject(console)&&angular.isFunction(console.log))switch(e){case"DEBUG":angular.isFunction(console.debug)?console.debug.apply(console,i):console.log.apply(console,i);break;case"INFO":angular.isFunction(console.debug)?console.info.apply(console,i):console.log.apply(console,i);break;case"WARN":angular.isFunction(console.debug)?console.warn.apply(console,i):console.log.apply(console,i);break;case"ERROR":angular.isFunction(console.debug)?console.error.apply(console,i):console.log.apply(console,i);break;default:console.log.apply(console,i)}}else console.log(c.join(" "));F.push({message:c.join(" ")+"\n"}),D||l()}function l(){if(!F.length)return void(D=!1);D=!0;var e=F.shift();c(e.message).then(function(){a(function(){l()})},function(){a(function(){l()})})}function c(a){var n=e.defer();if(t())o.localStorage[j]||(o.localStorage[j]=""),o.localStorage[j]+=a,n.resolve();else{if(!o.cordova||!o.cordova.file||!o.cordova.file.dataDirectory)return n.reject("cordova.file.dataDirectory is not available"),n.promise;r.checkFile(cordova.file.dataDirectory,j).then(function(){r.writeExistingFile(cordova.file.dataDirectory,j,a).then(function(){n.resolve()},function(e){n.reject(e)})},function(){r.writeFile(cordova.file.dataDirectory,j,a,!0).then(function(){n.resolve()},function(e){n.reject(e)})})}return n.promise}function s(){var a=e.defer();if(t())a.resolve(o.localStorage[j]);else{if(!o.cordova||!o.cordova.file||!o.cordova.file.dataDirectory)return a.reject("cordova.file.dataDirectory is not available"),a.promise;r.readAsText(cordova.file.dataDirectory,j).then(function(e){a.resolve(e)},function(e){a.reject(e)})}return a.promise}function f(){var a=e.defer();if(t())o.localStorage.removeItem(j),a.resolve();else{if(!o.cordova||!o.cordova.file||!o.cordova.file.dataDirectory)return a.reject("cordova.file.dataDirectory is not available"),a.promise;r.removeFile(cordova.file.dataDirectory,j).then(function(e){a.resolve(e)},function(e){a.reject(e)})}return a.promise}function u(e){return angular.isString(e)&&e.length>0?(j=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,b=o}function d(){var a=e.defer();if(t())a.resolve({name:j,localURL:"localStorage://localhost/"+j,type:"text/plain",size:o.localStorage[j]?o.localStorage[j].length:0});else{if(!o.cordova||!o.cordova.file||!o.cordova.file.dataDirectory)return a.reject("cordova.file.dataDirectory is not available"),a.promise;r.checkFile(cordova.file.dataDirectory,j).then(function(e){e.file(a.resolve,a.reject)},a.reject)}return a.promise}function p(){var e=Array.prototype.slice.call(arguments,0);e.unshift("DEBUG"),i.apply(void 0,e)}function v(){var e=Array.prototype.slice.call(arguments,0);e.unshift("INFO"),i.apply(void 0,e)}function y(){var e=Array.prototype.slice.call(arguments,0);e.unshift("WARN"),i.apply(void 0,e)}function h(){var e=Array.prototype.slice.call(arguments,0);e.unshift("ERROR"),i.apply(void 0,e)}var m,b,F=[],D=!1,S=["DEBUG","INFO","WARN","ERROR"],j="messages.log";return{log:i,getLogfile:s,deleteLogfile:f,setStorageFilename:u,setTimestampFormat:g,checkFile:d,debug:p,info:v,warn:y,error:h}}])}();