@feathersjs/hooks
Advanced tools
Comparing version 0.7.6 to 0.8.0
@@ -6,4 +6,4 @@ # Change Log | ||
## [0.7.6](https://github.com/feathersjs/hooks/compare/v0.7.5...v0.7.6) (2022-12-08) | ||
# [0.8.0](https://github.com/feathersjs/hooks/compare/v0.7.6...v0.8.0) (2023-02-07) | ||
**Note:** Version bump only for package @feathersjs/hooks |
@@ -1,2 +0,2 @@ | ||
import { copyProperties, copyToSelf } from './utils.js'; | ||
import { copyProperties } from './utils.js'; | ||
export const HOOKS = Symbol('@feathersjs/hooks'); | ||
@@ -114,3 +114,2 @@ /** | ||
super(data); | ||
copyToSelf(this); | ||
} | ||
@@ -117,0 +116,0 @@ }; |
@@ -6,4 +6,3 @@ import { compose } from './compose.js'; | ||
context.type = type; | ||
return Promise.resolve(hook.call(context.self, context)) | ||
.then((res) => { | ||
return Promise.resolve(hook.call(context.self, context)).then((res) => { | ||
if (type) | ||
@@ -35,6 +34,11 @@ context.type = typeBefore; | ||
} | ||
return runHook(hook, context, 'error').then(() => { | ||
return runHook(hook, context, 'error') | ||
.then(() => { | ||
if (context.result === undefined && context.error !== undefined) { | ||
throw context.error; | ||
} | ||
}) | ||
.catch((error) => { | ||
context.error = error; | ||
throw context.error; | ||
}); | ||
@@ -44,3 +48,3 @@ }); | ||
} | ||
export function collect({ before = [], after = [], error = [] }) { | ||
export function collect({ before = [], after = [], error = [], }) { | ||
const beforeHooks = before.map(fromBeforeHook); | ||
@@ -47,0 +51,0 @@ const afterHooks = [...after].reverse().map(fromAfterHook); |
@@ -1,37 +0,8 @@ | ||
const proto = Object.prototype; | ||
// These are non-standard but offer a more reliable prototype based | ||
// lookup for properties | ||
const hasProtoDefinitions = typeof proto.__lookupGetter__ === 'function' && | ||
typeof proto.__defineGetter__ === 'function' && | ||
typeof proto.__defineSetter__ === 'function'; | ||
export function copyToSelf(target) { | ||
// tslint:disable-next-line | ||
for (const key in target) { | ||
if (!Object.hasOwnProperty.call(target, key)) { | ||
const getter = hasProtoDefinitions | ||
? target.constructor.prototype.__lookupGetter__(key) | ||
: Object.getOwnPropertyDescriptor(target, key); | ||
if (hasProtoDefinitions && getter) { | ||
target.__defineGetter__(key, getter); | ||
const setter = target.constructor.prototype.__lookupSetter__(key); | ||
if (setter) { | ||
target.__defineSetter__(key, setter); | ||
} | ||
} | ||
else if (getter) { | ||
Object.defineProperty(target, key, getter); | ||
} | ||
else { | ||
target[key] = target[key]; | ||
} | ||
} | ||
} | ||
} | ||
export function copyProperties(target, ...originals) { | ||
for (const original of originals) { | ||
const originalProps = Object.keys(original) | ||
.concat(Object.getOwnPropertySymbols(original)); | ||
const originalProps = Object.keys(original).concat(Object.getOwnPropertySymbols(original)); | ||
for (const prop of originalProps) { | ||
const propDescriptor = Object.getOwnPropertyDescriptor(original, prop); | ||
if (propDescriptor && !Object.prototype.hasOwnProperty.call(target, prop)) { | ||
if (propDescriptor && | ||
!Object.prototype.hasOwnProperty.call(target, prop)) { | ||
Object.defineProperty(target, prop, propDescriptor); | ||
@@ -38,0 +9,0 @@ } |
@@ -6,3 +6,3 @@ { | ||
"name": "@feathersjs/hooks", | ||
"version": "0.7.6", | ||
"version": "0.8.0", | ||
"description": "Async middleware for JavaScript and TypeScript", | ||
@@ -44,3 +44,3 @@ "homepage": "https://feathersjs.com", | ||
}, | ||
"gitHead": "2490de640a198759526293268a2c2f4ce81714d2" | ||
"gitHead": "d1ba68f78e76d1722b6e6945ffef6a14ecd5a9c3" | ||
} |
@@ -118,3 +118,2 @@ "use strict"; | ||
super(data); | ||
(0, utils_js_1.copyToSelf)(this); | ||
} | ||
@@ -121,0 +120,0 @@ }; |
@@ -9,4 +9,3 @@ "use strict"; | ||
context.type = type; | ||
return Promise.resolve(hook.call(context.self, context)) | ||
.then((res) => { | ||
return Promise.resolve(hook.call(context.self, context)).then((res) => { | ||
if (type) | ||
@@ -42,6 +41,11 @@ context.type = typeBefore; | ||
} | ||
return (0, exports.runHook)(hook, context, 'error').then(() => { | ||
return (0, exports.runHook)(hook, context, 'error') | ||
.then(() => { | ||
if (context.result === undefined && context.error !== undefined) { | ||
throw context.error; | ||
} | ||
}) | ||
.catch((error) => { | ||
context.error = error; | ||
throw context.error; | ||
}); | ||
@@ -52,3 +56,3 @@ }); | ||
exports.fromErrorHook = fromErrorHook; | ||
function collect({ before = [], after = [], error = [] }) { | ||
function collect({ before = [], after = [], error = [], }) { | ||
const beforeHooks = before.map(fromBeforeHook); | ||
@@ -55,0 +59,0 @@ const afterHooks = [...after].reverse().map(fromAfterHook); |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.copyFnProperties = exports.copyProperties = exports.copyToSelf = void 0; | ||
const proto = Object.prototype; | ||
// These are non-standard but offer a more reliable prototype based | ||
// lookup for properties | ||
const hasProtoDefinitions = typeof proto.__lookupGetter__ === 'function' && | ||
typeof proto.__defineGetter__ === 'function' && | ||
typeof proto.__defineSetter__ === 'function'; | ||
function copyToSelf(target) { | ||
// tslint:disable-next-line | ||
for (const key in target) { | ||
if (!Object.hasOwnProperty.call(target, key)) { | ||
const getter = hasProtoDefinitions | ||
? target.constructor.prototype.__lookupGetter__(key) | ||
: Object.getOwnPropertyDescriptor(target, key); | ||
if (hasProtoDefinitions && getter) { | ||
target.__defineGetter__(key, getter); | ||
const setter = target.constructor.prototype.__lookupSetter__(key); | ||
if (setter) { | ||
target.__defineSetter__(key, setter); | ||
} | ||
} | ||
else if (getter) { | ||
Object.defineProperty(target, key, getter); | ||
} | ||
else { | ||
target[key] = target[key]; | ||
} | ||
} | ||
} | ||
} | ||
exports.copyToSelf = copyToSelf; | ||
exports.copyFnProperties = exports.copyProperties = void 0; | ||
function copyProperties(target, ...originals) { | ||
for (const original of originals) { | ||
const originalProps = Object.keys(original) | ||
.concat(Object.getOwnPropertySymbols(original)); | ||
const originalProps = Object.keys(original).concat(Object.getOwnPropertySymbols(original)); | ||
for (const prop of originalProps) { | ||
const propDescriptor = Object.getOwnPropertyDescriptor(original, prop); | ||
if (propDescriptor && !Object.prototype.hasOwnProperty.call(target, prop)) { | ||
if (propDescriptor && | ||
!Object.prototype.hasOwnProperty.call(target, prop)) { | ||
Object.defineProperty(target, prop, propDescriptor); | ||
@@ -42,0 +12,0 @@ } |
@@ -13,2 +13,2 @@ import { HookContext } from './base.js'; | ||
export declare function fromErrorHook(hook: RegularMiddleware): (context: any, next: any) => any; | ||
export declare function collect({ before, after, error }: RegularHookMap): (this: any, context: any, next?: import("./compose.js").AsyncMiddleware<any> | undefined) => Promise<any>; | ||
export declare function collect({ before, after, error, }: RegularHookMap): (this: any, context: any, next?: import("./compose.js").AsyncMiddleware<any> | undefined) => Promise<any>; |
@@ -1,3 +0,2 @@ | ||
export declare function copyToSelf(target: any): void; | ||
export declare function copyProperties<F>(target: F, ...originals: any[]): F; | ||
export declare function copyFnProperties<F>(target: F, original: any): F; |
39439
990