@point-hub/papi 0.5.13 → 0.5.15
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/index.js +34 -2
- package/lib/src/database/mongodb/mongodb-compose.d.ts +23 -0
- package/lib/src/database/mongodb/mongodb-compose.d.ts.map +1 -0
- package/lib/src/database/mongodb/mongodb-compose.spec.d.ts +2 -0
- package/lib/src/database/mongodb/mongodb-compose.spec.d.ts.map +1 -0
- package/lib/src/index.d.ts +1 -0
- package/lib/src/index.d.ts.map +1 -1
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -71742,6 +71742,37 @@ function mongodbErrorHandlerMiddleware() {
|
|
|
71742
71742
|
next(err);
|
|
71743
71743
|
};
|
|
71744
71744
|
}
|
|
71745
|
+
// src/database/mongodb/mongodb-compose.ts
|
|
71746
|
+
function composeUpdate(data, parentKey = "") {
|
|
71747
|
+
const updates = { $set: {}, $unset: {} };
|
|
71748
|
+
function isObject2(value) {
|
|
71749
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
71750
|
+
}
|
|
71751
|
+
function process2(value, keyPath) {
|
|
71752
|
+
if (value === "" || value === null || value === undefined) {
|
|
71753
|
+
updates.$unset[keyPath] = "";
|
|
71754
|
+
} else if (Array.isArray(value)) {
|
|
71755
|
+
value.forEach((item, index) => {
|
|
71756
|
+
process2(item, `${keyPath}.${index}`);
|
|
71757
|
+
});
|
|
71758
|
+
} else if (isObject2(value)) {
|
|
71759
|
+
Object.entries(value).forEach(([k, v]) => {
|
|
71760
|
+
process2(v, `${keyPath}.${k}`);
|
|
71761
|
+
});
|
|
71762
|
+
} else if (value !== undefined) {
|
|
71763
|
+
updates.$set[keyPath] = value;
|
|
71764
|
+
}
|
|
71765
|
+
}
|
|
71766
|
+
Object.entries(data).forEach(([key, value]) => {
|
|
71767
|
+
const fullKey = parentKey ? `${parentKey}.${key}` : key;
|
|
71768
|
+
process2(value, fullKey);
|
|
71769
|
+
});
|
|
71770
|
+
if (updates.$set && Object.keys(updates.$set).length === 0)
|
|
71771
|
+
delete updates.$set;
|
|
71772
|
+
if (updates.$unset && Object.keys(updates.$unset).length === 0)
|
|
71773
|
+
delete updates.$unset;
|
|
71774
|
+
return updates;
|
|
71775
|
+
}
|
|
71745
71776
|
// src/test/utils.ts
|
|
71746
71777
|
class DatabaseTestUtil {
|
|
71747
71778
|
static dbConnection;
|
|
@@ -71764,13 +71795,13 @@ class DatabaseTestUtil {
|
|
|
71764
71795
|
await DatabaseTestUtil.dbConnection.updateSchema(listSchema[i][j].collection, listSchema[i][j].schema);
|
|
71765
71796
|
for (const unique of listSchema[i][j].unique) {
|
|
71766
71797
|
if (unique.length) {
|
|
71767
|
-
console.info(`[schema] ${listSchema[i][j].collection} - create unique attribute "
|
|
71798
|
+
console.info(`[schema] ${listSchema[i][j].collection} - create unique attribute "${unique}"`);
|
|
71768
71799
|
await helper.createUnique(listSchema[i][j].collection, BaseMongoDBQuerystring.convertArrayToObject(unique, -1));
|
|
71769
71800
|
}
|
|
71770
71801
|
}
|
|
71771
71802
|
for (const unique of listSchema[i][j].uniqueIfExists) {
|
|
71772
71803
|
if (unique.length) {
|
|
71773
|
-
console.info(`[schema] ${listSchema[i][j].collection} - create unique attribute "
|
|
71804
|
+
console.info(`[schema] ${listSchema[i][j].collection} - create unique attribute "${unique}"`);
|
|
71774
71805
|
await helper.createUniqueIfNotNull(listSchema[i][j].collection, BaseMongoDBQuerystring.convertArrayToObject(unique, -1));
|
|
71775
71806
|
}
|
|
71776
71807
|
}
|
|
@@ -71900,6 +71931,7 @@ var BaseErrorHandler = {
|
|
|
71900
71931
|
};
|
|
71901
71932
|
export {
|
|
71902
71933
|
stubDir,
|
|
71934
|
+
composeUpdate,
|
|
71903
71935
|
DatabaseTestUtil,
|
|
71904
71936
|
Server as BaseServer,
|
|
71905
71937
|
BaseMongoServerError,
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
type Primitive = string | number | boolean | null | undefined;
|
|
2
|
+
type Data = Primitive | DataObject | DataArray;
|
|
3
|
+
interface DataObject {
|
|
4
|
+
[key: string]: Data;
|
|
5
|
+
}
|
|
6
|
+
type DataArray = Array<Data>;
|
|
7
|
+
interface MongoUpdate {
|
|
8
|
+
$set?: Record<string, unknown>;
|
|
9
|
+
$unset?: Record<string, string>;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Compose MongoDB update operators ($set and $unset) based on input data.
|
|
13
|
+
* Fields with empty string or null values will be added to $unset,
|
|
14
|
+
* all other fields will be added to $set.
|
|
15
|
+
* Supports nested objects and arrays.
|
|
16
|
+
*
|
|
17
|
+
* @param data - Input object to transform
|
|
18
|
+
* @param parentKey - Internal key path prefix for recursion
|
|
19
|
+
* @returns MongoDB update object with $set and/or $unset
|
|
20
|
+
*/
|
|
21
|
+
export declare function composeUpdate(data: DataObject, parentKey?: string): MongoUpdate;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=mongodb-compose.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mongodb-compose.d.ts","sourceRoot":"","sources":["../../../../src/database/mongodb/mongodb-compose.ts"],"names":[],"mappings":"AAAA,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAA;AAE7D,KAAK,IAAI,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAA;AAC9C,UAAU,UAAU;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB;AACD,KAAK,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;AAE5B,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,SAAK,GAAG,WAAW,CAgC3E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mongodb-compose.spec.d.ts","sourceRoot":"","sources":["../../../../src/database/mongodb/mongodb-compose.spec.ts"],"names":[],"mappings":""}
|
package/lib/src/index.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export declare const stubDir: string;
|
|
|
11
11
|
export { ExpressCli as BaseConsoleCli } from '@point-hub/express-cli';
|
|
12
12
|
export declare const BaseConsoleCommand: typeof BaseCommand;
|
|
13
13
|
export declare const BaseConsoleKernel: typeof ConsoleKernel;
|
|
14
|
+
export { composeUpdate } from './database/mongodb/mongodb-compose';
|
|
14
15
|
export { DatabaseTestUtil } from './test/utils';
|
|
15
16
|
export declare const BaseDatabaseConnection: typeof DatabaseConnection;
|
|
16
17
|
export declare const BaseMongoDBConnection: typeof MongoDBConnection;
|
package/lib/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EACL,QAAQ,EACR,SAAS,EACT,sBAAsB,EACtB,IAAI,EACJ,qBAAqB,EAErB,KAAK,cAAc,EACpB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AAEjE,OAAO,6BAA6B,MAAM,+CAA+C,CAAA;AAEzF,eAAO,MAAM,OAAO,QAAqF,CAAA;AAGzG,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACrE,eAAO,MAAM,kBAAkB,oBAAc,CAAA;AAC7C,eAAO,MAAM,iBAAiB,sBAAgB,CAAA;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,eAAO,MAAM,sBAAsB,2BAAqB,CAAA;AACxD,eAAO,MAAM,qBAAqB,0BAAoB,CAAA;AACtD,eAAO,MAAM,iBAAiB,sBAAgB,CAAA;AAC9C,eAAO,MAAM,sBAAsB;;;;;;;;;;CAAc,CAAA;AACjD,eAAO,MAAM,oBAAoB,yBAAmB,CAAA;AACpD,eAAO,MAAM,qBAAqB,0BAAoB,CAAA;AAEtD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAEnE,eAAO,MAAM,gBAAgB;;;;;;;;CAQ5B,CAAA;AAED,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,UAAU,CAAA;AAE/C,YAAY,EAAE,cAAc,EAAE,CAAA;AAC9B,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,SAAS,EACT,MAAM,EACN,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,EACnB,OAAO,EACP,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,QAAQ,GACT,MAAM,oBAAoB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EACL,QAAQ,EACR,SAAS,EACT,sBAAsB,EACtB,IAAI,EACJ,qBAAqB,EAErB,KAAK,cAAc,EACpB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AAEjE,OAAO,6BAA6B,MAAM,+CAA+C,CAAA;AAEzF,eAAO,MAAM,OAAO,QAAqF,CAAA;AAGzG,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACrE,eAAO,MAAM,kBAAkB,oBAAc,CAAA;AAC7C,eAAO,MAAM,iBAAiB,sBAAgB,CAAA;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,eAAO,MAAM,sBAAsB,2BAAqB,CAAA;AACxD,eAAO,MAAM,qBAAqB,0BAAoB,CAAA;AACtD,eAAO,MAAM,iBAAiB,sBAAgB,CAAA;AAC9C,eAAO,MAAM,sBAAsB;;;;;;;;;;CAAc,CAAA;AACjD,eAAO,MAAM,oBAAoB,yBAAmB,CAAA;AACpD,eAAO,MAAM,qBAAqB,0BAAoB,CAAA;AAEtD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAEnE,eAAO,MAAM,gBAAgB;;;;;;;;CAQ5B,CAAA;AAED,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,UAAU,CAAA;AAE/C,YAAY,EAAE,cAAc,EAAE,CAAA;AAC9B,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,SAAS,EACT,MAAM,EACN,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,EACnB,OAAO,EACP,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,QAAQ,GACT,MAAM,oBAAoB,CAAA"}
|