introduce TaskOnce
This commit is contained in:
		
							
								
								
									
										1
									
								
								dist/index.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								dist/index.d.ts
									
									
									
									
										vendored
									
									
								
							@@ -2,4 +2,5 @@ export { Task, ITaskFunction } from './taskbuffer.classes.task';
 | 
			
		||||
export { Taskchain } from './taskbuffer.classes.taskchain';
 | 
			
		||||
export { Taskparallel } from './taskbuffer.classes.taskparallel';
 | 
			
		||||
export { TaskManager } from './taskbuffer.classes.taskmanager';
 | 
			
		||||
export { TaskOnce } from './taskbuffer.classes.taskonce';
 | 
			
		||||
import './taskbuffer.classes.helpers';
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							@@ -8,6 +8,8 @@ var taskbuffer_classes_taskparallel_1 = require("./taskbuffer.classes.taskparall
 | 
			
		||||
exports.Taskparallel = taskbuffer_classes_taskparallel_1.Taskparallel;
 | 
			
		||||
var taskbuffer_classes_taskmanager_1 = require("./taskbuffer.classes.taskmanager");
 | 
			
		||||
exports.TaskManager = taskbuffer_classes_taskmanager_1.TaskManager;
 | 
			
		||||
var taskbuffer_classes_taskonce_1 = require("./taskbuffer.classes.taskonce");
 | 
			
		||||
exports.TaskOnce = taskbuffer_classes_taskonce_1.TaskOnce;
 | 
			
		||||
// import for naming only
 | 
			
		||||
require("./taskbuffer.classes.helpers");
 | 
			
		||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHFFQUE0RDtBQUFwRCx5Q0FBQSxJQUFJLENBQUE7QUFDWiwrRUFBd0Q7QUFBaEQsbURBQUEsU0FBUyxDQUFBO0FBQ2pCLHFGQUE4RDtBQUF0RCx5REFBQSxZQUFZLENBQUE7QUFDcEIsbUZBQThEO0FBQXJELHVEQUFBLFdBQVcsQ0FBQTtBQUVwQix5QkFBeUI7QUFDekIsd0NBQXFDIn0=
 | 
			
		||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHFFQUErRDtBQUF0RCx5Q0FBQSxJQUFJLENBQUE7QUFDYiwrRUFBMEQ7QUFBakQsbURBQUEsU0FBUyxDQUFBO0FBQ2xCLHFGQUFnRTtBQUF2RCx5REFBQSxZQUFZLENBQUE7QUFDckIsbUZBQThEO0FBQXJELHVEQUFBLFdBQVcsQ0FBQTtBQUNwQiw2RUFBd0Q7QUFBL0MsaURBQUEsUUFBUSxDQUFBO0FBRWpCLHlCQUF5QjtBQUN6Qix3Q0FBcUMifQ==
 | 
			
		||||
							
								
								
									
										11
									
								
								dist/taskbuffer.classes.taskonce.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								dist/taskbuffer.classes.taskonce.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
import { Task, ITaskFunction } from './taskbuffer.classes.task';
 | 
			
		||||
/**
 | 
			
		||||
 * TaskOnce is run exactly once, no matter how often it is triggered
 | 
			
		||||
 */
 | 
			
		||||
export declare class TaskOnce extends Task {
 | 
			
		||||
    hasTriggered: boolean;
 | 
			
		||||
    constructor(optionsArg: {
 | 
			
		||||
        name?: string;
 | 
			
		||||
        taskFunction: ITaskFunction;
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										30
									
								
								dist/taskbuffer.classes.taskonce.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								dist/taskbuffer.classes.taskonce.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
 | 
			
		||||
    return new (P || (P = Promise))(function (resolve, reject) {
 | 
			
		||||
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
 | 
			
		||||
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
 | 
			
		||||
        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
 | 
			
		||||
        step((generator = generator.apply(thisArg, _arguments || [])).next());
 | 
			
		||||
    });
 | 
			
		||||
};
 | 
			
		||||
Object.defineProperty(exports, "__esModule", { value: true });
 | 
			
		||||
const taskbuffer_classes_task_1 = require("./taskbuffer.classes.task");
 | 
			
		||||
/**
 | 
			
		||||
 * TaskOnce is run exactly once, no matter how often it is triggered
 | 
			
		||||
 */
 | 
			
		||||
class TaskOnce extends taskbuffer_classes_task_1.Task {
 | 
			
		||||
    constructor(optionsArg) {
 | 
			
		||||
        super({
 | 
			
		||||
            name: optionsArg.name,
 | 
			
		||||
            taskFunction: () => __awaiter(this, void 0, void 0, function* () {
 | 
			
		||||
                if (!this.hasTriggered) {
 | 
			
		||||
                    this.hasTriggered = true;
 | 
			
		||||
                    yield optionsArg.taskFunction();
 | 
			
		||||
                }
 | 
			
		||||
            })
 | 
			
		||||
        });
 | 
			
		||||
        this.hasTriggered = false;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
exports.TaskOnce = TaskOnce;
 | 
			
		||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza2J1ZmZlci5jbGFzc2VzLnRhc2tvbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvdGFza2J1ZmZlci5jbGFzc2VzLnRhc2tvbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFFQSx1RUFBK0Q7QUFFL0Q7O0dBRUc7QUFDSCxjQUFzQixTQUFRLDhCQUFJO0lBRWhDLFlBQWEsVUFHWjtRQUNDLEtBQUssQ0FBQztZQUNKLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtZQUNyQixZQUFZLEVBQUU7Z0JBQ1osRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztvQkFDdkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUE7b0JBQ3hCLE1BQU0sVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFBO2dCQUNqQyxDQUFDO1lBQ0gsQ0FBQyxDQUFBO1NBQ0YsQ0FBQyxDQUFBO1FBYkosaUJBQVksR0FBWSxLQUFLLENBQUE7SUFjN0IsQ0FBQztDQUNGO0FBaEJELDRCQWdCQyJ9
 | 
			
		||||
		Reference in New Issue
	
	Block a user