diff --git a/storage/src/Database.ts b/storage/src/Database.ts index 8a16b94..ec52674 100644 --- a/storage/src/Database.ts +++ b/storage/src/Database.ts @@ -2,6 +2,7 @@ import { Common } from "@neo-screeps/common"; import fs from "fs"; import _ from "lodash"; import Loki, { Collection } from "lokijs"; +import { BulkData, CallBack, Data, FindOps, Method } from "@/types"; const common = new Common(); const config = common.configManager.config; diff --git a/storage/src/PubSub.ts b/storage/src/PubSub.ts index cc673cf..830bd12 100644 --- a/storage/src/PubSub.ts +++ b/storage/src/PubSub.ts @@ -1,4 +1,5 @@ import EventEmitter from "events"; +import { CallBack } from "@/types"; export class PubSub { private subs: [ diff --git a/storage/src/Queue.ts b/storage/src/Queue.ts index 68549fb..27a9349 100644 --- a/storage/src/Queue.ts +++ b/storage/src/Queue.ts @@ -1,6 +1,7 @@ import EventEmitter from "events"; import { PubSub } from "@/PubSub"; import _ from "lodash"; +import { CallBack, QueueName } from "@/types"; class QueueObj { public pending: string[] = []; diff --git a/storage/src/types.d.ts b/storage/src/types.ts similarity index 54% rename from storage/src/types.d.ts rename to storage/src/types.ts index d577b5e..97b5e8e 100644 --- a/storage/src/types.d.ts +++ b/storage/src/types.ts @@ -1,4 +1,10 @@ -type Data = { +import EventEmitter from "events"; + +export type Data = { + [propName: string]: DataType; +} & { + [op in keyof LokiOps]?: DataType; +} & { $set?: { [key: string]: DataType }; $merge?: { [key: string]: DataType }; $inc?: { [key: string]: DataType }; @@ -9,33 +15,31 @@ type Data = { $or?: [DataType, DataType]; $not?: [DataType, DataType]; _id?: string; - [op: keyof LokiOps]: DataType; - [propName: string]: DataType; }; -type CallBack = ( +export type CallBack = ( message: string | null, obj?: string | boolean | number | object, ) => void; -type DataType = object | number | string | null | Data; +export type DataType = object | number | string | null | Data; -type Method = "insert" | "find" | "findOne" | "count" | "removeWhere"; +export type Method = "insert" | "find" | "findOne" | "count" | "removeWhere"; -type BulkData = { op: BulkOp; id?: string; update?: Data; data?: Data }; +export type BulkData = { op: BulkOp; id?: string; update?: Data; data?: Data }; -type BulkOp = "update" | "insert" | "remove"; +export type BulkOp = "update" | "insert" | "remove"; -type FindOps = { +export type FindOps = { sort?: { [data: string]: number }; offset?: number; limit?: number; }; -type QueueObj = { +export type QueueObj = { pending: []; processing: []; emitter: EventEmitter; }; -type QueueName = "usersLegacy" | "usersIvm" | "rooms"; +export type QueueName = "usersLegacy" | "usersIvm" | "rooms";