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.3 to 0.6.4

12

CHANGELOG.md

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

## [0.6.4](https://github.com/feathersjs/hooks/compare/v0.6.3...v0.6.4) (2021-04-11)
### Bug Fixes
* allow to hooks a function without middleware ([#77](https://github.com/feathersjs/hooks/issues/77)) ([38b44c3](https://github.com/feathersjs/hooks/commit/38b44c3ba1bd7753cdb81492b517e4fd3a6af50e))
* conserve fn.length and fn.name ([#79](https://github.com/feathersjs/hooks/issues/79)) ([d9bc9af](https://github.com/feathersjs/hooks/commit/d9bc9af689f15398168ce4493fcfb23af0f3ef05))
## [0.6.3](https://github.com/feathersjs/hooks/compare/v0.6.2...v0.6.3) (2021-03-31)

@@ -8,0 +20,0 @@

2

dist/hooks.js

@@ -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.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))?i.functionHooks(e,o):2===t.length?i.objectHooks(e,o):i.hookDecorator(e)}},930:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),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={};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(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)})()}));

@@ -46,2 +46,3 @@ "use strict";

};
utils_1.copyFnProperties(wrapper, fn);
utils_1.copyProperties(wrapper, fn);

@@ -48,0 +49,0 @@ base_1.setManager(wrapper, manager);

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

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

@@ -32,3 +33,3 @@ export declare function middleware(mw?: Middleware[], options?: MiddlewareOptions): HookManager;

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

@@ -43,4 +44,4 @@ * Add hooks to one or more methods on an object or class.

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

@@ -22,2 +22,3 @@ "use strict";

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

@@ -43,3 +44,3 @@ function middleware(mw, options) {

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

@@ -46,0 +47,0 @@ }

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;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.copyProperties = exports.copyToSelf = void 0;
exports.copyFnProperties = exports.copyProperties = exports.copyToSelf = void 0;
const proto = Object.prototype;

@@ -47,2 +47,16 @@ // These are non-standard but offer a more reliable prototype based

exports.copyProperties = copyProperties;
function copyFnProperties(target, original) {
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;
}
exports.copyFnProperties = copyFnProperties;
//# sourceMappingURL=utils.js.map
{
"name": "@feathersjs/hooks",
"version": "0.6.3",
"version": "0.6.4",
"description": "Async middleware for JavaScript and TypeScript",

@@ -69,3 +69,3 @@ "homepage": "https://feathersjs.com",

},
"gitHead": "9ec49e295bce9a2ba135ef4a0d78f2ffab492adc"
"gitHead": "6c63cbe628aa878d87e5ed4722d84910b6144623"
}

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

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

@@ -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';

* @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 @@ }

@@ -48,1 +48,17 @@ const proto = Object.prototype as any;

}
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;
}

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