all files / src/ libzotero.js

91.43% Statements 64/70
50% Branches 6/12
50% Functions 1/2
91.43% Lines 64/70
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99                                                                     
// use strict;
 
var log = require('./Log.js').Logger('libZotero');
 
var globalScope;
 
Eif(typeof window === 'undefined') {
	globalScope = global;
	//add node-fetch
	Eif(!globalScope.fetch){
		var nfetch = require('node-fetch');
		globalScope.fetch = nfetch;
		globalScope.Response = nfetch.Response;
		globalScope.Headers = nfetch.Headers;
		globalScope.Request = nfetch.Request;
	}
} else {
	globalScope = window;
	if(typeof Promise === 'undefined') {
		require('es6-promise').polyfill();
	}
	
	//add github's whatwg-fetch for browsers
	if(!globalScope.fetch){
		require('whatwg-fetch');
	}
	//module.exports = self.fetch.bind(self);
}
 
var Zotero = {};
globalScope.Zotero = globalScope.Z = Zotero;
Zotero.Cache = require('./Cache.js');
Zotero.Ajax = Zotero.ajax = require('./Ajax.js');
Zotero.ApiObject = require('./ApiObject.js');
Zotero.ApiResponse = require('./ApiResponse.js');
Zotero.Net = Zotero.net = require('./Net.js');
Zotero.Library = require('./Library.js');
Zotero.Container = require('./Container');
Zotero.Collections = require('./Collections.js');
Zotero.Items = require('./Items.js');
Zotero.Tags = require('./Tags.js');
Zotero.Groups = require('./Groups.js');
Zotero.Searches = require('./Searches.js');
Zotero.Deleted = require('./Deleted.js');
Zotero.Collection = require('./Collection.js');
Zotero.Localizations = Zotero.localizations = require('./Localizations.js');
Zotero.Item = require('./Item.js');
Zotero.Tag = require('./Tag.js');
Zotero.Search = require('./Search.js');
Zotero.Group = require('./Group.js');
Zotero.User = require('./User.js');
Zotero.Utils = Zotero.utils = require('./Utils.js');
Zotero.Url = Zotero.url = require('./Url.js');
Zotero.File = Zotero.file = require('./File.js');
Zotero.Idb = require('./Idb.js');
Zotero.Preferences = require('./Preferences.js');
Zotero.Client = require('./Client.js');
Zotero.Fetcher = require('./Fetcher.js');
Zotero.Writer = require('./Writer.js');
Zotero.TagColors = require('./TagColors.js');
Zotero.Validator = require('./Validator.js');
Zotero.RequestConfig = require('./RequestConfig.js');
 
Zotero.extend = require('./Extend.js');
 
//non-DOM (jquery) event management
Zotero.eventmanager = {callbacks: {}};
let {trigger, listen} = require('./Events.js');
Zotero.trigger = trigger;
Zotero.listen = listen;
 
Zotero.libraries = {};
Zotero.config = require('./DefaultConfig.js');
 
Zotero.catchPromiseError = function(err){
	log.error(err);
};
 
Zotero.ajaxRequest = function(url, type, options){
	log.debug('Zotero.ajaxRequest ==== ' + url, 3);
	if(!type){
		type = 'GET';
	}
	if(!options){
		options = {};
	}
	var requestObject = {
		url: url,
		type: type
	};
	requestObject = Z.extend({}, requestObject, options);
	log.debug(requestObject, 3);
	return Zotero.net.queueRequest(requestObject);
};
 
Zotero.init = require('./Init.js');
Zotero.init();
 
module.exports = Zotero;