feathers-utils 3.0.0 → 3.0.2

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.cjs CHANGED
@@ -601,6 +601,13 @@ const validateQueryProperty = (query, operators = []) => {
601
601
  };
602
602
  };
603
603
 
604
+ const toJSON = (context) => {
605
+ if (context.toJSON) {
606
+ return context.toJSON();
607
+ }
608
+ return context;
609
+ };
610
+
604
611
  function checkMulti() {
605
612
  return (context) => {
606
613
  if (shouldSkip("checkMulti", context)) {
@@ -823,7 +830,7 @@ function setData(from, to, _options) {
823
830
  }
824
831
  throw new errors.Forbidden(`Expected field ${from.toString()} not available`);
825
832
  }
826
- const val = _get__default(context, from);
833
+ const val = _get__default(toJSON(context), from);
827
834
  items.forEach((item) => {
828
835
  let overwrite;
829
836
  if (typeof options.overwrite === "function") {
@@ -973,4 +980,5 @@ exports.runPerItem = runPerItem;
973
980
  exports.setData = setData;
974
981
  exports.setResultEmpty = setResultEmpty;
975
982
  exports.shouldSkip = shouldSkip;
983
+ exports.toJSON = toJSON;
976
984
  exports.validateQueryProperty = validateQueryProperty;
package/dist/index.d.ts CHANGED
@@ -115,7 +115,7 @@ declare class DebouncedStore {
115
115
  private _options;
116
116
  private _isRunningById;
117
117
  _queueById: Record<string, DebouncedFunc<(id: Id, action: DebouncedFunctionApp) => void | Promise<void>>>;
118
- add: (id: Id, action: (app?: Application) => void | Promise<void>) => void | Promise<void> | undefined;
118
+ add: any;
119
119
  constructor(app: Application, options?: Partial<DebouncedStoreOptions>);
120
120
  private unbounced;
121
121
  private debounceById;
@@ -181,7 +181,7 @@ declare const isPaginated: <H extends HookContext<_feathersjs_feathers.Applicati
181
181
  /**
182
182
  * util to mark a hook for skip, has to be used with `shouldSkip`
183
183
  */
184
- declare function markHookForSkip<H extends HookContext = HookContext>(hookName: string, type: "all" | MaybeArray<HookType>, context?: H): H | undefined;
184
+ declare function markHookForSkip<H extends HookContext = HookContext>(hookName: string, type: "all" | MaybeArray<HookType>, context?: H): H;
185
185
 
186
186
  interface PushSetOptions {
187
187
  unique?: boolean;
@@ -209,6 +209,8 @@ declare const shouldSkip: <H extends HookContext<_feathersjs_feathers.Applicatio
209
209
  */
210
210
  declare const validateQueryProperty: (query: any, operators?: string[]) => Query;
211
211
 
212
+ declare const toJSON: (context: HookContext) => HookContext<_feathersjs_feathers.Application<any, any>, any>;
213
+
212
214
  declare const filterArray: <T extends string[]>(...keys: T) => { [key in T[number]]: (value: any, options: FilterQueryOptions$1) => any; };
213
215
 
214
216
  declare const filterObject: <T extends string[]>(...keys: T) => { [key in T[number]]: (value: any, options: FilterQueryOptions$1) => any; };
@@ -259,4 +261,4 @@ type InferRemoveResultFromPath<App extends Application, Path extends string, IdO
259
261
  type InferDataFromPath<App extends Application, Path extends string, Method extends "create" | "update" | "patch"> = Method extends "create" ? InferCreateDataFromPath<App, Path> : Method extends "update" ? InferUpdateDataFromPath<App, Path> : Method extends "patch" ? InferPatchDataFromPath<App, Path> : never;
260
262
  type InferResultFromPath<App extends Application, Path extends string, Method extends "get" | "find" | "create" | "update" | "patch" | "remove"> = Method extends "get" ? InferGetResultFromPath<App, Path> : Method extends "find" ? InferFindResultFromPath<App, Path> : Method extends "create" ? InferCreateResultFromPath<App, Path> : Method extends "update" ? InferUpdateResultFromPath<App, Path> : Method extends "patch" ? InferPatchResultFromPath<App, Path> : Method extends "remove" ? InferRemoveResultFromPath<App, Path> : never;
261
263
 
262
- export { ActionOnEmptyIntersect, CreateRelatedOptions, DebouncedFunctionApp, DebouncedService, DebouncedStore, DebouncedStoreOptions, FilterQueryOptions, FirstLast, GetItemsIsArrayOptions, GetItemsIsArrayResult, GetService, Handle, HookForEachOptions, HookRunPerItemOptions, HookSetDataOptions, InferCreateData, InferCreateDataFromPath, InferCreateDataSingle, InferCreateDataSingleFromPath, InferCreateResult, InferCreateResultFromPath, InferCreateResultSingle, InferCreateResultSingleFromPath, InferDataFromPath, InferFindResult, InferFindResultFromPath, InferGetResult, InferGetResultFromPath, InferPatchData, InferPatchDataFromPath, InferPatchResult, InferPatchResultFromPath, InferRemoveResult, InferRemoveResultFromPath, InferResultFromPath, InferUpdateData, InferUpdateDataFromPath, InferUpdateResult, InferUpdateResultFromPath, InitDebounceMixinOptions, MergeQueryOptions, OnDeleteAction, OnDeleteOptions, Predicate, PredicateWithContext, PushSetOptions, RemoveRelatedOptions, ShouldSkipOptions, checkMulti, createRelated, debounceMixin, filterArray, filterObject, filterQuery, forEach, getItemsIsArray, getPaginate, isMulti, isPaginated, makeDefaultOptions, markHookForSkip, mergeArrays, mergeQuery, onDelete, parseFields, pushSet, removeRelated, runPerItem, setData, setResultEmpty, shouldSkip, validateQueryProperty };
264
+ export { ActionOnEmptyIntersect, CreateRelatedOptions, DebouncedFunctionApp, DebouncedService, DebouncedStore, DebouncedStoreOptions, FilterQueryOptions, FirstLast, GetItemsIsArrayOptions, GetItemsIsArrayResult, GetService, Handle, HookForEachOptions, HookRunPerItemOptions, HookSetDataOptions, InferCreateData, InferCreateDataFromPath, InferCreateDataSingle, InferCreateDataSingleFromPath, InferCreateResult, InferCreateResultFromPath, InferCreateResultSingle, InferCreateResultSingleFromPath, InferDataFromPath, InferFindResult, InferFindResultFromPath, InferGetResult, InferGetResultFromPath, InferPatchData, InferPatchDataFromPath, InferPatchResult, InferPatchResultFromPath, InferRemoveResult, InferRemoveResultFromPath, InferResultFromPath, InferUpdateData, InferUpdateDataFromPath, InferUpdateResult, InferUpdateResultFromPath, InitDebounceMixinOptions, MergeQueryOptions, OnDeleteAction, OnDeleteOptions, Predicate, PredicateWithContext, PushSetOptions, RemoveRelatedOptions, ShouldSkipOptions, checkMulti, createRelated, debounceMixin, filterArray, filterObject, filterQuery, forEach, getItemsIsArray, getPaginate, isMulti, isPaginated, makeDefaultOptions, markHookForSkip, mergeArrays, mergeQuery, onDelete, parseFields, pushSet, removeRelated, runPerItem, setData, setResultEmpty, shouldSkip, toJSON, validateQueryProperty };
package/dist/index.mjs CHANGED
@@ -587,6 +587,13 @@ const validateQueryProperty = (query, operators = []) => {
587
587
  };
588
588
  };
589
589
 
590
+ const toJSON = (context) => {
591
+ if (context.toJSON) {
592
+ return context.toJSON();
593
+ }
594
+ return context;
595
+ };
596
+
590
597
  function checkMulti() {
591
598
  return (context) => {
592
599
  if (shouldSkip("checkMulti", context)) {
@@ -809,7 +816,7 @@ function setData(from, to, _options) {
809
816
  }
810
817
  throw new Forbidden(`Expected field ${from.toString()} not available`);
811
818
  }
812
- const val = _get(context, from);
819
+ const val = _get(toJSON(context), from);
813
820
  items.forEach((item) => {
814
821
  let overwrite;
815
822
  if (typeof options.overwrite === "function") {
@@ -935,4 +942,4 @@ const filterObject = (...keys) => {
935
942
  return result;
936
943
  };
937
944
 
938
- export { DebouncedStore, checkMulti, createRelated, debounceMixin, filterArray, filterObject, filterQuery, forEach, getItemsIsArray, getPaginate, isMulti, isPaginated, makeDefaultOptions, markHookForSkip, mergeArrays, mergeQuery, onDelete, parseFields, pushSet, removeRelated, runPerItem, setData, setResultEmpty, shouldSkip, validateQueryProperty };
945
+ export { DebouncedStore, checkMulti, createRelated, debounceMixin, filterArray, filterObject, filterQuery, forEach, getItemsIsArray, getPaginate, isMulti, isPaginated, makeDefaultOptions, markHookForSkip, mergeArrays, mergeQuery, onDelete, parseFields, pushSet, removeRelated, runPerItem, setData, setResultEmpty, shouldSkip, toJSON, validateQueryProperty };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "feathers-utils",
3
- "version": "3.0.0",
3
+ "version": "3.0.2",
4
4
  "description": "Some utils for projects using '@feathersjs/feathers'",
5
5
  "author": "fratzinger",
6
6
  "repository": {
@@ -12,14 +12,15 @@
12
12
  },
13
13
  "homepage": "https://github.com/fratzinger/feathers-utils",
14
14
  "license": "MIT",
15
- "type": "module",
16
15
  "exports": {
17
16
  ".": {
17
+ "types": "./dist/index.d.ts",
18
18
  "import": "./dist/index.mjs",
19
19
  "require": "./dist/index.cjs"
20
20
  }
21
21
  },
22
22
  "main": "./dist/index.cjs",
23
+ "module": "./dist/index.mjs",
23
24
  "types": "./dist/index.d.ts",
24
25
  "files": [
25
26
  "CHANGELOG.md",
@@ -8,6 +8,7 @@ import { getItemsIsArray, shouldSkip } from "../utils";
8
8
  import type { HookContext } from "@feathersjs/feathers";
9
9
  import type { PropertyPath } from "lodash";
10
10
  import type { PredicateWithContext } from "../types";
11
+ import { toJSON } from "../utils/toJSON";
11
12
 
12
13
  export interface HookSetDataOptions {
13
14
  allowUndefined?: boolean;
@@ -53,7 +54,7 @@ export function setData<H extends HookContext = HookContext>(
53
54
  throw new Forbidden(`Expected field ${from.toString()} not available`);
54
55
  }
55
56
 
56
- const val = _get(context, from);
57
+ const val = _get(toJSON(context), from);
57
58
 
58
59
  items.forEach((item: Record<string, unknown>) => {
59
60
  let overwrite: boolean;
@@ -9,3 +9,4 @@ export * from "./pushSet";
9
9
  export * from "./setResultEmpty";
10
10
  export * from "./shouldSkip";
11
11
  export * from "./validateQueryProperty";
12
+ export * from "./toJSON";
@@ -0,0 +1,8 @@
1
+ import type { HookContext } from "@feathersjs/feathers";
2
+
3
+ export const toJSON = (context: HookContext) => {
4
+ if (context.toJSON) {
5
+ return context.toJSON();
6
+ }
7
+ return context;
8
+ };