Skip to content
This repository was archived by the owner on Jan 11, 2019. It is now read-only.

Comments

Expose ParseStrict to error on too many fields#36

Open
krallin wants to merge 4 commits intogorhill:masterfrom
krallin:strict
Open

Expose ParseStrict to error on too many fields#36
krallin wants to merge 4 commits intogorhill:masterfrom
krallin:strict

Conversation

@krallin
Copy link

@krallin krallin commented Aug 1, 2018

Parse currently ignores any tokens after the 7th, which means invalid
cron expressions might be allowed as long as invalid tokens are found
after the 7th character.

In some use cases (e.g. validating cron expressions provided by a user),
this might not be desirable. To allow for this use case, this adds a
ParseStrict function that returns an error if too many fields are
provided (it retains backwards compatibility by not touching Parse).


For some context, here's where I ran into this and could use a ParseStrict 😄 : aptible/supercronic#34

Thanks!

krallin and others added 4 commits August 1, 2018 16:10
Parse currently ignores any tokens after the 7th, which means invalid
cron expressions might be allowed as long as invalid tokens are found
after the 7th character.

In some use cases (e.g. validating cron expressions provided by a user),
this might not be desirable. To allow for this use case, this adds a
ParseStrict function that returns an error if too many fields are
provided (it retains backwards compatibility by not touching Parse).
If an interval if out of order, it ends up emitting 0000-00-00 00:00:00
as the "next" time, which is undesirable. This patch updates Parse to
simply reject such intervals.

Since the rejection reason might not be super obvious (the range 6-7 is
actually translated to 6-0, which makes it invalid), let's also print
the original vs. normalized form for clarity.

See: aptible/supercronic#63
This fork is to support Supercronic, and that's how it's imported there.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant