Skip to content

resolve

resolvers
Source Code | Documentation

Combines data, query, and result resolvers into a single around hook. Data and query resolvers run before next(), while the result resolver runs after. At least one resolver must be provided.

ts
  import {  } from 'feathers-utils/resolvers';

Example

ts
import { resolve, lowercase, omit } from 'feathers-utils/resolvers'

app.service('users').hooks({
  around: {
    all: [resolve({
      data: { email: lowercase() },
      result: { password: omit() },
    })]
  }
})

Type declaration

Show Type Declarations
ts
type Data<H extends HookContext> = AnyFallback<
  DataSingleHookContext<H>,
  Record<string, any>
>
type Result<H extends HookContext> = AnyFallback<
  ResultSingleHookContext<H>,
  Record<string, any>
>
/**
 * Combines `data`, `query`, and `result` resolvers into a single around hook.
 * Data and query resolvers run before `next()`, while the result resolver runs after.
 * At least one resolver must be provided.
 *
 * @example
 * ```ts
 *
 *
 * app.service('users').hooks({
 *   around: {
 *     all: [resolve({
 *       data: { email: lowercase() },
 *       result: { password: omit() },
 *     })]
 *   }
 * })
 * ```
 *
 * @see https://utils.feathersjs.com/resolvers/resolve.html
 */
export declare const resolve: <
  H extends HookContext = HookContext,
  D = Data<H>,
  R = Result<H>,
>(resolverProperties: {
  data?: ResolverObject<D, H>
  query?: ResolverObject<any, H>
  result?: ResolverObject<R, H>
}) => (context: H, next?: NextFunction) => Promise<void>
ArgumentTypeDescription
resolverProperties{ data?: ResolverObject<D, H> query?: ResolverObject<any, H> result?: ResolverObject<R, H> }
typemethodsmulti
aroundfind, get, create, update, patch, removeyes

resolve is a combined around hook that resolves data, query, and result in a single call. Data and query resolvers run before next(), result resolvers run after. At least one resolver category must be provided.

Resolver Helpers

ResolverDescription
defaults

Returns a resolver property that sets a default value when the current value is undefined or null. Accepts a static value or a function that receives the hook context.

fromPredicate

Adapts an existing predicate function (like isProvider, isContext) into a resolver condition. The predicate receives the hook context extracted from the resolver options. Only synchronous predicates are supported.

lowercase

Returns a resolver property that converts string values to lowercase. Non-string values are passed through unchanged.

omit

Returns a resolver property that removes the field by returning undefined. When a condition is provided, the field is only omitted if the condition returns true.

setNow

Returns a resolver property that sets the field to the current timestamp (Date.now()). Always overwrites the existing value.

trim

Returns a resolver property that trims whitespace from string values. Non-string values are passed through unchanged.

Conditions

ConditionDescription

Released under the MIT License.