mirror of
https://github.com/Wessel/Snowflakey.git
synced 2026-07-10 14:15:08 +02:00
40 lines
1.4 KiB
TypeScript
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()) |