sakura-time-service
TypeScript icon, indicating that this package has built-in type declarations

0.0.1 • Public • Published

Table Of Contents

API

1. RegularService

You can use RegularService to create an automatic mailing service, an automatic backup service, or anything you want.

import {RegularService, IntervalService, sleep } from 'sakura-time-service';



const autoMailingService = new RegularService({
    // The callback will be called when the clock points at timestamps 
    // declared at the times
    callback: async (e) => {

        // You can stop the service when the service is running.
        e.currentTarget.stop();
        // or
        autoMailingService.stop();


        // You can setTimes when the service is running.
        autoMailingService.setTimes([
            '22:00:00',
            '23:15:15',
        ]);
        // Or
        e.currentTarget.setTimes([
            '22:00:00',
            '23:15:15',
        ]);


        // This will not stop your application
        await sleep(15_000);
        // After 15 seconds


        // This will not stop your application
        throw new Error('This will trigger error handling');
    },

    // This is necessary because your server may be located anywhere,
    // the time difference will cause the results to be wrong.
    timeZone: 'America/New_York', // default: undefined
    

    times: [
        '00:00:00', // callback will be called at 00:00:00
        '22:00:00' // 
    ],
});


// Event when the service throw an error
autoMailingService.onError = (e) => {

    // stop service
    e.currentTarget.stop(); 
    // or
    autoMailingService.stop()


    // restart service
    e.currentTarget.restart(); 
    // or
    autoMailingService.restart();


    console.log(e.error);
}


autoMailingService.stop(); // stop service

autoMailingService.start(); // stop service

autoMailingService.restart(); // restart service

autoMailingService.status; // return service status: 'stopped' or 'running' ;

autoMailingService.times; //

autoMailingService.timeZone //

// You can setTimes when the service is running.
autoMailingService.setTimes([
    '22:00:00',
    '23:15:15',
]);

2. IntervalService

You can use the IntervalService to create an auto refresh token,...

import {RegularService, IntervalService, sleep } from 'sakura-time-service';

const autoRefreshToken = new IntervalService({
    callback: async (e) => {

        // you can change the delay time when the service is running.
        e.currentTarget.delay = 200; // 0.2 seconds
        // or
        autoRefreshToken.delay = 200;
        
    },
    delay: 15_000 // 15 seconds
});

autoRefreshToken.onError = (e) => {
   // your code here ... 
}

autoRefreshToken.delay // get and set the delay time.
autoRefreshToken.status // return service status: 'stopped' or 'running' ;
autoRefreshToken.start();
autoRefreshToken.stop();
autoRefreshToken.restart();

3. sleep

import { sleep } from 'sakura-time-service';

const func = async () => {

    await sleep(15_000); // unit: milliseconds
    // After 15 seconds

}

Package Sidebar

Install

npm i sakura-time-service

Weekly Downloads

0

Version

0.0.1

License

MIT

Unpacked Size

43.6 kB

Total Files

13

Last publish

Collaborators

  • tuannguyen7326