Initial commit

This commit is contained in:
abrendan
2023-11-30 14:15:19 +00:00
commit e4599df811
5457 changed files with 500139 additions and 0 deletions

49
node_modules/server/plugins/session/index.js generated vendored Normal file
View File

@@ -0,0 +1,49 @@
const modern = require('../../src/modern');
const server = require('../../server');
const session = require('express-session');
server.session = session;
const RedisStore = require('connect-redis')(server.session);
let sessionMiddleware;
module.exports = {
name: 'session',
options: {
__root: 'secret',
resave: {
default: false
},
saveUninitialized: {
default: true
},
cookie: {
default: {}
},
secret: {
type: String,
inherit: 'secret',
env: 'SESSION_SECRET'
},
store: {
env: false
},
redis: {
type: String,
inherit: true,
env: 'REDIS_URL'
}
},
init: ctx => {
if (!ctx.options.session.store && ctx.options.session.redis) {
ctx.options.session.store = new RedisStore({
url: ctx.options.session.redis
});
}
sessionMiddleware = session(ctx.options.session);
},
before: ctx => modern(sessionMiddleware)(ctx),
launch: ctx => {
ctx.io.use(function(socket, next) {
sessionMiddleware(socket.request, socket.request.res || {}, next);
});
}
};

36
node_modules/server/plugins/session/unit.test.js generated vendored Normal file
View File

@@ -0,0 +1,36 @@
const server = require('server');
const run = require('server/test/run');
const { get } = require('server/router');
const send = require('server/reply/send');
describe('static plugin', () => {
it('can handle sessions', async () => {
return run({ public: 'test' }, [
get('/a', ctx => {
ctx.session.page = 'pageA';
return send('');
}),
get('/b', ctx => send(ctx.session.page))
]).alive(async api => {
expect((await api.get('/a')).body).toEqual('');
expect((await api.get('/b')).body).toEqual('pageA');
});
});
it('persists the session', async () => {
const mid = ctx => {
ctx.session.counter = (ctx.session.counter || 0) + 1;
return 'n' + ctx.session.counter;
};
return run(mid).alive(async api => {
for (let i = 0; i < 3; i++) {
const res = await api.get('/');
expect(res.body).toBe('n' + (i + 1));
}
});
});
it('has the session for creating stores', () => {
expect(server.session).toHaveProperty('Store', jasmine.any(Function));
});
});