axiodb 2.22.71 → 2.25.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Services/CRUD Operation/Delete.operation.js +2 -2
- package/lib/Services/CRUD Operation/Delete.operation.js.map +1 -1
- package/lib/Services/Database/database.operation.d.ts +29 -1
- package/lib/Services/Database/database.operation.js +88 -14
- package/lib/Services/Database/database.operation.js.map +1 -1
- package/lib/config/Interfaces/Operation/database.operation.interface.d.ts +1 -1
- package/lib/server/config/keys.d.ts +9 -9
- package/lib/server/config/keys.js +109 -31
- package/lib/server/config/keys.js.map +1 -1
- package/lib/server/controller/Collections/Collection.controller.d.ts +33 -0
- package/lib/server/controller/Collections/Collection.controller.js +90 -1
- package/lib/server/controller/Collections/Collection.controller.js.map +1 -1
- package/lib/server/controller/Operation/CRUD.controller.d.ts +69 -0
- package/lib/server/controller/Operation/CRUD.controller.js +196 -0
- package/lib/server/controller/Operation/CRUD.controller.js.map +1 -0
- package/lib/server/helper/filesCounterInFolder.helper.d.ts +16 -0
- package/lib/server/helper/filesCounterInFolder.helper.js +49 -0
- package/lib/server/helper/filesCounterInFolder.helper.js.map +1 -0
- package/lib/server/public/AxioControl/.vite/manifest.json +2 -2
- package/lib/server/public/AxioControl/.vite/ssr-manifest.json +266 -4
- package/lib/server/public/AxioControl/assets/index-CAFsNx4j.js +81 -0
- package/lib/server/public/AxioControl/assets/index-xtzT-Znx.css +1 -0
- package/lib/server/public/AxioControl/index.html +2 -2
- package/lib/server/public/AxioControl/sw.js +1 -1
- package/lib/server/router/Router.js +12 -0
- package/lib/server/router/Router.js.map +1 -1
- package/lib/server/router/Routers/Collection.routes.d.ts +7 -0
- package/lib/server/router/Routers/Collection.routes.js +29 -0
- package/lib/server/router/Routers/Collection.routes.js.map +1 -0
- package/lib/server/router/Routers/Operation.routes.d.ts +7 -0
- package/lib/server/router/Routers/Operation.routes.js +31 -0
- package/lib/server/router/Routers/Operation.routes.js.map +1 -0
- package/package.json +1 -1
- package/lib/server/public/AxioControl/assets/index-BHqXlmHD.css +0 -1
- package/lib/server/public/AxioControl/assets/index-BpapO_fH.js +0 -56
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Collection.controller.js","sourceRoot":"","sources":["../../../../source/server/controller/Collections/Collection.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,mCAAqC;AAErC,iGAE6C;
|
|
1
|
+
{"version":3,"file":"Collection.controller.js","sourceRoot":"","sources":["../../../../source/server/controller/Collections/Collection.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { AxioDB } from "../../../Services/Indexation.operation";
|
|
2
|
+
import { FastifyRequest } from "fastify";
|
|
3
|
+
/**
|
|
4
|
+
* CRUD Controller class for handling database operations
|
|
5
|
+
*/
|
|
6
|
+
export default class CRUDController {
|
|
7
|
+
private AxioDBInstance;
|
|
8
|
+
constructor(AxioDBInstance: AxioDB);
|
|
9
|
+
/**
|
|
10
|
+
* Retrieves all documents from a specified collection with pagination.
|
|
11
|
+
*
|
|
12
|
+
* @param request - The Fastify request object containing query parameters
|
|
13
|
+
* @param request.query.dbName - The name of the database to query
|
|
14
|
+
* @param request.query.collectionName - The name of the collection to query
|
|
15
|
+
* @param request.query.page - The page number for pagination (starts from 1)
|
|
16
|
+
*
|
|
17
|
+
* @returns A response object with:
|
|
18
|
+
* - Status code 200 and documents data if successful
|
|
19
|
+
* - Status code 400 if database name, collection name, or page number is invalid
|
|
20
|
+
* - Status code 404 if no documents are found
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* // GET /documents?dbName=users&collectionName=profiles&page=1
|
|
24
|
+
*/
|
|
25
|
+
getAllDocuments(request: FastifyRequest): Promise<import("../../helper/responseBuilder.helper").ResponseBuilder>;
|
|
26
|
+
/**
|
|
27
|
+
* Creates a new document in a specified collection within a database.
|
|
28
|
+
*
|
|
29
|
+
* @param request - The Fastify request object containing query parameters and body data
|
|
30
|
+
* @param request.query - Query parameters containing database and collection names
|
|
31
|
+
* @param request.query.dbName - The name of the database to store the document in
|
|
32
|
+
* @param request.query.collectionName - The name of the collection to store the document in
|
|
33
|
+
* @param request.body - The document data to be inserted
|
|
34
|
+
*
|
|
35
|
+
* @returns A response object with appropriate status code and message:
|
|
36
|
+
* - 201 (Created) with the inserted document data on success
|
|
37
|
+
* - 400 (Bad Request) if any required parameters are invalid
|
|
38
|
+
* - 500 (Internal Server Error) if document insertion fails
|
|
39
|
+
*
|
|
40
|
+
* @throws May throw exceptions if database or collection operations fail
|
|
41
|
+
*/
|
|
42
|
+
createNewDocument(request: FastifyRequest): Promise<import("../../helper/responseBuilder.helper").ResponseBuilder>;
|
|
43
|
+
/**
|
|
44
|
+
* Update an existing document in a specified collection within a database.
|
|
45
|
+
* @param request - The Fastify request object containing query parameters and body data
|
|
46
|
+
* @param request.query - Query parameters containing database, collection, and document IDs
|
|
47
|
+
* @param request.query.dbName - The name of the database
|
|
48
|
+
* @param request.query.collectionName - The name of the collection
|
|
49
|
+
* @param request.query.documentId - The ID of the document to update
|
|
50
|
+
* @param request.body - The updated document data
|
|
51
|
+
*/
|
|
52
|
+
updateDocument(request: FastifyRequest): Promise<import("../../helper/responseBuilder.helper").ResponseBuilder>;
|
|
53
|
+
/**
|
|
54
|
+
* Deletes a document from a specified collection in a database.
|
|
55
|
+
*
|
|
56
|
+
* @param request - The Fastify request object containing query parameters
|
|
57
|
+
* @param request.query.dbName - The name of the database
|
|
58
|
+
* @param request.query.collectionName - The name of the collection
|
|
59
|
+
* @param request.query.documentId - The ID of the document to delete
|
|
60
|
+
*
|
|
61
|
+
* @returns A response object with appropriate status code and message:
|
|
62
|
+
* - 200 (OK) if the document was successfully deleted
|
|
63
|
+
* - 400 (BAD REQUEST) if any required parameters are missing or invalid
|
|
64
|
+
* - 500 (INTERNAL SERVER ERROR) if the deletion operation fails
|
|
65
|
+
*
|
|
66
|
+
* @throws May throw exceptions during database operations
|
|
67
|
+
*/
|
|
68
|
+
deleteDocument(request: FastifyRequest): Promise<import("../../helper/responseBuilder.helper").ResponseBuilder>;
|
|
69
|
+
}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
16
|
+
/* eslint-disable prefer-const */
|
|
17
|
+
const outers_1 = require("outers");
|
|
18
|
+
const responseBuilder_helper_1 = __importDefault(require("../../helper/responseBuilder.helper"));
|
|
19
|
+
/**
|
|
20
|
+
* CRUD Controller class for handling database operations
|
|
21
|
+
*/
|
|
22
|
+
class CRUDController {
|
|
23
|
+
constructor(AxioDBInstance) {
|
|
24
|
+
this.AxioDBInstance = AxioDBInstance;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Retrieves all documents from a specified collection with pagination.
|
|
28
|
+
*
|
|
29
|
+
* @param request - The Fastify request object containing query parameters
|
|
30
|
+
* @param request.query.dbName - The name of the database to query
|
|
31
|
+
* @param request.query.collectionName - The name of the collection to query
|
|
32
|
+
* @param request.query.page - The page number for pagination (starts from 1)
|
|
33
|
+
*
|
|
34
|
+
* @returns A response object with:
|
|
35
|
+
* - Status code 200 and documents data if successful
|
|
36
|
+
* - Status code 400 if database name, collection name, or page number is invalid
|
|
37
|
+
* - Status code 404 if no documents are found
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* // GET /documents?dbName=users&collectionName=profiles&page=1
|
|
41
|
+
*/
|
|
42
|
+
getAllDocuments(request) {
|
|
43
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
+
// Extracting parameters from the request body
|
|
45
|
+
let { dbName, collectionName, page } = request.query;
|
|
46
|
+
page = parseInt(String(page));
|
|
47
|
+
// Validating extracted parameters
|
|
48
|
+
if (!dbName || typeof dbName !== "string") {
|
|
49
|
+
return (0, responseBuilder_helper_1.default)(outers_1.StatusCodes.BAD_REQUEST, "Invalid database name");
|
|
50
|
+
}
|
|
51
|
+
if (!collectionName || typeof collectionName !== "string") {
|
|
52
|
+
return (0, responseBuilder_helper_1.default)(outers_1.StatusCodes.BAD_REQUEST, "Invalid collection name");
|
|
53
|
+
}
|
|
54
|
+
if (typeof page !== "number" || page < 1) {
|
|
55
|
+
return (0, responseBuilder_helper_1.default)(outers_1.StatusCodes.BAD_REQUEST, "Invalid page number");
|
|
56
|
+
}
|
|
57
|
+
const skip = (page - 1) * 10;
|
|
58
|
+
const databaseInstance = yield this.AxioDBInstance.createDB(dbName);
|
|
59
|
+
const DB_Collection = yield databaseInstance.createCollection(collectionName);
|
|
60
|
+
// Find All Data
|
|
61
|
+
const allDocuments = yield DB_Collection.query({})
|
|
62
|
+
.Limit(10)
|
|
63
|
+
.Sort({ updatedAt: -1 })
|
|
64
|
+
.Skip(skip)
|
|
65
|
+
.exec();
|
|
66
|
+
if (!allDocuments.data) {
|
|
67
|
+
return (0, responseBuilder_helper_1.default)(outers_1.StatusCodes.NOT_FOUND, "No documents found");
|
|
68
|
+
}
|
|
69
|
+
return (0, responseBuilder_helper_1.default)(outers_1.StatusCodes.OK, "Documents retrieved successfully", allDocuments);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Creates a new document in a specified collection within a database.
|
|
74
|
+
*
|
|
75
|
+
* @param request - The Fastify request object containing query parameters and body data
|
|
76
|
+
* @param request.query - Query parameters containing database and collection names
|
|
77
|
+
* @param request.query.dbName - The name of the database to store the document in
|
|
78
|
+
* @param request.query.collectionName - The name of the collection to store the document in
|
|
79
|
+
* @param request.body - The document data to be inserted
|
|
80
|
+
*
|
|
81
|
+
* @returns A response object with appropriate status code and message:
|
|
82
|
+
* - 201 (Created) with the inserted document data on success
|
|
83
|
+
* - 400 (Bad Request) if any required parameters are invalid
|
|
84
|
+
* - 500 (Internal Server Error) if document insertion fails
|
|
85
|
+
*
|
|
86
|
+
* @throws May throw exceptions if database or collection operations fail
|
|
87
|
+
*/
|
|
88
|
+
createNewDocument(request) {
|
|
89
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
90
|
+
// Extracting parameters from the request body
|
|
91
|
+
let { dbName, collectionName } = request.query;
|
|
92
|
+
const documentData = request.body;
|
|
93
|
+
// Validating extracted parameters
|
|
94
|
+
if (!dbName || typeof dbName !== "string") {
|
|
95
|
+
return (0, responseBuilder_helper_1.default)(outers_1.StatusCodes.BAD_REQUEST, "Invalid database name");
|
|
96
|
+
}
|
|
97
|
+
if (!collectionName || typeof collectionName !== "string") {
|
|
98
|
+
return (0, responseBuilder_helper_1.default)(outers_1.StatusCodes.BAD_REQUEST, "Invalid collection name");
|
|
99
|
+
}
|
|
100
|
+
if (!documentData || typeof documentData !== "object") {
|
|
101
|
+
return (0, responseBuilder_helper_1.default)(outers_1.StatusCodes.BAD_REQUEST, "Invalid document data");
|
|
102
|
+
}
|
|
103
|
+
const databaseInstance = yield this.AxioDBInstance.createDB(dbName);
|
|
104
|
+
const DB_Collection = yield databaseInstance.createCollection(collectionName);
|
|
105
|
+
// Insert the new document
|
|
106
|
+
const insertResult = yield DB_Collection.insert(documentData);
|
|
107
|
+
if (!insertResult || insertResult.statusCode !== outers_1.StatusCodes.OK) {
|
|
108
|
+
return (0, responseBuilder_helper_1.default)(outers_1.StatusCodes.INTERNAL_SERVER_ERROR, "Failed to insert document");
|
|
109
|
+
}
|
|
110
|
+
return (0, responseBuilder_helper_1.default)(outers_1.StatusCodes.CREATED, "Document created successfully", insertResult.data);
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Update an existing document in a specified collection within a database.
|
|
115
|
+
* @param request - The Fastify request object containing query parameters and body data
|
|
116
|
+
* @param request.query - Query parameters containing database, collection, and document IDs
|
|
117
|
+
* @param request.query.dbName - The name of the database
|
|
118
|
+
* @param request.query.collectionName - The name of the collection
|
|
119
|
+
* @param request.query.documentId - The ID of the document to update
|
|
120
|
+
* @param request.body - The updated document data
|
|
121
|
+
*/
|
|
122
|
+
updateDocument(request) {
|
|
123
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
124
|
+
// Extracting parameters from the request body
|
|
125
|
+
let { dbName, collectionName, documentId } = request.query;
|
|
126
|
+
const updatedData = request.body;
|
|
127
|
+
// Validating extracted parameters
|
|
128
|
+
if (!dbName || typeof dbName !== "string") {
|
|
129
|
+
return (0, responseBuilder_helper_1.default)(outers_1.StatusCodes.BAD_REQUEST, "Invalid database name");
|
|
130
|
+
}
|
|
131
|
+
if (!collectionName || typeof collectionName !== "string") {
|
|
132
|
+
return (0, responseBuilder_helper_1.default)(outers_1.StatusCodes.BAD_REQUEST, "Invalid collection name");
|
|
133
|
+
}
|
|
134
|
+
if (!documentId || typeof documentId !== "string") {
|
|
135
|
+
return (0, responseBuilder_helper_1.default)(outers_1.StatusCodes.BAD_REQUEST, "Invalid document ID");
|
|
136
|
+
}
|
|
137
|
+
if (!updatedData || typeof updatedData !== "object") {
|
|
138
|
+
return (0, responseBuilder_helper_1.default)(outers_1.StatusCodes.BAD_REQUEST, "Invalid updated data");
|
|
139
|
+
}
|
|
140
|
+
const databaseInstance = yield this.AxioDBInstance.createDB(dbName);
|
|
141
|
+
const DB_Collection = yield databaseInstance.createCollection(collectionName);
|
|
142
|
+
// Update the document
|
|
143
|
+
const updateResult = yield DB_Collection.update({
|
|
144
|
+
documentId: documentId,
|
|
145
|
+
}).UpdateOne(updatedData);
|
|
146
|
+
if (!updateResult || updateResult.statusCode !== outers_1.StatusCodes.OK) {
|
|
147
|
+
return (0, responseBuilder_helper_1.default)(outers_1.StatusCodes.INTERNAL_SERVER_ERROR, "Failed to update document");
|
|
148
|
+
}
|
|
149
|
+
return (0, responseBuilder_helper_1.default)(outers_1.StatusCodes.OK, "Document updated successfully", updateResult.data);
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Deletes a document from a specified collection in a database.
|
|
154
|
+
*
|
|
155
|
+
* @param request - The Fastify request object containing query parameters
|
|
156
|
+
* @param request.query.dbName - The name of the database
|
|
157
|
+
* @param request.query.collectionName - The name of the collection
|
|
158
|
+
* @param request.query.documentId - The ID of the document to delete
|
|
159
|
+
*
|
|
160
|
+
* @returns A response object with appropriate status code and message:
|
|
161
|
+
* - 200 (OK) if the document was successfully deleted
|
|
162
|
+
* - 400 (BAD REQUEST) if any required parameters are missing or invalid
|
|
163
|
+
* - 500 (INTERNAL SERVER ERROR) if the deletion operation fails
|
|
164
|
+
*
|
|
165
|
+
* @throws May throw exceptions during database operations
|
|
166
|
+
*/
|
|
167
|
+
deleteDocument(request) {
|
|
168
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
169
|
+
// Extracting parameters from the request body
|
|
170
|
+
let { dbName, collectionName, documentId } = request.query;
|
|
171
|
+
// Validating extracted parameters
|
|
172
|
+
if (!dbName || typeof dbName !== "string") {
|
|
173
|
+
return (0, responseBuilder_helper_1.default)(outers_1.StatusCodes.BAD_REQUEST, "Invalid database name");
|
|
174
|
+
}
|
|
175
|
+
if (!collectionName || typeof collectionName !== "string") {
|
|
176
|
+
return (0, responseBuilder_helper_1.default)(outers_1.StatusCodes.BAD_REQUEST, "Invalid collection name");
|
|
177
|
+
}
|
|
178
|
+
if (!documentId || typeof documentId !== "string") {
|
|
179
|
+
return (0, responseBuilder_helper_1.default)(outers_1.StatusCodes.BAD_REQUEST, "Invalid document ID");
|
|
180
|
+
}
|
|
181
|
+
const databaseInstance = yield this.AxioDBInstance.createDB(dbName);
|
|
182
|
+
const DB_Collection = yield databaseInstance.createCollection(collectionName);
|
|
183
|
+
// Delete the document
|
|
184
|
+
const deleteResult = yield DB_Collection.delete({
|
|
185
|
+
documentId: documentId,
|
|
186
|
+
}).deleteOne();
|
|
187
|
+
console.log(deleteResult);
|
|
188
|
+
if (!deleteResult || deleteResult.statusCode !== outers_1.StatusCodes.OK) {
|
|
189
|
+
return (0, responseBuilder_helper_1.default)(outers_1.StatusCodes.INTERNAL_SERVER_ERROR, "Failed to delete document");
|
|
190
|
+
}
|
|
191
|
+
return (0, responseBuilder_helper_1.default)(outers_1.StatusCodes.OK, "Document deleted successfully");
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
exports.default = CRUDController;
|
|
196
|
+
//# sourceMappingURL=CRUD.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CRUD.controller.js","sourceRoot":"","sources":["../../../../source/server/controller/Operation/CRUD.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recursively counts the number of files in a folder and its subfolders.
|
|
3
|
+
*
|
|
4
|
+
* This function traverses through the directory structure starting from the provided folder path
|
|
5
|
+
* and counts all files encountered during the traversal. It does not count directories themselves.
|
|
6
|
+
*
|
|
7
|
+
* @param folderPath - The path to the folder to count files in
|
|
8
|
+
* @returns A promise that resolves to the total number of files found
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* const count = await countFilesRecursive('/path/to/folder');
|
|
13
|
+
* console.log(`Total files: ${count}`);
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export default function countFilesRecursive(folderPath: string): Promise<number>;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.default = countFilesRecursive;
|
|
16
|
+
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
17
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
18
|
+
/**
|
|
19
|
+
* Recursively counts the number of files in a folder and its subfolders.
|
|
20
|
+
*
|
|
21
|
+
* This function traverses through the directory structure starting from the provided folder path
|
|
22
|
+
* and counts all files encountered during the traversal. It does not count directories themselves.
|
|
23
|
+
*
|
|
24
|
+
* @param folderPath - The path to the folder to count files in
|
|
25
|
+
* @returns A promise that resolves to the total number of files found
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* const count = await countFilesRecursive('/path/to/folder');
|
|
30
|
+
* console.log(`Total files: ${count}`);
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
function countFilesRecursive(folderPath) {
|
|
34
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
let count = 0;
|
|
36
|
+
const items = yield promises_1.default.readdir(folderPath, { withFileTypes: true });
|
|
37
|
+
for (const item of items) {
|
|
38
|
+
const fullPath = node_path_1.default.join(folderPath, item.name);
|
|
39
|
+
if (item.isFile()) {
|
|
40
|
+
count++;
|
|
41
|
+
}
|
|
42
|
+
else if (item.isDirectory()) {
|
|
43
|
+
count += yield countFilesRecursive(fullPath);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return count;
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=filesCounterInFolder.helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesCounterInFolder.helper.js","sourceRoot":"","sources":["../../../source/server/helper/filesCounterInFolder.helper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAkBA,sCAaC;AA/BD,gEAAkC;AAClC,0DAA6B;AAE7B;;;;;;;;;;;;;;GAcG;AACH,SAA8B,mBAAmB,CAAC,UAAkB;;QAClE,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,KAAK,GAAG,MAAM,kBAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAEpE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;gBAClB,KAAK,EAAE,CAAC;YACV,CAAC;iBAAM,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC9B,KAAK,IAAI,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CAAA"}
|