Skip to content

Commit 11bbe02

Browse files
committed
Reformat
1 parent 34a32d6 commit 11bbe02

22 files changed

Lines changed: 1406 additions & 961 deletions

build.js

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,28 @@
11
import { build } from "esbuild";
22

3-
build({
4-
entryPoints: ["./src/index.ts"],
5-
outfile: "dist/build.js",
6-
bundle: true,
7-
platform: "node",
8-
logLevel: "info",
9-
})
3+
async function buildProject() {
4+
try {
5+
await build({
6+
entryPoints: ["./src/index.ts"],
7+
outfile: "dist/build.js",
8+
bundle: true,
9+
platform: "node", // Ensures Node.js standard libs are included
10+
target: ["node14"], // Use `node14` for best compatibility with FiveM
11+
sourcemap: false,
12+
minify: false,
13+
14+
// Avoid bundling native or optional Node.js deps
15+
external: [
16+
"bson", // Used by mongodb
17+
"dns", "fs", "net", "tls", "buffer", "crypto", "stream", "zlib", "http", "https"
18+
],
19+
});
20+
21+
console.log("✅ Build succeeded!");
22+
} catch (error) {
23+
console.error("❌ Build failed:", error);
24+
process.exit(1);
25+
}
26+
}
27+
28+
buildProject();

package.json

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,12 @@
99
"watch": "esbuild --watch --bundle --platform=node --target=node16.9.1 src/index.ts --outfile=dist/build.js"
1010
},
1111
"devDependencies": {
12-
"esbuild": "^0.20.0",
13-
"typescript": "^5.3.3"
12+
"esbuild": "^0.25.5",
13+
"typescript": "^5.8.3"
1414
},
1515
"dependencies": {
16-
"@citizenfx/server": "^2.0.7401-1",
17-
"@types/mongodb": "^4.0.7",
18-
"@types/node": "^20.11.15",
19-
"perf_hooks": "^0.0.1"
16+
"@citizenfx/server": "^2.0.14862-1",
17+
"@types/node": "^24.0.4",
18+
"mongodb": "^4.15.0"
2019
}
2120
}

src/database/index.ts

Lines changed: 0 additions & 73 deletions
This file was deleted.

src/index.ts

Lines changed: 11 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,19 @@
1-
import { sleep } from "./utils/sleep";
2-
import { connectToDatabase } from "./database";
1+
import * as TheQueries from "./query/queries";
32
import { withTiming } from "./utils/timer";
4-
import { Count } from "./query/count";
5-
import { Find } from "./query/find";
6-
import { FindOne } from "./query/findOne";
7-
import { FindMany } from "./query/findMany";
8-
import { UpdateOne } from "./query/updateOne";
9-
import { InsertOne } from "./query/insertOne";
10-
import { BulkWrite } from "./query/bulkWrite";
11-
import { DeleteOne } from "./query/deleteOne";
12-
import { InsertMany } from "./query/insertMany";
13-
import { UpdateMany } from "./query/updateMany";
14-
import { ReplaceOne } from "./query/replaceOne";
15-
import { DeleteMany } from "./query/deleteMany";
16-
import { CreateIndex } from "./query/createIndex";
17-
import { FindOneAndDelete } from "./query/findOneAndDelete";
18-
import { FindAll } from "./query/findAll";
193

204
export const credentials: string = GetConvar("mongoCredentials", "null");
215
export const resourceName: string = GetCurrentResourceName();
226

23-
async function initializeMongo() {
24-
while (true) {
25-
try {
26-
await connectToDatabase();
27-
console.log("^2MongoDB connection established^7");
28-
break; // exit loop on successful connection
29-
} catch (error: any) {
30-
console.error(`^1MongoDB connection failed: ${error.message}, retrying in 30 seconds...^7`);
31-
await sleep(30000);
32-
}
7+
// Wrap each query function with timing
8+
for (const [name, fn] of Object.entries(TheQueries)) {
9+
if (typeof fn === "function") {
10+
exports(name, async (...args: any[]) => {
11+
return withTiming(() => fn(...args), { label: name });
12+
});
3313
}
3414
}
3515

36-
// Run the MongoDB initialization on resource start
37-
initializeMongo().catch((err) => {
38-
console.error("^1Unhandled error during MongoDB initialization:^7", err);
39-
});
40-
41-
// Export all query functions for FiveM usage
42-
const queries = {
43-
Count,
44-
Find,
45-
FindOne,
46-
FindMany,
47-
FindAll,
48-
FindOneAndDelete,
49-
InsertOne,
50-
InsertMany,
51-
UpdateOne,
52-
UpdateMany,
53-
ReplaceOne,
54-
DeleteOne,
55-
DeleteMany,
56-
BulkWrite,
57-
CreateIndex,
58-
};
59-
60-
// Export each with timing
61-
for (const [name, fn] of Object.entries(queries)) {
62-
exports(name, (...args: any[]) => withTiming(name, () => fn(...args)));
63-
}
64-
16+
// Optional: log ready message
17+
setTimeout(() => {
18+
console.log("^2MongoDB module loaded and ready^7");
19+
}, 500);

src/query/bulkWrite.ts

Lines changed: 0 additions & 27 deletions
This file was deleted.

src/query/count.ts

Lines changed: 0 additions & 33 deletions
This file was deleted.

src/query/createIndex.ts

Lines changed: 0 additions & 26 deletions
This file was deleted.

src/query/deleteMany.ts

Lines changed: 0 additions & 28 deletions
This file was deleted.

src/query/deleteOne.ts

Lines changed: 0 additions & 40 deletions
This file was deleted.

0 commit comments

Comments
 (0)