Skip to content

setQueryDefaults

Adds default properties to context.params.query for fields the incoming query does not already constrain (including fields referenced nested in $and/$or/$nor). The query equivalent of the defaults transformer: e.g. hide template rows by default while still letting callers opt in via { isTemplate: true }. This is the same pattern softDelete uses to filter out deleted rows. Works as a before or around hook.

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

Example

ts
import { setQueryDefaults } from 'feathers-utils/hooks'

app.service('posts').hooks({
  before: { all: [setQueryDefaults({ isTemplate: false })] },
})
// find() => filters out templates
// find({ query: { isTemplate: true } }) => caller keeps control

Type declaration

Show Type Declarations
ts
/**
 * Adds default properties to `context.params.query` for fields the incoming query does
 * not already constrain (including fields referenced nested in `$and`/`$or`/`$nor`).
 * The query equivalent of the `defaults` transformer: e.g. hide template rows by default
 * while still letting callers opt in via `{ isTemplate: true }`. This is the same pattern
 * `softDelete` uses to filter out deleted rows. Works as a `before` or `around` hook.
 *
 * @example
 * ```ts
 *
 *
 * app.service('posts').hooks({
 *   before: { all: [setQueryDefaults({ isTemplate: false })] },
 * })
 * // find() => filters out templates
 * // find({ query: { isTemplate: true } }) => caller keeps control
 * ```
 *
 * @see https://utils.feathersjs.com/hooks/set-query-defaults.html
 */
export declare const setQueryDefaults: <H extends HookContext = HookContext>(
  defaults: Query,
) => {
  (context: H): void
  (context: H, next: NextFunction): Promise<void>
}
ArgumentTypeDescription
defaultsQuery
typemethodsmulti
before, aroundfind, get, update, patch, removeyes

Released under the MIT License.