Socket
Socket
Sign inDemoInstall

@feathersjs/hooks

Package Overview
Dependencies
Maintainers
4
Versions
22
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@feathersjs/hooks - npm Package Compare versions

Comparing version 0.6.4 to 0.6.5

11

CHANGELOG.md

@@ -6,2 +6,13 @@ # Change Log

## [0.6.5](https://github.com/feathersjs/hooks/compare/v0.6.4...v0.6.5) (2021-04-20)
### Bug Fixes
* **typescript:** Tighten up TypeScript settings to be ECMAScript and Deno compatible ([#81](https://github.com/feathersjs/hooks/issues/81)) ([28fe875](https://github.com/feathersjs/hooks/commit/28fe8758b4764981473830db4a0013dd1beca489))
## [0.6.4](https://github.com/feathersjs/hooks/compare/v0.6.3...v0.6.4) (2021-04-11)

@@ -8,0 +19,0 @@

31

deno/base.ts

@@ -11,7 +11,4 @@ import { Middleware } from './compose.ts';

*/
export class HookContext<T = any, C = any> {
result?: T;
method?: string;
self: C;
arguments: any[];
export class BaseHookContext<C = any> {
self?: C;
[key: string]: any;

@@ -24,4 +21,10 @@

export type HookContextConstructor = new (data?: { [key: string]: any }) => HookContext;
export interface HookContext<T = any, C = any> extends BaseHookContext<C> {
result?: T;
method?: string;
arguments: any[];
}
export type HookContextConstructor = new (data?: { [key: string]: any }) => BaseHookContext;
export type HookDefaultsInitializer = (self?: any, args?: any[], context?: HookContext) => HookContextData;

@@ -34,5 +37,5 @@

_props: HookContextData|null = null;
_defaults: HookDefaultsInitializer;
_defaults?: HookDefaultsInitializer;
parent (parent: this) {
parent (parent: this|null) {
this._parent = parent;

@@ -67,3 +70,3 @@

return otherMiddleware || middleware;
return otherMiddleware || middleware || [];
}

@@ -81,3 +84,3 @@

getProps (): HookContextData {
getProps (): HookContextData|null {
const previous = this._parent?.getProps();

@@ -89,3 +92,3 @@

return previous || this._props;
return previous || this._props || null;
}

@@ -99,3 +102,3 @@

getParams (): string[] {
getParams (): string[]|null {
const previous = this._parent?.getParams();

@@ -116,3 +119,3 @@

getDefaults (self: any, args: any[], context: HookContext): HookContextData {
getDefaults (self: any, args: any[], context: HookContext): HookContextData|null {
const defaults = typeof this._defaults === 'function' ? this._defaults(self, args, context) : null;

@@ -128,3 +131,3 @@ const previous = this._parent?.getDefaults(self, args, context);

getContextClass (Base: HookContextConstructor = HookContext): HookContextConstructor {
getContextClass (Base: HookContextConstructor = BaseHookContext): HookContextConstructor {
const ContextClass = class ContextClass extends Base {

@@ -131,0 +134,0 @@ constructor (data: any) {

@@ -30,3 +30,3 @@ // TypeScript port of koa-compose (https://github.com/koajs/compose)

let fn = middleware[i];
let fn: Middleware|undefined = middleware[i];

@@ -33,0 +33,0 @@ if (i === middleware.length) {

@@ -5,3 +5,3 @@ import { compose, Middleware } from './compose.ts';

} from './base.ts';
import { copyProperties } from './utils.ts';
import { copyFnProperties, copyProperties } from './utils.ts';

@@ -55,2 +55,3 @@ export function getOriginal (fn: any): any {

copyFnProperties(wrapper, fn);
copyProperties(wrapper, fn);

@@ -57,0 +58,0 @@ setManager(wrapper, manager);

@@ -28,2 +28,3 @@ import { Middleware } from './compose.ts';

* @param mw The list of middleware
* @param options Middleware options (params, default, props)
*/

@@ -59,3 +60,4 @@ export function middleware (mw?: Middleware[], options?: MiddlewareOptions) {

export function hooks<F, T = any> (
fn: F, manager: HookManager
fn: F&(() => void),
manager?: HookManager
): WrappedFunction<F, T>;

@@ -73,6 +75,6 @@

* Decorate a class method with hooks.
* @param _manager The hooks settings
* @param manager The hooks settings
*/
export function hooks<T = any> (
_manager?: HookOptions
manager?: HookOptions
): any;

@@ -84,3 +86,3 @@

if (typeof target === 'function' && (_hooks instanceof HookManager || Array.isArray(_hooks))) {
if (typeof target === 'function' && (_hooks instanceof HookManager || Array.isArray(_hooks) || args.length === 1)) {
return functionHooks(target, _hooks);

@@ -87,0 +89,0 @@ }

@@ -40,3 +40,3 @@ const proto = Object.prototype as any;

if (!target.hasOwnProperty(prop)) {
if (propDescriptor && !Object.prototype.hasOwnProperty.call(target, prop)) {
Object.defineProperty(target, prop, propDescriptor);

@@ -49,1 +49,17 @@ }

}
export function copyFnProperties <F> (target: F, original : any) {
const internalProps = ['name', 'length'];
try {
for (const prop of internalProps) {
const value = original[prop];
Object.defineProperty(target, prop, { value });
}
} catch (e) {
// Avoid IE error
}
return target;
}

@@ -1,1 +0,1 @@

!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.hooks=e():t.hooks=e()}(this,(function(){return(()=>{"use strict";var t={150:(t,e,o)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.setMiddleware=e.getMiddleware=e.setManager=e.getManager=e.convertOptions=e.HookManager=e.HookContext=e.HOOKS=void 0;const r=o(930);e.HOOKS=Symbol("@feathersjs/hooks");class n{constructor(t={}){Object.assign(this,t)}}e.HookContext=n;class s{constructor(){this._parent=null,this._params=null,this._middleware=null,this._props=null}parent(t){return this._parent=t,this}middleware(t){return this._middleware=(null==t?void 0:t.length)?t:null,this}getMiddleware(){var t;const e=null===(t=this._parent)||void 0===t?void 0:t.getMiddleware();return e&&this._middleware?e.concat(this._middleware):e||this._middleware}collectMiddleware(t,e){const o=c(t),r=this.getMiddleware();return o&&r?o.concat(r):o||r}props(t){return this._props||(this._props={}),r.copyProperties(this._props,t),this}getProps(){var t;const e=null===(t=this._parent)||void 0===t?void 0:t.getProps();return e&&this._props?r.copyProperties({},e,this._props):e||this._props}params(...t){return this._params=t,this}getParams(){var t;const e=null===(t=this._parent)||void 0===t?void 0:t.getParams();return e&&this._params?e.concat(this._params):e||this._params}defaults(t){return this._defaults=t,this}getDefaults(t,e,o){var r;const n="function"==typeof this._defaults?this._defaults(t,e,o):null,s=null===(r=this._parent)||void 0===r?void 0:r.getDefaults(t,e,o);return s&&n?Object.assign({},s,n):s||n}getContextClass(t=n){const e=class extends t{constructor(t){super(t),r.copyToSelf(this)}},o=this.getParams(),s=this.getProps();return o&&o.forEach(((t,o)=>{if(void 0!==(null==s?void 0:s[t]))throw new Error(`Hooks can not have a property and param named '${t}'. Use .defaults instead.`);Object.defineProperty(e.prototype,t,{enumerable:!0,get(){return null==this?void 0:this.arguments[o]},set(t){this.arguments[o]=t}})})),s&&r.copyProperties(e.prototype,s),e}initializeContext(t,e,o){const r=this._parent?this._parent.initializeContext(t,e,o):o,n=this.getDefaults(t,e,r);if(t&&(r.self=t),r.arguments=e,n)for(const t of Object.keys(n))void 0===r[t]&&(r[t]=n[t]);return r}}function i(t){return t&&t[e.HOOKS]||null}function a(t,o){const r=i(t);return t[e.HOOKS]=o.parent(r),t}function c(t){const e=i(t);return e?e.getMiddleware():null}e.HookManager=s,e.convertOptions=function(t=null){return t?Array.isArray(t)?(new s).middleware(t):t:new s},e.getManager=i,e.setManager=a,e.getMiddleware=c,e.setMiddleware=function(t,e){return a(t,(new s).middleware(e))}},85:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.compose=void 0,e.compose=function(t){if(!Array.isArray(t))throw new TypeError("Middleware stack must be an array!");for(const e of t)if("function"!=typeof e)throw new TypeError("Middleware must be composed of functions!");return function(e,o){let r=-1;return function n(s){if(s<=r)return Promise.reject(new Error("next() called multiple times"));r=s;let i=t[s];if(s===t.length&&(i=o),!i)return Promise.resolve();try{return Promise.resolve(i.call(this,e,n.bind(this,s+1)))}catch(t){return Promise.reject(t)}}.call(this,0)}}},460:(t,e,o)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.hookDecorator=e.objectHooks=e.functionHooks=e.getOriginal=void 0;const r=o(85),n=o(150),s=o(930);function i(t){return"function"==typeof t.original?i(t.original):t}function a(t,e){if("function"!=typeof t)throw new Error("Can not apply hooks to non-function");const o=n.convertOptions(e),a=function(...t){const{Context:e,original:n}=a,s=t[t.length-1]instanceof e,i=s?t.pop():new e,c=o.initializeContext(this,t,i),p=[(t,e)=>e().then((()=>s?t:t.result))],u=o.collectMiddleware(this,t);return u&&Array.prototype.push.apply(p,u),p.push(((t,e)=>Object.prototype.hasOwnProperty.call(c,"result")?e():Promise.resolve(n.apply(this,t.arguments)).then((o=>(t.result=o,e()))))),r.compose(p).call(this,c)};return s.copyFnProperties(a,t),s.copyProperties(a,t),n.setManager(a,o),Object.assign(a,{original:i(t),Context:o.getContextClass(),createContext:(t={})=>new a.Context(t)})}e.getOriginal=i,e.functionHooks=a,e.objectHooks=function(t,e){const o="function"==typeof t?t.prototype:t;return Array.isArray(e)?n.setMiddleware(o,e):Object.keys(e).reduce(((t,r)=>{const s=o[r];if("function"!=typeof s)throw new Error(`Can not apply hooks. '${r}' is not a function`);const i=n.convertOptions(e[r]);return t[r]=a(s,i.props({method:r})),t}),o)},e.hookDecorator=t=>(e,o,r)=>{const s=n.convertOptions(t);if(!r)return n.setManager(e.prototype,s),e;const i=r.value;if("function"!=typeof i)throw new Error(`Can not apply hooks. '${o}' is not a function`);return r.value=a(i,s.props({method:o})),r}},920:function(t,e,o){var r=this&&this.__createBinding||(Object.create?function(t,e,o,r){void 0===r&&(r=o),Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[o]}})}:function(t,e,o,r){void 0===r&&(r=o),t[r]=e[o]}),n=this&&this.__exportStar||function(t,e){for(var o in t)"default"===o||Object.prototype.hasOwnProperty.call(e,o)||r(e,t,o)};Object.defineProperty(e,"__esModule",{value:!0}),e.hooks=e.middleware=void 0;const s=o(150),i=o(460);n(o(460),e),n(o(85),e),n(o(150),e),e.middleware=function(t,e){const o=(new s.HookManager).middleware(t);return e&&(e.params&&o.params(...e.params),e.defaults&&o.defaults(e.defaults),e.props&&o.props(e.props)),o},e.hooks=function(...t){const[e,o]=t;return"function"==typeof e&&(o instanceof s.HookManager||Array.isArray(o)||1===t.length)?i.functionHooks(e,o):2===t.length?i.objectHooks(e,o):i.hookDecorator(e)}},930:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.copyFnProperties=e.copyProperties=e.copyToSelf=void 0;const o=Object.prototype,r="function"==typeof o.__lookupGetter__&&"function"==typeof o.__defineGetter__&&"function"==typeof o.__defineSetter__;e.copyToSelf=function(t){for(const e in t)if(!t.hasOwnProperty(e)){const o=r?t.constructor.prototype.__lookupGetter__(e):Object.getOwnPropertyDescriptor(t,e);if(r&&o){t.__defineGetter__(e,o);const r=t.constructor.prototype.__lookupSetter__(e);r&&t.__defineSetter__(e,r)}else o?Object.defineProperty(t,e,o):t[e]=t[e]}},e.copyProperties=function(t,...e){for(const o of e){const e=Object.keys(o).concat(Object.getOwnPropertySymbols(o));for(const r of e){const e=Object.getOwnPropertyDescriptor(o,r);t.hasOwnProperty(r)||Object.defineProperty(t,r,e)}}return t},e.copyFnProperties=function(t,e){const o=["name","length"];try{for(const r of o){const o=e[r];Object.defineProperty(t,r,{value:o})}}catch(t){}return t}}},e={};return function o(r){if(e[r])return e[r].exports;var n=e[r]={exports:{}};return t[r].call(n.exports,n,n.exports,o),n.exports}(920)})()}));
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.hooks=t():e.hooks=t()}(this,(function(){return(()=>{"use strict";var e={150:(e,t,o)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.setMiddleware=t.getMiddleware=t.setManager=t.getManager=t.convertOptions=t.HookManager=t.BaseHookContext=t.HOOKS=void 0;const r=o(930);t.HOOKS=Symbol("@feathersjs/hooks");class n{constructor(e={}){Object.defineProperty(this,"self",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.assign(this,e)}}t.BaseHookContext=n;class i{constructor(){Object.defineProperty(this,"_parent",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_params",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_middleware",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_props",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_defaults",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}parent(e){return this._parent=e,this}middleware(e){return this._middleware=(null==e?void 0:e.length)?e:null,this}getMiddleware(){var e;const t=null===(e=this._parent)||void 0===e?void 0:e.getMiddleware();return t&&this._middleware?t.concat(this._middleware):t||this._middleware}collectMiddleware(e,t){const o=c(e),r=this.getMiddleware();return o&&r?o.concat(r):o||r||[]}props(e){return this._props||(this._props={}),r.copyProperties(this._props,e),this}getProps(){var e;const t=null===(e=this._parent)||void 0===e?void 0:e.getProps();return t&&this._props?r.copyProperties({},t,this._props):t||this._props||null}params(...e){return this._params=e,this}getParams(){var e;const t=null===(e=this._parent)||void 0===e?void 0:e.getParams();return t&&this._params?t.concat(this._params):t||this._params}defaults(e){return this._defaults=e,this}getDefaults(e,t,o){var r;const n="function"==typeof this._defaults?this._defaults(e,t,o):null,i=null===(r=this._parent)||void 0===r?void 0:r.getDefaults(e,t,o);return i&&n?Object.assign({},i,n):i||n}getContextClass(e=n){const t=class extends e{constructor(e){super(e),r.copyToSelf(this)}},o=this.getParams(),i=this.getProps();return o&&o.forEach(((e,o)=>{if(void 0!==(null==i?void 0:i[e]))throw new Error(`Hooks can not have a property and param named '${e}'. Use .defaults instead.`);Object.defineProperty(t.prototype,e,{enumerable:!0,get(){return null==this?void 0:this.arguments[o]},set(e){this.arguments[o]=e}})})),i&&r.copyProperties(t.prototype,i),t}initializeContext(e,t,o){const r=this._parent?this._parent.initializeContext(e,t,o):o,n=this.getDefaults(e,t,r);if(e&&(r.self=e),r.arguments=t,n)for(const e of Object.keys(n))void 0===r[e]&&(r[e]=n[e]);return r}}function s(e){return e&&e[t.HOOKS]||null}function a(e,o){const r=s(e);return e[t.HOOKS]=o.parent(r),e}function c(e){const t=s(e);return t?t.getMiddleware():null}t.HookManager=i,t.convertOptions=function(e=null){return e?Array.isArray(e)?(new i).middleware(e):e:new i},t.getManager=s,t.setManager=a,t.getMiddleware=c,t.setMiddleware=function(e,t){return a(e,(new i).middleware(t))}},85:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.compose=void 0,t.compose=function(e){if(!Array.isArray(e))throw new TypeError("Middleware stack must be an array!");for(const t of e)if("function"!=typeof t)throw new TypeError("Middleware must be composed of functions!");return function(t,o){let r=-1;return function n(i){if(i<=r)return Promise.reject(new Error("next() called multiple times"));r=i;let s=e[i];if(i===e.length&&(s=o),!s)return Promise.resolve();try{return Promise.resolve(s.call(this,t,n.bind(this,i+1)))}catch(e){return Promise.reject(e)}}.call(this,0)}}},460:(e,t,o)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.hookDecorator=t.objectHooks=t.functionHooks=t.getOriginal=void 0;const r=o(85),n=o(150),i=o(930);function s(e){return"function"==typeof e.original?s(e.original):e}function a(e,t){if("function"!=typeof e)throw new Error("Can not apply hooks to non-function");const o=n.convertOptions(t),a=function(...e){const{Context:t,original:n}=a,i=e[e.length-1]instanceof t,s=i?e.pop():new t,c=o.initializeContext(this,e,s),l=[(e,t)=>t().then((()=>i?e:e.result))],p=o.collectMiddleware(this,e);return p&&Array.prototype.push.apply(l,p),l.push(((e,t)=>Object.prototype.hasOwnProperty.call(c,"result")?t():Promise.resolve(n.apply(this,e.arguments)).then((o=>(e.result=o,t()))))),r.compose(l).call(this,c)};return i.copyFnProperties(a,e),i.copyProperties(a,e),n.setManager(a,o),Object.assign(a,{original:s(e),Context:o.getContextClass(),createContext:(e={})=>new a.Context(e)})}t.getOriginal=s,t.functionHooks=a,t.objectHooks=function(e,t){const o="function"==typeof e?e.prototype:e;return Array.isArray(t)?n.setMiddleware(o,t):Object.keys(t).reduce(((e,r)=>{const i=o[r];if("function"!=typeof i)throw new Error(`Can not apply hooks. '${r}' is not a function`);const s=n.convertOptions(t[r]);return e[r]=a(i,s.props({method:r})),e}),o)},t.hookDecorator=e=>(t,o,r)=>{const i=n.convertOptions(e);if(!r)return n.setManager(t.prototype,i),t;const s=r.value;if("function"!=typeof s)throw new Error(`Can not apply hooks. '${o}' is not a function`);return r.value=a(s,i.props({method:o})),r}},920:function(e,t,o){var r=this&&this.__createBinding||(Object.create?function(e,t,o,r){void 0===r&&(r=o),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[o]}})}:function(e,t,o,r){void 0===r&&(r=o),e[r]=t[o]}),n=this&&this.__exportStar||function(e,t){for(var o in e)"default"===o||Object.prototype.hasOwnProperty.call(t,o)||r(t,e,o)};Object.defineProperty(t,"__esModule",{value:!0}),t.hooks=t.middleware=void 0;const i=o(150),s=o(460);n(o(460),t),n(o(85),t),n(o(150),t),t.middleware=function(e,t){const o=(new i.HookManager).middleware(e);return t&&(t.params&&o.params(...t.params),t.defaults&&o.defaults(t.defaults),t.props&&o.props(t.props)),o},t.hooks=function(...e){const[t,o]=e;return"function"==typeof t&&(o instanceof i.HookManager||Array.isArray(o)||1===e.length)?s.functionHooks(t,o):2===e.length?s.objectHooks(t,o):s.hookDecorator(t)}},930:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.copyFnProperties=t.copyProperties=t.copyToSelf=void 0;const o=Object.prototype,r="function"==typeof o.__lookupGetter__&&"function"==typeof o.__defineGetter__&&"function"==typeof o.__defineSetter__;t.copyToSelf=function(e){for(const t in e)if(!e.hasOwnProperty(t)){const o=r?e.constructor.prototype.__lookupGetter__(t):Object.getOwnPropertyDescriptor(e,t);if(r&&o){e.__defineGetter__(t,o);const r=e.constructor.prototype.__lookupSetter__(t);r&&e.__defineSetter__(t,r)}else o?Object.defineProperty(e,t,o):e[t]=e[t]}},t.copyProperties=function(e,...t){for(const o of t){const t=Object.keys(o).concat(Object.getOwnPropertySymbols(o));for(const r of t){const t=Object.getOwnPropertyDescriptor(o,r);t&&!Object.prototype.hasOwnProperty.call(e,r)&&Object.defineProperty(e,r,t)}}return e},t.copyFnProperties=function(e,t){const o=["name","length"];try{for(const r of o){const o=t[r];Object.defineProperty(e,r,{value:o})}}catch(e){}return e}}},t={};return function o(r){var n=t[r];if(void 0!==n)return n.exports;var i=t[r]={exports:{}};return e[r].call(i.exports,i,i.exports,o),i.exports}(920)})()}));

@@ -9,13 +9,15 @@ import { Middleware } from './compose';

*/
export declare class HookContext<T = any, C = any> {
export declare class BaseHookContext<C = any> {
self?: C;
[key: string]: any;
constructor(data?: HookContextData);
}
export interface HookContext<T = any, C = any> extends BaseHookContext<C> {
result?: T;
method?: string;
self: C;
arguments: any[];
[key: string]: any;
constructor(data?: HookContextData);
}
export declare type HookContextConstructor = new (data?: {
[key: string]: any;
}) => HookContext;
}) => BaseHookContext;
export declare type HookDefaultsInitializer = (self?: any, args?: any[], context?: HookContext) => HookContextData;

@@ -27,4 +29,4 @@ export declare class HookManager {

_props: HookContextData | null;
_defaults: HookDefaultsInitializer;
parent(parent: this): this;
_defaults?: HookDefaultsInitializer;
parent(parent: this | null): this;
middleware(middleware?: Middleware[]): this;

@@ -34,7 +36,7 @@ getMiddleware(): Middleware[] | null;

props(props: HookContextData): this;
getProps(): HookContextData;
getProps(): HookContextData | null;
params(...params: string[]): this;
getParams(): string[];
getParams(): string[] | null;
defaults(defaults: HookDefaultsInitializer): this;
getDefaults(self: any, args: any[], context: HookContext): HookContextData;
getDefaults(self: any, args: any[], context: HookContext): HookContextData | null;
getContextClass(Base?: HookContextConstructor): HookContextConstructor;

@@ -41,0 +43,0 @@ initializeContext(self: any, args: any[], context: HookContext): HookContext;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.setMiddleware = exports.getMiddleware = exports.setManager = exports.getManager = exports.convertOptions = exports.HookManager = exports.HookContext = exports.HOOKS = void 0;
exports.setMiddleware = exports.getMiddleware = exports.setManager = exports.getManager = exports.convertOptions = exports.HookManager = exports.BaseHookContext = exports.HOOKS = void 0;
const utils_1 = require("./utils");

@@ -9,14 +9,46 @@ exports.HOOKS = Symbol('@feathersjs/hooks');

*/
class HookContext {
class BaseHookContext {
constructor(data = {}) {
Object.defineProperty(this, "self", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
Object.assign(this, data);
}
}
exports.HookContext = HookContext;
exports.BaseHookContext = BaseHookContext;
class HookManager {
constructor() {
this._parent = null;
this._params = null;
this._middleware = null;
this._props = null;
Object.defineProperty(this, "_parent", {
enumerable: true,
configurable: true,
writable: true,
value: null
});
Object.defineProperty(this, "_params", {
enumerable: true,
configurable: true,
writable: true,
value: null
});
Object.defineProperty(this, "_middleware", {
enumerable: true,
configurable: true,
writable: true,
value: null
});
Object.defineProperty(this, "_props", {
enumerable: true,
configurable: true,
writable: true,
value: null
});
Object.defineProperty(this, "_defaults", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
}

@@ -45,3 +77,3 @@ parent(parent) {

}
return otherMiddleware || middleware;
return otherMiddleware || middleware || [];
}

@@ -61,3 +93,3 @@ props(props) {

}
return previous || this._props;
return previous || this._props || null;
}

@@ -89,3 +121,3 @@ params(...params) {

}
getContextClass(Base = HookContext) {
getContextClass(Base = BaseHookContext) {
const ContextClass = class ContextClass extends Base {

@@ -92,0 +124,0 @@ constructor(data) {

export declare type NextFunction = () => Promise<any>;
export declare type Middleware<T = any> = (context: T, next: NextFunction) => Promise<any>;
export declare function compose<T = any>(middleware: Middleware<T>[]): (this: any, context: T, next?: Middleware<T>) => Promise<any>;
export declare function compose<T = any>(middleware: Middleware<T>[]): (this: any, context: T, next?: Middleware<T> | undefined) => Promise<any>;

@@ -9,2 +9,2 @@ import { Middleware } from './compose';

export declare function objectHooks(_obj: any, hooks: HookMap | Middleware[]): any;
export declare const hookDecorator: (managerOrMiddleware?: HookOptions) => any;
export declare const hookDecorator: (managerOrMiddleware?: HookOptions | undefined) => any;

@@ -76,3 +76,3 @@ "use strict";

;
exports.hookDecorator = (managerOrMiddleware) => {
const hookDecorator = (managerOrMiddleware) => {
const wrapper = (_target, method, descriptor) => {

@@ -93,2 +93,3 @@ const manager = base_1.convertOptions(managerOrMiddleware);

};
exports.hookDecorator = hookDecorator;
//# sourceMappingURL=hooks.js.map

@@ -39,3 +39,3 @@ "use strict";

const propDescriptor = Object.getOwnPropertyDescriptor(original, prop);
if (!target.hasOwnProperty(prop)) {
if (propDescriptor && !Object.prototype.hasOwnProperty.call(target, prop)) {
Object.defineProperty(target, prop, propDescriptor);

@@ -42,0 +42,0 @@ }

{
"name": "@feathersjs/hooks",
"version": "0.6.4",
"version": "0.6.5",
"description": "Async middleware for JavaScript and TypeScript",

@@ -37,6 +37,6 @@ "homepage": "https://feathersjs.com",

"prepublish": "npm run build",
"test:mocha": "mocha --config ../../.mocharc.json --recursive test/**.test.ts test/**/*.test.ts",
"test": "npm run build && npm run test:mocha",
"mocha": "mocha --config ../../.mocharc.json --recursive test/**.test.ts test/**/*.test.ts",
"test": "npm run build && npm run mocha",
"build:deno": "shx rm -rf deno && shx mkdir -p deno && node build/deno",
"test:deno": "npm run build:deno && deno test --config tsconfig.json test/deno_test.ts"
"test:deno": "npm run build:deno && deno test test/deno_test.ts"
},

@@ -59,14 +59,14 @@ "directories": {

"devDependencies": {
"@types/chai": "^4.2.15",
"@types/chai": "^4.2.16",
"@types/mocha": "^8.2.2",
"@types/node": "^14.14.37",
"@types/node": "^14.14.41",
"mocha": "^8.3.2",
"shx": "^0.3.3",
"ts-loader": "^8.1.0",
"ts-loader": "^9.0.1",
"ts-node": "^9.1.1",
"typescript": "^4.2.3",
"webpack": "^5.28.0",
"typescript": "^4.2.4",
"webpack": "^5.34.0",
"webpack-cli": "^4.6.0"
},
"gitHead": "6c63cbe628aa878d87e5ed4722d84910b6144623"
"gitHead": "61776c45dd3f23a7ca51ec3a58dc23897a2fc292"
}

@@ -11,7 +11,4 @@ import { Middleware } from './compose';

*/
export class HookContext<T = any, C = any> {
result?: T;
method?: string;
self: C;
arguments: any[];
export class BaseHookContext<C = any> {
self?: C;
[key: string]: any;

@@ -24,4 +21,10 @@

export type HookContextConstructor = new (data?: { [key: string]: any }) => HookContext;
export interface HookContext<T = any, C = any> extends BaseHookContext<C> {
result?: T;
method?: string;
arguments: any[];
}
export type HookContextConstructor = new (data?: { [key: string]: any }) => BaseHookContext;
export type HookDefaultsInitializer = (self?: any, args?: any[], context?: HookContext) => HookContextData;

@@ -34,5 +37,5 @@

_props: HookContextData|null = null;
_defaults: HookDefaultsInitializer;
_defaults?: HookDefaultsInitializer;
parent (parent: this) {
parent (parent: this|null) {
this._parent = parent;

@@ -67,3 +70,3 @@

return otherMiddleware || middleware;
return otherMiddleware || middleware || [];
}

@@ -81,3 +84,3 @@

getProps (): HookContextData {
getProps (): HookContextData|null {
const previous = this._parent?.getProps();

@@ -89,3 +92,3 @@

return previous || this._props;
return previous || this._props || null;
}

@@ -99,3 +102,3 @@

getParams (): string[] {
getParams (): string[]|null {
const previous = this._parent?.getParams();

@@ -116,3 +119,3 @@

getDefaults (self: any, args: any[], context: HookContext): HookContextData {
getDefaults (self: any, args: any[], context: HookContext): HookContextData|null {
const defaults = typeof this._defaults === 'function' ? this._defaults(self, args, context) : null;

@@ -128,3 +131,3 @@ const previous = this._parent?.getDefaults(self, args, context);

getContextClass (Base: HookContextConstructor = HookContext): HookContextConstructor {
getContextClass (Base: HookContextConstructor = BaseHookContext): HookContextConstructor {
const ContextClass = class ContextClass extends Base {

@@ -131,0 +134,0 @@ constructor (data: any) {

@@ -30,3 +30,3 @@ // TypeScript port of koa-compose (https://github.com/koajs/compose)

let fn = middleware[i];
let fn: Middleware|undefined = middleware[i];

@@ -33,0 +33,0 @@ if (i === middleware.length) {

@@ -40,3 +40,3 @@ const proto = Object.prototype as any;

if (!target.hasOwnProperty(prop)) {
if (propDescriptor && !Object.prototype.hasOwnProperty.call(target, prop)) {
Object.defineProperty(target, prop, propDescriptor);

@@ -43,0 +43,0 @@ }

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc