91 lines
2.4 KiB
JavaScript
91 lines
2.4 KiB
JavaScript
import '../../../dist/javascripts/app.js';
|
|
import '../../../node_modules/chai/chai.js';
|
|
import '../vendor/chai-as-promised-built.js';
|
|
|
|
import LocalStorageManager from './localStorageManager.js';
|
|
const sf_default = new SNProtocolManager();
|
|
SFItem.AppDomain = "org.standardnotes.sn";
|
|
|
|
var _globalStorageManager = null;
|
|
var _globalHttpManager = null;
|
|
var _globalAuthManager = null;
|
|
var _globalModelManager = null;
|
|
var _globalCryptoManager = null;
|
|
|
|
export default class Factory {
|
|
|
|
static initialize() {
|
|
this.globalStorageManager();
|
|
this.globalHttpManager();
|
|
this.globalAuthManager();
|
|
this.globalModelManager();
|
|
}
|
|
|
|
static globalStorageManager() {
|
|
if(_globalStorageManager == null) { _globalStorageManager = new LocalStorageManager(); }
|
|
return _globalStorageManager;
|
|
}
|
|
|
|
static globalHttpManager() {
|
|
if(_globalHttpManager == null) {
|
|
_globalHttpManager = new SFHttpManager();
|
|
_globalHttpManager.setJWTRequestHandler(async () => {
|
|
return this.globalStorageManager().getItem("jwt");;
|
|
})
|
|
}
|
|
return _globalHttpManager;
|
|
}
|
|
|
|
static globalAuthManager() {
|
|
if(_globalAuthManager == null) { _globalAuthManager = new SFAuthManager(_globalStorageManager, _globalHttpManager); }
|
|
return _globalAuthManager;
|
|
}
|
|
|
|
static globalModelManager() {
|
|
if(_globalModelManager == null) { _globalModelManager = new SFModelManager(); }
|
|
return _globalModelManager;
|
|
}
|
|
|
|
static globalCryptoManager() {
|
|
if(_globalCryptoManager == null) { _globalCryptoManager = new SNProtocolManager(); }
|
|
return _globalCryptoManager;
|
|
}
|
|
|
|
static createModelManager() {
|
|
return new SFModelManager();
|
|
}
|
|
|
|
static yesterday() {
|
|
return new Date(new Date().setDate(new Date().getDate() - 1));
|
|
}
|
|
|
|
static createItemParams() {
|
|
var params = {
|
|
uuid: protocolManager.crypto.generateUUIDSync(),
|
|
content_type: "Note",
|
|
content: {
|
|
title: "hello",
|
|
text: "world"
|
|
}
|
|
};
|
|
return params;
|
|
}
|
|
|
|
static createItem() {
|
|
return new SFItem(this.createItemParams());
|
|
}
|
|
|
|
static serverURL() {
|
|
return "http://localhost:3000";
|
|
}
|
|
|
|
static async newRegisteredUser(email, password) {
|
|
let url = this.serverURL();
|
|
if(!email) email = sf_default.crypto.generateUUIDSync();
|
|
if(!password) password = sf_default.crypto.generateUUIDSync();
|
|
return this.globalAuthManager().register(url, email, password, false);
|
|
}
|
|
}
|
|
|
|
Factory.initialize();
|