All files / src/functions/action add.action.watchers.ts

28.57% Statements 4/14
0% Branches 0/2
0% Functions 0/1
30.76% Lines 4/13

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30    1x     1x     1x   1x                                      
'use strict';
 
import {isFunction, set} from 'lodash';
 
import {ActionAsWatcherInterface} from '@owservable/actions';
import {listSubfoldersFilesByFolderName} from '@owservable/folders';
 
import WatcherType from '../../_types/watcher.type';
import executeWatcher from '../execute/execute.watcher';
 
export default function addActionWatchers(root: string, folderName: string) {
	const actionPaths: string[] = listSubfoldersFilesByFolderName(root, folderName);
 
	for (const actionPath of actionPaths) {
		console.log('[@owservable] -> Initializing watcher action', actionPath);
		// tslint:disable-next-line:callable-types
		const ActionClass: new () => ActionAsWatcherInterface = require(actionPath).default;
		const action: ActionAsWatcherInterface = new ActionClass();
 
		Iif (isFunction(action.asWatcher)) {
			const job: WatcherType = {
				watch: action.asWatcher
			};
			Iif (isFunction(action.asWatcherInit)) set(job, 'init', action.asWatcherInit());
 
			executeWatcher(job);
		}
	}
}