inibase 1.0.0-rc.116 → 1.0.0-rc.118
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/dist/file.js +21 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +14 -7
- package/package.json +1 -1
package/dist/file.js
CHANGED
|
@@ -284,8 +284,9 @@ export const replace = async (filePath, replacements, totalItems) => {
|
|
|
284
284
|
let linesCount = 0;
|
|
285
285
|
fileHandle = await open(filePath, "r");
|
|
286
286
|
fileTempHandle = await open(fileTempPath, "w");
|
|
287
|
+
const writeStream = fileTempHandle.createWriteStream();
|
|
287
288
|
const rl = createReadLineInternface(filePath, fileHandle);
|
|
288
|
-
await _pipeline(filePath, rl,
|
|
289
|
+
await _pipeline(filePath, rl, writeStream, new Transform({
|
|
289
290
|
transform(line, _, callback) {
|
|
290
291
|
linesCount++;
|
|
291
292
|
const replacement = isReplacementsObject
|
|
@@ -295,6 +296,25 @@ export const replace = async (filePath, replacements, totalItems) => {
|
|
|
295
296
|
: replacements;
|
|
296
297
|
return callback(null, `${replacement}\n`);
|
|
297
298
|
},
|
|
299
|
+
flush(callback) {
|
|
300
|
+
const remainingReplacementsKeys = Object.keys(replacements)
|
|
301
|
+
.map(Number)
|
|
302
|
+
.toSorted((a, b) => a - b)
|
|
303
|
+
.filter((lineNumber) => lineNumber > linesCount);
|
|
304
|
+
if (remainingReplacementsKeys.length)
|
|
305
|
+
this.push("\n".repeat(remainingReplacementsKeys[0] - linesCount - 1) +
|
|
306
|
+
remainingReplacementsKeys
|
|
307
|
+
.map((lineNumber, index) => index === 0 ||
|
|
308
|
+
lineNumber -
|
|
309
|
+
(remainingReplacementsKeys[index - 1] - 1) ===
|
|
310
|
+
0
|
|
311
|
+
? replacements[lineNumber]
|
|
312
|
+
: "\n".repeat(lineNumber -
|
|
313
|
+
remainingReplacementsKeys[index - 1] -
|
|
314
|
+
1) + replacements[lineNumber])
|
|
315
|
+
.join("\n"));
|
|
316
|
+
callback();
|
|
317
|
+
},
|
|
298
318
|
}));
|
|
299
319
|
return [fileTempPath, filePath];
|
|
300
320
|
}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -61,7 +61,13 @@ export default class Inibase {
|
|
|
61
61
|
: errorMessage.replaceAll("{variable}", `'${variable.toString()}'`)
|
|
62
62
|
: errorMessage.replaceAll("{variable}", ""));
|
|
63
63
|
}
|
|
64
|
-
|
|
64
|
+
clear() {
|
|
65
|
+
this.tables = {};
|
|
66
|
+
this.totalItems = {};
|
|
67
|
+
this.pageInfo = {};
|
|
68
|
+
this.checkIFunique = {};
|
|
69
|
+
}
|
|
70
|
+
getFileExtension(tableName) {
|
|
65
71
|
let mainExtension = this.fileExtension;
|
|
66
72
|
// TODO: ADD ENCRYPTION
|
|
67
73
|
// if(this.tables[tableName].config.encryption)
|
|
@@ -69,19 +75,20 @@ export default class Inibase {
|
|
|
69
75
|
if (this.tables[tableName].config.compression)
|
|
70
76
|
mainExtension += ".gz";
|
|
71
77
|
return mainExtension;
|
|
72
|
-
}
|
|
73
|
-
_schemaToIdsPath
|
|
78
|
+
}
|
|
79
|
+
_schemaToIdsPath(tableName, schema, prefix = "") {
|
|
74
80
|
const RETURN = {};
|
|
75
81
|
for (const field of schema)
|
|
76
82
|
if ((field.type === "array" || field.type === "object") &&
|
|
77
83
|
field.children &&
|
|
78
|
-
Utils.isArrayOfObjects(field.children))
|
|
84
|
+
Utils.isArrayOfObjects(field.children))
|
|
79
85
|
Utils.deepMerge(RETURN, this._schemaToIdsPath(tableName, field.children, `${(prefix ?? "") + field.key}.`));
|
|
80
|
-
}
|
|
81
86
|
else if (field.id)
|
|
82
|
-
RETURN[
|
|
87
|
+
RETURN[Utils.isValidID(field.id)
|
|
88
|
+
? UtilsServer.decodeID(field.id, this.salt)
|
|
89
|
+
: field.id] = `${(prefix ?? "") + field.key}${this.getFileExtension(tableName)}`;
|
|
83
90
|
return RETURN;
|
|
84
|
-
}
|
|
91
|
+
}
|
|
85
92
|
/**
|
|
86
93
|
* Create a new table inside database, with predefined schema and config
|
|
87
94
|
*
|