inibase 1.0.0-rc.126 → 1.0.0-rc.127
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/index.d.ts +15 -14
- package/dist/index.js +11 -12
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -132,36 +132,37 @@ export default class Inibase {
|
|
|
132
132
|
* @param {boolean} [onlyLinesNumbers]
|
|
133
133
|
* @return {*} {(Promise<Data | number | (Data | number)[] | null>)}
|
|
134
134
|
*/
|
|
135
|
-
get(tableName: string, where: string | number | (string | number)[] | Criteria | undefined, options: Options | undefined, onlyOne: true, onlyLinesNumbers?: false): Promise<Data | null>;
|
|
136
|
-
get(tableName: string, where: string | number, options?: Options, onlyOne?: boolean, onlyLinesNumbers?: false): Promise<Data | null>;
|
|
137
|
-
get(tableName: string, where?: string | number | (string | number)[] | Criteria, options?: Options, onlyOne?: boolean, onlyLinesNumbers?: false): Promise<Data[] | null>;
|
|
138
|
-
get(tableName: string, where: string | number | (string | number)[] | Criteria | undefined, options: Options | undefined, onlyOne: false | undefined, onlyLinesNumbers: true): Promise<number[] | null>;
|
|
139
|
-
get(tableName: string, where: string | number | (string | number)[] | Criteria | undefined, options: Options | undefined, onlyOne: true, onlyLinesNumbers: true): Promise<number | null>;
|
|
135
|
+
get<TData extends Record<string, any> & Partial<Data>>(tableName: string, where: string | number | (string | number)[] | Criteria | undefined, options: Options | undefined, onlyOne: true, onlyLinesNumbers?: false): Promise<(Data & TData) | null>;
|
|
136
|
+
get<TData extends Record<string, any> & Partial<Data>>(tableName: string, where: string | number, options?: Options, onlyOne?: boolean, onlyLinesNumbers?: false): Promise<(Data & TData) | null>;
|
|
137
|
+
get<TData extends Record<string, any> & Partial<Data>>(tableName: string, where?: string | number | (string | number)[] | Criteria, options?: Options, onlyOne?: boolean, onlyLinesNumbers?: false): Promise<(Data & TData)[] | null>;
|
|
138
|
+
get<TData extends Record<string, any> & Partial<Data>>(tableName: string, where: string | number | (string | number)[] | Criteria | undefined, options: Options | undefined, onlyOne: false | undefined, onlyLinesNumbers: true): Promise<number[] | null>;
|
|
139
|
+
get<TData extends Record<string, any> & Partial<Data>>(tableName: string, where: string | number | (string | number)[] | Criteria | undefined, options: Options | undefined, onlyOne: true, onlyLinesNumbers: true): Promise<number | null>;
|
|
140
140
|
/**
|
|
141
141
|
* Create new item(s) in a table
|
|
142
142
|
*
|
|
143
143
|
* @param {string} tableName
|
|
144
|
-
* @param {(Data | Data[])} data Can be array of objects or a single object
|
|
144
|
+
* @param {((Data & TData) | (Data & TData)[])} data Can be array of objects or a single object
|
|
145
145
|
* @param {Options} [options] Pagination options, useful when the returnPostedData param is true
|
|
146
146
|
* @param {boolean} [returnPostedData] By default function returns void, if you want to get the posted data, set this param to true
|
|
147
147
|
* @return {*} {Promise<Data | Data[] | null | void>}
|
|
148
148
|
*/
|
|
149
|
-
post(tableName: string, data: Data | Data[], options?: Options, returnPostedData?: boolean): Promise<void>;
|
|
150
|
-
post(tableName: string, data: Data, options: Options | undefined, returnPostedData: true): Promise<Data | null>;
|
|
151
|
-
post(tableName: string, data: Data[], options: Options | undefined, returnPostedData: true): Promise<Data[] | null>;
|
|
149
|
+
post<TData extends Record<string, any> & Partial<Data>>(tableName: string, data: (Data & TData) | (Data & TData)[], options?: Options, returnPostedData?: boolean): Promise<void>;
|
|
150
|
+
post<TData extends Record<string, any> & Partial<Data>>(tableName: string, data: Data & TData, options: Options | undefined, returnPostedData: true): Promise<(Data & TData) | null>;
|
|
151
|
+
post<TData extends Record<string, any> & Partial<Data>>(tableName: string, data: (Data & TData)[], options: Options | undefined, returnPostedData: true): Promise<(Data & TData)[] | null>;
|
|
152
152
|
/**
|
|
153
153
|
* Update item(s) in a table
|
|
154
154
|
*
|
|
155
155
|
* @param {string} tableName
|
|
156
|
-
* @param {(Data | Data[])} data
|
|
156
|
+
* @param {(Data & TData) | (Data & TData[])} data
|
|
157
157
|
* @param {(number | string | (number | string)[] | Criteria)} [where]
|
|
158
158
|
* @param {Options} [options]
|
|
159
|
-
* @param {
|
|
159
|
+
* @param {boolean} [returnUpdatedData]
|
|
160
160
|
* @return {*} {Promise<Data | Data[] | null | undefined | void>}
|
|
161
161
|
*/
|
|
162
|
-
put(tableName: string, data: Data | Data[], where
|
|
163
|
-
put(tableName: string, data: Data, where: number | string | (number | string)[] | Criteria | undefined, options: Options | undefined, returnUpdatedData: true): Promise<Data | null>;
|
|
164
|
-
put(tableName: string, data: Data[], where: number | string | (number | string)[] | Criteria | undefined, options: Options | undefined, returnUpdatedData: true): Promise<Data[] | null>;
|
|
162
|
+
put<TData extends Record<string, any> & Partial<Data>>(tableName: string, data: (Data & TData) | (Data & TData)[], where: number | string | (number | string)[] | Criteria | undefined, options: Options | undefined, returnUpdatedData: false): Promise<void>;
|
|
163
|
+
put<TData extends Record<string, any> & Partial<Data>>(tableName: string, data: Data & TData, where: number | string | (number | string)[] | Criteria | undefined, options: Options | undefined, returnUpdatedData: true | boolean): Promise<(Data & TData) | null>;
|
|
164
|
+
put<TData extends Record<string, any> & Partial<Data>>(tableName: string, data: (Data & TData)[], where: number | string | (number | string)[] | Criteria | undefined, options: Options | undefined, returnUpdatedData: true | boolean): Promise<(Data & TData)[] | null>;
|
|
165
|
+
put<TData extends Record<string, any> & Partial<Data>>(tableName: string, data: (Data & TData) | (Data & TData)[], where: number | string | (number | string)[] | Criteria | undefined, options: Options | undefined, returnUpdatedData: true | boolean): Promise<(Data & TData) | (Data & TData)[] | null>;
|
|
165
166
|
/**
|
|
166
167
|
* Delete item(s) in a table
|
|
167
168
|
*
|
package/dist/index.js
CHANGED
|
@@ -390,7 +390,7 @@ export default class Inibase {
|
|
|
390
390
|
if (!Array.isArray(value))
|
|
391
391
|
value = [value];
|
|
392
392
|
if (Utils.isArrayOfObjects(fieldChildrenType))
|
|
393
|
-
return this.formatData(value, fieldChildrenType);
|
|
393
|
+
return this.formatData(value, fieldChildrenType, _formatOnlyAvailiableKeys);
|
|
394
394
|
if (!value.length)
|
|
395
395
|
return null;
|
|
396
396
|
return value.map((_value) => this.formatField(_value, fieldChildrenType));
|
|
@@ -1143,9 +1143,8 @@ export default class Inibase {
|
|
|
1143
1143
|
.slice((options.page - 1) * options.perPage, options.page * options.perPage)
|
|
1144
1144
|
.map(Number), options, onlyOne);
|
|
1145
1145
|
}
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
if (RETURN && linesNumbers?.size) {
|
|
1146
|
+
const [LineNumberDataMap, linesNumbers] = await this.applyCriteria(tableName, schema, options, where);
|
|
1147
|
+
if (LineNumberDataMap && linesNumbers?.size) {
|
|
1149
1148
|
if (!this.totalItems.has(`${tableName}-*`))
|
|
1150
1149
|
this.totalItems.set(`${tableName}-*`, linesNumbers.size);
|
|
1151
1150
|
if (onlyLinesNumbers)
|
|
@@ -1155,8 +1154,8 @@ export default class Inibase {
|
|
|
1155
1154
|
const alreadyExistsColumns = Object.keys(Object.values(RETURN)[0]), alreadyExistsColumnsIDs = Utils.flattenSchema(schema)
|
|
1156
1155
|
.filter(({ key }) => alreadyExistsColumns.includes(key))
|
|
1157
1156
|
.map(({ id }) => id);
|
|
1158
|
-
RETURN = Object.values(Utils.deepMerge(
|
|
1159
|
-
Utils.isFieldType("table", type, children)), Object.keys(
|
|
1157
|
+
RETURN = Object.values(Utils.deepMerge(LineNumberDataMap, await this.processSchemaData(tableName, Utils.filterSchema(schema, ({ id, type, children }) => !alreadyExistsColumnsIDs.includes(id) ||
|
|
1158
|
+
Utils.isFieldType("table", type, children)), Object.keys(LineNumberDataMap).map(Number), options)));
|
|
1160
1159
|
if (this.tablesMap.get(tableName).config.cache)
|
|
1161
1160
|
await writeFile(cachedFilePath, Array.from(linesNumbers).join(","));
|
|
1162
1161
|
}
|
|
@@ -1215,7 +1214,7 @@ export default class Inibase {
|
|
|
1215
1214
|
clonedData.createdAt = Date.now();
|
|
1216
1215
|
clonedData.updatedAt = undefined;
|
|
1217
1216
|
}
|
|
1218
|
-
clonedData = this.formatData(clonedData, this.tablesMap.get(tableName).schema,
|
|
1217
|
+
clonedData = this.formatData(clonedData, this.tablesMap.get(tableName).schema, false);
|
|
1219
1218
|
const pathesContents = this.joinPathesContents(tableName, this.tablesMap.get(tableName).config.prepend
|
|
1220
1219
|
? Array.isArray(clonedData)
|
|
1221
1220
|
? clonedData.toReversed()
|
|
@@ -1261,12 +1260,12 @@ export default class Inibase {
|
|
|
1261
1260
|
if (Utils.isArrayOfObjects(clonedData)) {
|
|
1262
1261
|
if (!clonedData.every((item) => Object.hasOwn(item, "id") && Utils.isValidID(item.id)))
|
|
1263
1262
|
throw this.createError("INVALID_ID");
|
|
1264
|
-
return this.put(tableName, clonedData, clonedData.map(({ id }) => id), options, returnUpdatedData
|
|
1263
|
+
return this.put(tableName, clonedData, clonedData.map(({ id }) => id), options, returnUpdatedData);
|
|
1265
1264
|
}
|
|
1266
|
-
if (Object.hasOwn(
|
|
1265
|
+
if (Object.hasOwn(clonedData, "id")) {
|
|
1267
1266
|
if (!Utils.isValidID(clonedData.id))
|
|
1268
1267
|
throw this.createError("INVALID_ID", clonedData.id);
|
|
1269
|
-
return this.put(tableName,
|
|
1268
|
+
return this.put(tableName, clonedData, clonedData.id, options, returnUpdatedData);
|
|
1270
1269
|
}
|
|
1271
1270
|
await this.validateData(tableName, clonedData, true);
|
|
1272
1271
|
clonedData = this.formatData(clonedData, this.tablesMap.get(tableName).schema, true);
|
|
@@ -1298,7 +1297,7 @@ export default class Inibase {
|
|
|
1298
1297
|
else if ((Array.isArray(where) && where.every(Utils.isValidID)) ||
|
|
1299
1298
|
Utils.isValidID(where)) {
|
|
1300
1299
|
const lineNumbers = await this.get(tableName, where, undefined, undefined, true);
|
|
1301
|
-
return this.put(tableName, clonedData, lineNumbers, options,
|
|
1300
|
+
return this.put(tableName, clonedData, lineNumbers, options, false);
|
|
1302
1301
|
}
|
|
1303
1302
|
else if ((Array.isArray(where) && where.every(Utils.isNumber)) ||
|
|
1304
1303
|
Utils.isNumber(where)) {
|
|
@@ -1339,7 +1338,7 @@ export default class Inibase {
|
|
|
1339
1338
|
else if (Utils.isObject(where)) {
|
|
1340
1339
|
const lineNumbers = await this.get(tableName, where, undefined, undefined, true);
|
|
1341
1340
|
if (lineNumbers)
|
|
1342
|
-
return this.put(tableName, clonedData, lineNumbers, options, returnUpdatedData
|
|
1341
|
+
return this.put(tableName, clonedData, lineNumbers, options, returnUpdatedData);
|
|
1343
1342
|
}
|
|
1344
1343
|
else
|
|
1345
1344
|
throw this.createError("INVALID_PARAMETERS");
|