Skip to content
Prev Previous commit
Next Next commit
refactor: use public HookManager API in chainable decorator
Use clone().params/props/defaults() instead of directly accessing
internal _params/_props/_defaults properties.
  • Loading branch information
marshallswain committed Jan 31, 2026
commit 4f878f6951a96130146076387bca96c9469797ce
21 changes: 6 additions & 15 deletions packages/feathers/src/hooks/hooks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -147,23 +147,14 @@ function createChainableDecorator(manager: HookManager): ChainableHookDecorator
throw new Error('Can not apply hooks.')
}

decorator.params = (...params: string[]): ChainableHookDecorator => {
const clone = manager.clone()
clone._params = params
return createChainableDecorator(clone)
}
decorator.params = (...params: string[]): ChainableHookDecorator =>
createChainableDecorator(manager.clone().params(...params))

decorator.props = (props: HookContextData): ChainableHookDecorator => {
const clone = manager.clone()
clone._props = clone._props ? { ...clone._props, ...props } : { ...props }
return createChainableDecorator(clone)
}
decorator.props = (props: HookContextData): ChainableHookDecorator =>
createChainableDecorator(manager.clone().props(props))

decorator.defaults = (defaults: HookDefaultsInitializer): ChainableHookDecorator => {
const clone = manager.clone()
clone._defaults = defaults
return createChainableDecorator(clone)
}
decorator.defaults = (defaults: HookDefaultsInitializer): ChainableHookDecorator =>
createChainableDecorator(manager.clone().defaults(defaults))

return decorator as ChainableHookDecorator
}
Expand Down
Loading