@v4fire/client
Version:
V4Fire client core library
42 lines (32 loc) • 1.11 kB
text/typescript
/* eslint-disable prefer-spread, prefer-rest-params */
/*!
* V4Fire Client Core
* https://github.com/V4Fire/Client
*
* Released under the MIT license
* https://github.com/V4Fire/Client/blob/master/LICENSE
*/
/**
* [[include:core/component/directives/hook/README.md]]
* @packageDocumentation
*/
import { ComponentEngine } from 'core/component/engines';
import type { DirectiveOptions } from 'core/component/directives/hook/interface';
export * from 'core/component/directives/hook/interface';
ComponentEngine.directive('hook', {
bind(el: Element, opts: DirectiveOptions): void {
opts.value?.bind?.apply(opts.value, arguments);
},
inserted(el: Element, opts: DirectiveOptions): void {
opts.value?.inserted?.apply(opts.value, arguments);
},
update(el: Element, opts: DirectiveOptions): void {
opts.value?.update?.apply(opts.value, arguments);
},
componentUpdated(el: Element, opts: DirectiveOptions): void {
opts.value?.componentUpdated?.apply(opts.value, arguments);
},
unbind(el: Element, opts: DirectiveOptions): void {
opts.value?.unbind?.apply(opts.value, arguments);
}
});