Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Return null with no matches and nix "this month" and "this year." #14

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

davidkaneda
Copy link

This is a bit of a subjective patch: It changes the behavior so that unmatched entries return null.

Previously, there was code that looked to throw an error in this situation, though the code wasn't constructed right and would never throw. When implemented properly, the code errors on "this year" and "this month" as they both fulfill the "error" requirement of Date.js output matching "now."

I think it would be good if we always expect something consistent out of date.js — which I believe is a specific time & date based off the input. ie, the library should support:

  • "Next tuesday," or "tomorrow" (guessing the time based off of now)
  • Tomorrow at 3pm
  • Now (this should probably be added...)
  • etc.

But it should not support:

  • Every 5 minutes (iterative time increments)
  • For the next 3 months (span of time)
  • "This month" and "this year" (vague)

Just a thought, discussion welcome :)

This is a bit of a subjective patch: It changes the behavior so that unmatched entries return null.

Previously, there was code that looked to throw an error in this situation, though the code wasn't constructed right and would never throw. When implemented properly, the code errors on "this year" and "this month" as they both fulfill the "error" requirement of Date.js output matching "now."

I think it would be good if we always expect something consistent out of date.js — which I believe is a specific time & date based off the input. ie, the library should support:

* "Next tuesday," or "tomorrow" (guessing the time based off of now)
* Tomorrow at 3pm
* Now (this should probably be added...)
* etc.

But it should _not_ support:
* Every 5 minutes (iterative time increments)
* For the next 3 months (span of time)
* "This month" and "this year" (vague)

Just a thought, discussion welcome :)
if(!(this instanceof parser)) {
var parsed = new parser(str, offset);

if(!(parsed instanceof parser)) {
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

personally, i find this double instanceof logic confusing. is there anything else we can do here to get the same results?

@matthewmueller
Copy link
Owner

Yah, I think you're right, this month, this year are too vague (on their own). We do not want to it to break for things like next month this year though.

This library shouldn't directly support but facilitate iterative timespans in other libraries because there's great value in allowing that. The original intent of this library was to support iterative timespans, but found it was better to separate it out. I built every for that purpose.

Also +1 on ignoring spans of times.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants