drapcode-utility 2.4.9 → 2.5.0-preview
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.
|
@@ -40,4 +40,8 @@ export declare const removeProjectFromFile: (project: Project) => void;
|
|
|
40
40
|
* @throws {ProjectError} If file operations fail
|
|
41
41
|
*/
|
|
42
42
|
export declare const clearProjectSubfolder: (projectId: string, subfolder: string) => void;
|
|
43
|
+
export declare const clearProjectFilesInSubfolder: (projectId: string, subfolder: string, files: {
|
|
44
|
+
uuid: string;
|
|
45
|
+
slug?: string;
|
|
46
|
+
}[]) => void;
|
|
43
47
|
export {};
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.clearProjectSubfolder = exports.removeProjectFromFile = exports.findProjectFromFile = exports.saveProjectToFile = void 0;
|
|
6
|
+
exports.clearProjectFilesInSubfolder = exports.clearProjectSubfolder = exports.removeProjectFromFile = exports.findProjectFromFile = exports.saveProjectToFile = void 0;
|
|
7
7
|
const fs_1 = require("fs");
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const file_util_1 = require("./file-util");
|
|
@@ -146,7 +146,7 @@ const clearProjectSubfolder = (projectId, subfolder) => {
|
|
|
146
146
|
throw new ProjectError("Sub Folder is required");
|
|
147
147
|
}
|
|
148
148
|
try {
|
|
149
|
-
if ((0, file_util_1.verifyProjectSettingFolder)(projectId)) {
|
|
149
|
+
if (!(0, file_util_1.verifyProjectSettingFolder)(projectId)) {
|
|
150
150
|
return;
|
|
151
151
|
}
|
|
152
152
|
const projectPath = path_1.default.join(filePath, `${PROJECT_PREFIX}${projectId}`, subfolder);
|
|
@@ -159,6 +159,59 @@ const clearProjectSubfolder = (projectId, subfolder) => {
|
|
|
159
159
|
}
|
|
160
160
|
};
|
|
161
161
|
exports.clearProjectSubfolder = clearProjectSubfolder;
|
|
162
|
+
const clearProjectFilesInSubfolder = (projectId, subfolder, files) => {
|
|
163
|
+
if (!projectId) {
|
|
164
|
+
throw new ProjectError("Project ID is required");
|
|
165
|
+
}
|
|
166
|
+
if (!subfolder) {
|
|
167
|
+
throw new ProjectError("Sub Folder is required");
|
|
168
|
+
}
|
|
169
|
+
if (!Array.isArray(files)) {
|
|
170
|
+
throw new ProjectError("Files must be an array");
|
|
171
|
+
}
|
|
172
|
+
try {
|
|
173
|
+
if (!(0, file_util_1.verifyProjectSettingFolder)(projectId)) {
|
|
174
|
+
console.log("Project settings folder does not exist — skipping delete.");
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
const projectPath = path_1.default.join(filePath, `${PROJECT_PREFIX}${projectId}`, subfolder);
|
|
178
|
+
const useSlug = subfolder === "pages";
|
|
179
|
+
deleteFilesInTheSubFolder(projectPath, files, useSlug);
|
|
180
|
+
}
|
|
181
|
+
catch (error) {
|
|
182
|
+
const message = error instanceof Error ? error.message : "Unknown error";
|
|
183
|
+
console.error("Failed to delete files:", message);
|
|
184
|
+
throw new ProjectError(`Failed to delete files: ${message}`);
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
exports.clearProjectFilesInSubfolder = clearProjectFilesInSubfolder;
|
|
188
|
+
const deleteFilesInTheSubFolder = (folderPath, files, useSlug = false) => {
|
|
189
|
+
for (const file of files) {
|
|
190
|
+
let fileName;
|
|
191
|
+
if (useSlug) {
|
|
192
|
+
fileName = file.name ? `${file.name}.json`.toLowerCase() : undefined;
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
fileName = file.uuid ? `${file.uuid}.json` : undefined;
|
|
196
|
+
}
|
|
197
|
+
if (!fileName) {
|
|
198
|
+
console.log("Invalid file, skipping:", file);
|
|
199
|
+
continue;
|
|
200
|
+
}
|
|
201
|
+
const filePathToDelete = path_1.default.join(folderPath, fileName);
|
|
202
|
+
if ((0, fs_1.existsSync)(filePathToDelete)) {
|
|
203
|
+
try {
|
|
204
|
+
(0, fs_1.unlinkSync)(filePathToDelete);
|
|
205
|
+
}
|
|
206
|
+
catch (err) {
|
|
207
|
+
console.error("Failed to delete file:", filePathToDelete, err);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
console.log("File not found, skipping:", filePathToDelete);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
};
|
|
162
215
|
// Helper functions
|
|
163
216
|
const verifyProjectsFolder = () => {
|
|
164
217
|
const projectPath = path_1.default.join(filePath, PROJECTS_FOLDER);
|
package/build/utils/util.js
CHANGED
|
@@ -408,19 +408,21 @@ const parseJsonString = (str) => {
|
|
|
408
408
|
exports.parseJsonString = parseJsonString;
|
|
409
409
|
const parseValueFromData = (data, fieldName) => {
|
|
410
410
|
let value = "";
|
|
411
|
+
let valueIndex = "";
|
|
412
|
+
let valueIndexFieldName = "";
|
|
411
413
|
if (fieldName && fieldName.includes(".")) {
|
|
412
414
|
let fullNameParts = fieldName.split(".");
|
|
413
415
|
let prefix = "";
|
|
414
|
-
let stack = data ||
|
|
416
|
+
let stack = data || {};
|
|
415
417
|
for (let k = 0; k < fullNameParts.length; k++) {
|
|
416
418
|
prefix = fullNameParts[k];
|
|
417
|
-
if (Array.isArray(stack)) {
|
|
419
|
+
if (stack && Array.isArray(stack)) {
|
|
418
420
|
stack[prefix] = stack.map((item) => {
|
|
419
421
|
if (item[prefix])
|
|
420
422
|
return item[prefix];
|
|
421
423
|
});
|
|
422
424
|
}
|
|
423
|
-
if (stack && stack[prefix]
|
|
425
|
+
if (stack && !stack[prefix]) {
|
|
424
426
|
stack[prefix] = "";
|
|
425
427
|
}
|
|
426
428
|
stack = stack[prefix];
|
|
@@ -430,14 +432,57 @@ const parseValueFromData = (data, fieldName) => {
|
|
|
430
432
|
value = value.filter(() => true);
|
|
431
433
|
}
|
|
432
434
|
}
|
|
435
|
+
else if (fieldName && fieldName.includes("[")) {
|
|
436
|
+
//Todo: Need to Refactor
|
|
437
|
+
let fullNameParts = fieldName.split("[");
|
|
438
|
+
let prefix = "";
|
|
439
|
+
let stack = data || {};
|
|
440
|
+
for (let k = 0; k < fullNameParts.length - 1; k++) {
|
|
441
|
+
const cValue = fullNameParts[k];
|
|
442
|
+
const nValue = fullNameParts[k + 1];
|
|
443
|
+
prefix = cValue ? (!cValue.includes("]") ? cValue : "") : "";
|
|
444
|
+
valueIndex = nValue
|
|
445
|
+
? nValue.includes("]")
|
|
446
|
+
? nValue.split("]")[0]
|
|
447
|
+
: nValue
|
|
448
|
+
: "";
|
|
449
|
+
if (stack && Array.isArray(stack)) {
|
|
450
|
+
stack[prefix] = stack.map((item) => {
|
|
451
|
+
if (item[prefix])
|
|
452
|
+
return item[prefix];
|
|
453
|
+
});
|
|
454
|
+
}
|
|
455
|
+
if (stack && !stack[prefix]) {
|
|
456
|
+
stack[prefix] = "";
|
|
457
|
+
}
|
|
458
|
+
stack = valueIndex ? stack[prefix][valueIndex] : stack[prefix];
|
|
459
|
+
if (fieldName.includes("]:")) {
|
|
460
|
+
valueIndexFieldName = nValue.split("]:")[1];
|
|
461
|
+
if (valueIndexFieldName) {
|
|
462
|
+
stack = stack[valueIndexFieldName];
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
value = stack ? stack : "";
|
|
467
|
+
if (Array.isArray(value)) {
|
|
468
|
+
value = value.filter(() => true);
|
|
469
|
+
}
|
|
470
|
+
}
|
|
433
471
|
else {
|
|
434
472
|
value = data ? data[fieldName] : "";
|
|
435
473
|
}
|
|
474
|
+
if (value && Array.isArray(value) && value.length === 1)
|
|
475
|
+
return value[0];
|
|
436
476
|
if (value && Array.isArray(value) && typeof value[0] === "string") {
|
|
437
|
-
return value.join(",
|
|
477
|
+
return value.join(",");
|
|
438
478
|
}
|
|
439
|
-
if (
|
|
440
|
-
|
|
479
|
+
if (!value || value == "undefined" || value === "undefined") {
|
|
480
|
+
if (value === 0) {
|
|
481
|
+
value = "0";
|
|
482
|
+
}
|
|
483
|
+
else {
|
|
484
|
+
value = "";
|
|
485
|
+
}
|
|
441
486
|
}
|
|
442
487
|
return value;
|
|
443
488
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "drapcode-utility",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.0-preview",
|
|
4
4
|
"description": "DrapCode Utility",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
@@ -42,9 +42,9 @@
|
|
|
42
42
|
"axios": "^1.1.2",
|
|
43
43
|
"date-fns": "^4.1.0",
|
|
44
44
|
"dompurify": "^3.1.7",
|
|
45
|
-
"drapcode-constant": "^2.0.2",
|
|
46
|
-
"drapcode-logger": "^1.3.5",
|
|
47
|
-
"drapcode-redis": "^1.4.9",
|
|
45
|
+
"drapcode-constant": "^2.0.2-preview",
|
|
46
|
+
"drapcode-logger": "^1.3.5-preview",
|
|
47
|
+
"drapcode-redis": "^1.4.9-preview",
|
|
48
48
|
"exiftool-vendored": "^28.2.1",
|
|
49
49
|
"express": "^4.17.1",
|
|
50
50
|
"gm": "^1.25.0",
|