Files
Snowflakey/tests/main.test.ts
2019-08-01 16:49:14 +02:00

40 lines
1.4 KiB
TypeScript

// require & generate the instance
import * as Snowflake from '../lib/snowflakey';
const master = new Snowflake.Master();
const worker = new Snowflake.Worker({
name: 'starling',
epoch: 1420070400000,
workerId: process.env.CLUSTER_ID || 31,
processId: process.pid || undefined,
workerBits: 8,
processBits: 0,
incrementBits: 14
});
master.addWorkers(worker);
// Using the worker directly
const flake = worker.generate();
const epoch = 1420070400000;
console.log('----------[ Worker ]----------')
console.log(`Created snowflake: ${flake}`);
console.log(`Creation date : ${Snowflake.lookup(flake, worker.options.epoch)}`);
console.log(`Deconstructed : ${worker.deconstruct(flake).timestamp.valueOf()}`);
// Using the master to get events
console.log('----------[ Master ]----------')
master.on('newSnowflake', (data) => {
console.log(`created snowflake: ${data.snowflake} by Worker ${data.worker.options.name || data.worker.options.workerId}`)
console.log(`Creation date : ${Snowflake.lookup(flake, data.worker.options.epoch)}`);
data.worker.deconstruct(data.snowflake);
});
master.on('deconstructedFlake', (data) => {
console.log(`Deconstructed : ${data.timestamp.valueOf()} by Worker ${data.worker.options.name || data.worker.options.workerId}`);
});
worker.generate();
master.removeWorkers(worker.options.name);
console.log(master.listWorkers())