Skip to content

Latest commit

 

History

History
99 lines (69 loc) · 3.55 KB

README.md

File metadata and controls

99 lines (69 loc) · 3.55 KB

Codacy Badge Maintainability CodeFactor Build Status codecov FOSSA Status npm version BCH compliance DeepScan grade

freebusy

Determine free blocks from a list of events.

Description

It returns the free block within scope when you enter a list of events.

Redesign raineorshine/freebusy with TypeScript.

https://nodei.co/npm/@kamiazya/freebusy.png?downloads=true&downloadRank=true&stars=true

Installation

yarn

yarn add @kamiazya/freebusy

npm

npm install @kamiazya/freebusy

Usage

Determine free blocks from a list of events.

Format result by luxon.

Simple

In this case, it detects free block when there are three events from 9 o'clock to 17 o'clock in 2019-01-10.

import { getFree, BlockLike, ScopeTime } from '@kamiazya/freebusy';

const events: BlockLike[] = [
  {
    start: '2019-01-10T09:30',
    end: '2019-01-10T10:00',
  },
  {
    start: '2019-01-10T12:00',
    end: '2019-01-10T13:00',
  },
  {
    start: '2019-01-10T15:00',
    end: '2019-01-10T16:00',
  },
];

const freeBlocks = getFree({
  scope: {
    start: '2019-01-10',
    end: '2019-01-11',
    time: new ScopeTime({
      defaultStart: 9,
      defaultEnd: 17,
    }),
  },
  events,
});

freeBlocks.blocks
  .forEach((block) => {
    const start = block.start.toFormat('DDD T');
    const end = block.end.toFormat('T');
    console.log(`${start} - ${end}`);
  });

// Output:
//   2019年1月10日 9:00 - 9:30
//   2019年1月10日 10:00 - 12:00
//   2019年1月10日 13:00 - 15:00
//   2019年1月10日 16:00 - 17:00

Doccumentation

See this link.

It generated by TypeDoc.

Licence

This software is released under the MIT License, see LICENSE.

FOSSA Status

Author

kamiazya(Yuki Yamazaki)

ko-fi