@opra/common 0.32.3 → 0.32.4
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/browser.js +13 -0
- package/cjs/helpers/object-utils.js +13 -1
- package/esm/helpers/object-utils.js +11 -0
- package/package.json +4 -4
- package/types/document/interfaces/collection.interface.d.ts +5 -5
- package/types/document/interfaces/singleton.interface.d.ts +4 -4
- package/types/helpers/object-utils.d.ts +2 -0
- package/types/types.d.ts +18 -3
package/browser.js
CHANGED
|
@@ -165,6 +165,18 @@ function omitUndefined(obj, recursive) {
|
|
|
165
165
|
return obj;
|
|
166
166
|
}
|
|
167
167
|
__name(omitUndefined, "omitUndefined");
|
|
168
|
+
function omitNullish(obj, recursive) {
|
|
169
|
+
if (!(obj && typeof obj === "object"))
|
|
170
|
+
return obj;
|
|
171
|
+
for (const k of Object.keys(obj)) {
|
|
172
|
+
if (obj[k] == null)
|
|
173
|
+
delete obj[k];
|
|
174
|
+
else if (recursive && isPlainObject(obj[k]))
|
|
175
|
+
omitNullish(obj[k]);
|
|
176
|
+
}
|
|
177
|
+
return obj;
|
|
178
|
+
}
|
|
179
|
+
__name(omitNullish, "omitNullish");
|
|
168
180
|
|
|
169
181
|
// ../../build/common/esm/helpers/path-to-object-tree.js
|
|
170
182
|
var DOT_PATTERN = /^([^.]+)\.(.*)$/;
|
|
@@ -12312,6 +12324,7 @@ export {
|
|
|
12312
12324
|
isUrlString,
|
|
12313
12325
|
isWritable,
|
|
12314
12326
|
mergePrototype,
|
|
12327
|
+
omitNullish,
|
|
12315
12328
|
omitUndefined,
|
|
12316
12329
|
pathToObjectTree,
|
|
12317
12330
|
resolveClass,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.omitUndefined = exports.cloneObject = void 0;
|
|
3
|
+
exports.omitNullish = exports.omitUndefined = exports.cloneObject = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const putil_isplainobject_1 = tslib_1.__importDefault(require("putil-isplainobject"));
|
|
6
6
|
const putil_merge_1 = tslib_1.__importDefault(require("putil-merge"));
|
|
@@ -29,3 +29,15 @@ function omitUndefined(obj, recursive) {
|
|
|
29
29
|
return obj;
|
|
30
30
|
}
|
|
31
31
|
exports.omitUndefined = omitUndefined;
|
|
32
|
+
function omitNullish(obj, recursive) {
|
|
33
|
+
if (!(obj && typeof obj === 'object'))
|
|
34
|
+
return obj;
|
|
35
|
+
for (const k of Object.keys(obj)) {
|
|
36
|
+
if (obj[k] == null)
|
|
37
|
+
delete obj[k];
|
|
38
|
+
else if (recursive && (0, putil_isplainobject_1.default)(obj[k]))
|
|
39
|
+
omitNullish(obj[k]);
|
|
40
|
+
}
|
|
41
|
+
return obj;
|
|
42
|
+
}
|
|
43
|
+
exports.omitNullish = omitNullish;
|
|
@@ -23,3 +23,14 @@ export function omitUndefined(obj, recursive) {
|
|
|
23
23
|
}
|
|
24
24
|
return obj;
|
|
25
25
|
}
|
|
26
|
+
export function omitNullish(obj, recursive) {
|
|
27
|
+
if (!(obj && typeof obj === 'object'))
|
|
28
|
+
return obj;
|
|
29
|
+
for (const k of Object.keys(obj)) {
|
|
30
|
+
if (obj[k] == null)
|
|
31
|
+
delete obj[k];
|
|
32
|
+
else if (recursive && isPlainObject(obj[k]))
|
|
33
|
+
omitNullish(obj[k]);
|
|
34
|
+
}
|
|
35
|
+
return obj;
|
|
36
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opra/common",
|
|
3
|
-
"version": "0.32.
|
|
3
|
+
"version": "0.32.4",
|
|
4
4
|
"description": "Opra common package",
|
|
5
5
|
"author": "Panates",
|
|
6
6
|
"license": "MIT",
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
"putil-merge": "^3.12.1",
|
|
45
45
|
"putil-promisify": "^1.10.1",
|
|
46
46
|
"putil-varhelpers": "^1.6.5",
|
|
47
|
-
"reflect-metadata": "^0.1.
|
|
47
|
+
"reflect-metadata": "^0.1.14",
|
|
48
48
|
"uid": "^2.0.1",
|
|
49
|
-
"valgen": "^4.3.
|
|
49
|
+
"valgen": "^4.3.2"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@browsery/fs": "^0.4.0",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"@types/lodash.omit": "^4.5.9",
|
|
57
57
|
"@types/validator": "^13.11.7",
|
|
58
58
|
"path-browserify": "^1.0.1",
|
|
59
|
-
"ts-gems": "^2.
|
|
59
|
+
"ts-gems": "^2.8.0"
|
|
60
60
|
},
|
|
61
61
|
"engines": {
|
|
62
62
|
"node": ">=16.0",
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PartialDTO } from '../../types.js';
|
|
2
2
|
export interface ICollection<T> {
|
|
3
|
-
create?(...args: any[]): Promise<
|
|
3
|
+
create?(...args: any[]): Promise<PartialDTO<T>>;
|
|
4
4
|
delete?(...args: any[]): Promise<number> | undefined;
|
|
5
5
|
deleteMany?(...args: any[]): Promise<number> | undefined;
|
|
6
|
-
findMany?(...args: any[]): Promise<
|
|
7
|
-
get?(...args: any[]): Promise<
|
|
8
|
-
update?(...args: any[]): Promise<
|
|
6
|
+
findMany?(...args: any[]): Promise<PartialDTO<T>[] | undefined>;
|
|
7
|
+
get?(...args: any[]): Promise<PartialDTO<T> | undefined>;
|
|
8
|
+
update?(...args: any[]): Promise<PartialDTO<T> | undefined>;
|
|
9
9
|
updateMany?(...args: any[]): Promise<number> | undefined;
|
|
10
10
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PartialDTO } from '../../types.js';
|
|
2
2
|
export interface ISingleton<T> {
|
|
3
|
-
create?(...args: any[]): Promise<
|
|
3
|
+
create?(...args: any[]): Promise<PartialDTO<T>>;
|
|
4
4
|
delete?(...args: any[]): Promise<number> | undefined;
|
|
5
|
-
get?(...args: any[]): Promise<
|
|
6
|
-
update?(...args: any[]): Promise<
|
|
5
|
+
get?(...args: any[]): Promise<PartialDTO<T> | undefined>;
|
|
6
|
+
update?(...args: any[]): Promise<PartialDTO<T> | undefined>;
|
|
7
7
|
}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
+
import { DeepOmitNever } from 'ts-gems';
|
|
1
2
|
export declare function cloneObject<T extends {}>(obj: T, jsonOnly?: boolean): T;
|
|
2
3
|
export declare function omitUndefined<T>(obj: T, recursive?: boolean): T;
|
|
4
|
+
export declare function omitNullish<T>(obj: T, recursive?: boolean): DeepOmitNever<T>;
|
package/types/types.d.ts
CHANGED
|
@@ -1,7 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export type PartialInput<T> = HighDeepNullish<DeepPickWritable<T>>;
|
|
3
|
-
export type PartialOutput<T> = HighDeepNullish<T>;
|
|
1
|
+
import type { IfNoDeepValue, IfUndefined, OmitNever, Type, WritableKeys } from 'ts-gems';
|
|
4
2
|
export type Thunk<T> = T | (() => T);
|
|
5
3
|
export type ThunkAsync<T> = Thunk<T> | Thunk<Promise<T>>;
|
|
6
4
|
export type TypeThunk<T = any> = Thunk<Type<T>>;
|
|
7
5
|
export type TypeThunkAsync<T = any> = ThunkAsync<Type<T>>;
|
|
6
|
+
/**
|
|
7
|
+
* Returns given type as a Data Transfer Object (DTO) interface, Removes symbol keys and function properties.
|
|
8
|
+
* @template T - The type of the data being transferred.
|
|
9
|
+
*/
|
|
10
|
+
export type DTO<T> = _DTO<Exclude<T, undefined>>;
|
|
11
|
+
type _DTO<T, K extends keyof T = WritableKeys<T>> = T extends (infer U)[] ? DTO<U>[] : IfNoDeepValue<T> extends true ? T : OmitNever<{
|
|
12
|
+
[P in K]: P extends symbol ? never : T[P] extends Function ? never : DTO<Exclude<T[P], undefined>>;
|
|
13
|
+
}>;
|
|
14
|
+
export type PartialDTO<T> = _PartialDTO<Exclude<T, undefined>>;
|
|
15
|
+
type _PartialDTO<T, K extends keyof T = WritableKeys<T>> = T extends (infer U)[] ? PartialDTO<U>[] : IfNoDeepValue<T> extends true ? T : OmitNever<{
|
|
16
|
+
[P in K]?: P extends symbol ? never : T[P] extends Function ? never : PartialDTO<Exclude<T[P], undefined>>;
|
|
17
|
+
}>;
|
|
18
|
+
export type PatchDTO<T> = _PatchDTO<Exclude<T, undefined>>;
|
|
19
|
+
type _PatchDTO<T, K extends keyof T = WritableKeys<T>> = T extends (infer U)[] ? PatchDTO<U>[] : IfNoDeepValue<T> extends true ? T : OmitNever<{
|
|
20
|
+
[P in K]?: P extends symbol ? never : T[P] extends Function ? never : IfUndefined<T> extends true ? T[P] : PatchDTO<Exclude<T[P], undefined>> | null;
|
|
21
|
+
}>;
|
|
22
|
+
export {};
|