UNPKG

2.03 kBJavaScriptView Raw
1'use strict';
2var path = require('path');
3import IO from 'koa-socket';
4const cors = require('kcors');
5const io = new IO();
6global.spice = {};
7
8require('dotenv').config();
9
10var validate = require('koa-validation');
11var bodyParser = require('koa-bodyparser');
12const koaBody = require('koa-body');
13spice.root_path = path.resolve('./build/');
14spice.module_root_path = path.resolve(__dirname);
15import Event from './events/Event';
16import Model from './models/SpiceModel';
17import Crypt from './utility/Crypt';
18import Serializer from './utility/Serializer';
19import RestHelper from './utility/RestHelper';
20import Status from '../cli/lib/status';
21import Mail from './mail/Mail';
22import MailDebug from './mail/providers/Debug';
23import MailFile from './mail/providers/File';
24
25
26const convert = require('koa-convert');
27
28spice.classes = {};
29spice.classes.Event = Event;
30spice.classes.Model = Model;
31spice.classes.Crypt = Crypt;
32spice.classes.Serializer = Serializer;
33spice.classes.RestHelper = RestHelper;
34spice.classes.validate = validate;
35spice.classes.Mail = Mail;
36spice.classes.mail = {providers:{}};
37spice.classes.mail.providers.Debug = MailDebug;
38spice.classes.mail.providers.File = MailFile;
39export let status = Status;
40export class Spice {
41 constructor() {
42
43 }
44
45 async init(app){
46 try{
47 app.use(cors());
48 require('koa-qs')(app, 'extended');
49 app.use(koaBody({formLimit:"1gb", multipart: true, formidable:{uploadDir: './storage/uploads'},}));
50 app.use(convert(validate()));
51 spice.app = app;
52 spice.config = await require('./loaders/config')();
53 spice.io = io;
54 require('./loaders');
55 io.attach(app);
56 return spice;
57 }catch(e){
58 console.log(e.stack);
59 }
60 }
61
62 async init_spa(vue){
63 try{
64 window.spice = {};
65 //window.config = await require('./loaders/config')();
66 }catch(e){
67 console.log(e.stack)
68 }
69 }
70}
71
72export default Spice;
\No newline at end of file