升级ts到5版
This commit is contained in:
parent
9032783680
commit
518242e22d
|
|
@ -23,7 +23,7 @@ export declare class AppLoader<ED extends EntityDict & BaseEntityDict, Cxt exten
|
|||
}>;
|
||||
initialize(dropIfExists?: boolean): Promise<void>;
|
||||
getStore(): DbStore<ED, Cxt>;
|
||||
getEndpoints(): [string, "get" | "delete" | "post" | "put", string, (params: Record<string, string>, headers: IncomingHttpHeaders, req: IncomingMessage, body?: any) => Promise<any>][];
|
||||
getEndpoints(): [string, "get" | "post" | "put" | "delete", string, (params: Record<string, string>, headers: IncomingHttpHeaders, req: IncomingMessage, body?: any) => Promise<any>][];
|
||||
startTimers(): void;
|
||||
execStartRoutines(): Promise<void>;
|
||||
execRoutine(routine: (context: Cxt) => Promise<void>): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -93,9 +93,22 @@ class AppLoader extends types_1.AppLoader {
|
|||
this.externalDependencies = require((0, env_1.OAK_EXTERNAL_LIBS_FILEPATH)((0, path_1.join)(path, 'lib')));
|
||||
this.aspectDict = Object.assign({}, index_1.default, this.requireSth('lib/aspects/index'));
|
||||
this.dbStore = new DbStore_1.DbStore(storageSchema, contextBuilder, dbConfig, ActionCascadePathGraph, RelationCascadePathGraph, deducedRelationMap, selectFreeEntities, createFreeEntities, updateFreeEntities);
|
||||
this.contextBuilder = contextBuilder;
|
||||
if (io) {
|
||||
this.dataSubscriber = new DataSubscriber_1.default(io, (scene) => this.contextBuilder(scene)(this.dbStore));
|
||||
this.contextBuilder = (scene) => async (store) => {
|
||||
const context = await contextBuilder(scene)(store);
|
||||
// 注入在提交前向dataSubscribe
|
||||
const originCommit = context.commit;
|
||||
context.commit = async () => {
|
||||
const { opRecords } = context;
|
||||
const userId = context.getCurrentUserId();
|
||||
originCommit.call(context);
|
||||
};
|
||||
return context;
|
||||
};
|
||||
}
|
||||
else {
|
||||
this.contextBuilder = contextBuilder;
|
||||
}
|
||||
}
|
||||
initTriggers() {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { EntityDict } from 'oak-domain/lib/types';
|
||||
import { EntityDict, OpRecord } from 'oak-domain/lib/types';
|
||||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { Server } from 'socket.io';
|
||||
|
|
@ -12,4 +12,5 @@ export default class DataSubscriber<ED extends EntityDict & BaseEntityDict, Cont
|
|||
* 来自外部的socket连接,监听数据变化
|
||||
*/
|
||||
private startup;
|
||||
onDataCommited(records: OpRecord<ED>[], userId?: string): void;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,9 +34,9 @@ class DataSubscriber {
|
|||
data.forEach((ele) => {
|
||||
const { id, entity, filter } = ele;
|
||||
console.log('sub', id, entity, filter);
|
||||
// 尝试select此filter,如果失败说明权限越界
|
||||
// todo
|
||||
const globalId = this.calcEntityFilterID(entity, filter);
|
||||
const rooms = this.io.of("/").adapter.rooms;
|
||||
console.log(rooms);
|
||||
socket.idMap[id] = globalId;
|
||||
socket.join(globalId);
|
||||
});
|
||||
|
|
@ -45,10 +45,7 @@ class DataSubscriber {
|
|||
console.log('unsub', ids);
|
||||
ids.forEach((id) => {
|
||||
const globalId = socket.idMap[id];
|
||||
const rooms = this.io.of("/").adapter.rooms;
|
||||
console.log(rooms);
|
||||
socket.leave(globalId);
|
||||
console.log(rooms);
|
||||
});
|
||||
});
|
||||
socket.on('disconnect', (reason) => {
|
||||
|
|
@ -56,5 +53,7 @@ class DataSubscriber {
|
|||
});
|
||||
});
|
||||
}
|
||||
onDataCommited(records, userId) {
|
||||
}
|
||||
}
|
||||
exports.default = DataSubscriber;
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
export declare type GenerateIdOption = {
|
||||
export type GenerateIdOption = {
|
||||
shuffle?: boolean;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -28,12 +28,12 @@
|
|||
},
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"@types/node": "^17.0.40",
|
||||
"@types/node": "^20.6.0",
|
||||
"@types/node-schedule": "^2.1.0",
|
||||
"@types/uuid": "^8.3.4",
|
||||
"copyfiles": "^2.4.1",
|
||||
"ts-node": "~10.9.1",
|
||||
"tslib": "^2.4.0",
|
||||
"typescript": "^4.7.4"
|
||||
"typescript": "^5.2.2"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,6 +44,9 @@ export default class DataSubscriber<ED extends EntityDict & BaseEntityDict, Cont
|
|||
(ele) => {
|
||||
const { id, entity, filter } = ele;
|
||||
console.log('sub', id, entity, filter);
|
||||
// 尝试select此filter,如果失败说明权限越界
|
||||
// todo
|
||||
|
||||
const globalId = this.calcEntityFilterID(entity, filter);
|
||||
(socket as any).idMap[id] = globalId;
|
||||
socket.join(globalId);
|
||||
|
|
|
|||
|
|
@ -53,6 +53,7 @@
|
|||
// "types": [], /* Type declaration files to be included in compilation. */
|
||||
"allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
|
||||
"esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
|
||||
"skipLibCheck": true,
|
||||
// "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */
|
||||
// "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
|
||||
/* Source Map Options */
|
||||
|
|
|
|||
Loading…
Reference in New Issue