mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-04-23 17:06:16 -04:00
Added typescript to etherpad
* Fixed determining file extension. * Added ts-node * Fixed backend tests. * Fixed frontend test runs. * Fixed tests. * Use script approach for starting etherpad. * Change directory to src. * Fixed env. * Change directory * Fixed build arg. * Fixed docker build. * Fixed. * Fixed cypress file path. * Fixed. * Use latest node container. * Fixed windows workflow. * Use tsx and optimized docker image. * Added workflow for type checks. * Fixed. * Added tsconfig. * Converted more files to typescript. * Removed commented keys. * Typed caching middleware. * Added script for checking the types. * Moved SecretRotator to typescript. * Fixed npm installation and moved to types folder. * Use better scripts for watching typescript changes. * Update windows.yml * Fixed order of npm installation. * Converted i18n. * Added more types. * Added more types. * Fixed import. * Fixed tests. * Fixed tests. * Fixed type checking test. * Fixed stats * Added express types. * fixed.
This commit is contained in:
parent
c3202284bc
commit
ead3c0ea38
74 changed files with 1259 additions and 612 deletions
|
@ -24,7 +24,7 @@
|
|||
const ueberDB = require('ueberdb2');
|
||||
const settings = require('../utils/Settings');
|
||||
const log4js = require('log4js');
|
||||
const stats = require('../stats');
|
||||
const stats = require('../stats')
|
||||
|
||||
const logger = log4js.getLogger('ueberDB');
|
||||
|
||||
|
@ -47,13 +47,13 @@ exports.init = async () => {
|
|||
}
|
||||
for (const fn of ['get', 'set', 'findKeys', 'getSub', 'setSub', 'remove']) {
|
||||
const f = exports.db[fn];
|
||||
exports[fn] = async (...args) => await f.call(exports.db, ...args);
|
||||
exports[fn] = async (...args:string[]) => await f.call(exports.db, ...args);
|
||||
Object.setPrototypeOf(exports[fn], Object.getPrototypeOf(f));
|
||||
Object.defineProperties(exports[fn], Object.getOwnPropertyDescriptors(f));
|
||||
}
|
||||
};
|
||||
|
||||
exports.shutdown = async (hookName, context) => {
|
||||
exports.shutdown = async (hookName: string, context:any) => {
|
||||
if (exports.db != null) await exports.db.close();
|
||||
exports.db = null;
|
||||
logger.log('Database closed');
|
|
@ -34,9 +34,10 @@ class SessionStore extends Store {
|
|||
for (const {timeout} of this._expirations.values()) clearTimeout(timeout);
|
||||
}
|
||||
|
||||
async _updateExpirations(sid, sess, updateDbExp = true) {
|
||||
async _updateExpirations(sid: string, sess: any, updateDbExp = true) {
|
||||
const exp = this._expirations.get(sid) || {};
|
||||
clearTimeout(exp.timeout);
|
||||
// @ts-ignore
|
||||
const {cookie: {expires} = {}} = sess || {};
|
||||
if (expires) {
|
||||
const sessExp = new Date(expires).getTime();
|
||||
|
@ -63,23 +64,23 @@ class SessionStore extends Store {
|
|||
return sess;
|
||||
}
|
||||
|
||||
async _write(sid, sess) {
|
||||
async _write(sid: string, sess: any) {
|
||||
await DB.set(`sessionstorage:${sid}`, sess);
|
||||
}
|
||||
|
||||
async _get(sid) {
|
||||
async _get(sid: string) {
|
||||
logger.debug(`GET ${sid}`);
|
||||
const s = await DB.get(`sessionstorage:${sid}`);
|
||||
return await this._updateExpirations(sid, s);
|
||||
}
|
||||
|
||||
async _set(sid, sess) {
|
||||
async _set(sid: string, sess:any) {
|
||||
logger.debug(`SET ${sid}`);
|
||||
sess = await this._updateExpirations(sid, sess);
|
||||
if (sess != null) await this._write(sid, sess);
|
||||
}
|
||||
|
||||
async _destroy(sid) {
|
||||
async _destroy(sid:string) {
|
||||
logger.debug(`DESTROY ${sid}`);
|
||||
clearTimeout((this._expirations.get(sid) || {}).timeout);
|
||||
this._expirations.delete(sid);
|
||||
|
@ -89,7 +90,7 @@ class SessionStore extends Store {
|
|||
// Note: express-session might call touch() before it calls set() for the first time. Ideally this
|
||||
// would behave like set() in that case but it's OK if it doesn't -- express-session will call
|
||||
// set() soon enough.
|
||||
async _touch(sid, sess) {
|
||||
async _touch(sid: string, sess:any) {
|
||||
logger.debug(`TOUCH ${sid}`);
|
||||
sess = await this._updateExpirations(sid, sess, false);
|
||||
if (sess == null) return; // Already expired.
|
Loading…
Add table
Add a link
Reference in a new issue