GithubHelp home page GithubHelp logo

waratuman / rfc5545-rrule Goto Github PK

View Code? Open in Web Editor NEW
24.0 5.0 3.0 66 KB

RFC5545 RRule library for JavaScript

License: ISC License

TypeScript 88.19% Shell 1.29% Nearley 10.52%
javascript ical rfc5545 rrule typescript

rfc5545-rrule's Introduction

RFC5545 RRule

RFC5545 RRule library for JavaScript.

Installation

Using NPM:

npm install rfc5545-rrule

Using Yarn:

yarn add rfc5545-rrule

Usage

Node.js

let { RRule, Day } = require("rfc5545-rrule");

let rrule = RRule.fromString("RRULE:FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;BYMONTHDAY=2,3,4,5,6,7,8");

console.log(rrule);
// RRule {
//     interval: 4,
//     weekStart: 1,
//     frequency: 'yearly',
//     byMonth: [ 10 ],
//     byDay: [ Day { value: 2, nth: undefined } ],
//     byMonthDay: [ 2, 3, 4, 5, 6, 7, 8 ]
// }

// A recurrence that repeats every Sunday of the week.
rrule = new RRule({ frequency: "weekly", byDay: [ new Day(0) ] });
rrule.toString(); // RRULE:FREQ=WEEKLY;BYDAY=SU

TypeScript

import { RRule } = from "rfc5545-rrule";

let rrule = RRule.fromString("RRULE:FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;BYMONTHDAY=2,3,4,5,6,7,8");

License

ICS

Development

Compiling the grammar

npx nearleyc ./src/grammar.ne -o ./src/grammar.ts

Update ./src/grammar.ts to export ParserRules and ParserStart. Also, remove the wrapping function and export at the bottom of the file.

npm run compile

rfc5545-rrule's People

Contributors

alenabekrina avatar waratuman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

rfc5545-rrule's Issues

Wrong result from "RRule.fromString"

Tried an example and got a wrong result (check byYearDay in the result in the code below):

Text: every 3 years on the 1st, 100th and 240th day for 10 times
RRULE: RRULE:FREQ=YEARLY;INTERVAL=3;COUNT=10;BYYEARDAY=1,100,240

Source Code:

let { RRule, Day } = require('rfc5545-rrule');

let rrule = RRule.fromString(
  'RRULE:FREQ=YEARLY;INTERVAL=3;COUNT=10;BYYEARDAY=1,100,240'
);

console.log(rrule);
// RRule {
//  interval: 3,
//  bySecond: [],
//  byMinute: [],
//  byHour: [],
//  byDay: [],
//  byMonthDay: [],
//  byYearDay: [ 1, 10, 24 ], // TODO it should have been [1, 100, 240]
//  byWeekNumber: [],
//  byMonth: [],
//  bySetPosition: [],
//  weekStart: 1,
//  toJSON: [Function (anonymous)],
//  frequency: 'yearly',
//  count: 10
// }

Generating the RRULE using new RRule works fine

let newRRule = new RRule({
  frequency: 'yearly',
  interval: 3,
  byYearDay: [1, 100, 240],
  count: 10
});

console.log(newRRule.toString());
// RRULE:FREQ=YEARLY;COUNT=10;INTERVAL=3;BYYEARDAY=1,100,240

SyntaxError: Unexpected reserved word

Error on (function (exports, require, module, __filename, __dirname) { export * from ".

Could you please make a note that this library requires environment to support export keyword, Object.assign, and maybe other things out of ES5?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.