commodo-fields-date
Version:
A simple date field, used with the Commodo "withFields" higher order function.
84 lines (67 loc) • 3.56 kB
Markdown
# commodo-fields-date
[](https://travis-ci.org/doitadrian/commodo-fields-date)
[](https://coveralls.io/github/doitadrian/commodo-fields-date?branch=master)
[](https://www.npmjs.com/package/commodo-fields-date)
[](https://www.npmjs.com/package/commodo-fields-date)
[](https://github.com/prettier/prettier)
[](#contributors)
[](http://makeapullrequest.com)
A simple date field, used with the [Commodo `withFields`](https://github.com/webiny/commodo/tree/master/packages/fields) higher order function.
## Install
```
npm install --save commodo-fields-date
```
Or if you prefer yarn:
```
yarn add commodo-fields-date
```
## Quick Example:
```javascript
import { compose } from "ramda";
import { withFields, string } from "@commodo/fields";
import { date } from "commodo-fields-date";
const Company = compose(
withFields({
name: string(),
foundedOn: date(), // Use it to store a single date.
topMoments: date({ list: true }) // Or use it to store a list of dates.
// Other fields you might need...
}),
// Other higher order functions (HOFs) you might need...
)();
const company = new Company();
company.name = "Acme Corporation";
// The date field can accept a Date object...
company.foundedOn = new Date();
company.topMoments = [new Date(), new Date()];
// ...or an ISO 8601 formatted date/time string.
company.foundedOn = "2020-04-18T15:50:44.205Z";
company.topMoments = [
"2020-04-18T15:50:44.205Z",
"2020-04-10T00:00:00.000Z",
new Date()
];
// The following will throw the WithFieldsError error.
company.foundedOn = "2020-04-18";
company.topMoments = ["2020-04-18", new Date()];
```
Note: alternatively, you could've also used the [`populate`](https://github.com/webiny/commodo/tree/master/packages/fields#populatedata-object-void) method to assign the data:
```javascript
const company = new Company();
company.populate = {
foundedOn: new Date(),
topMoments: [
"2020-04-18T15:50:44.205Z",
"2020-04-10T00:00:00.000Z",
new Date()
]
};
```
## Contributors
Thanks goes to these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)):
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore -->
| [<img src="https://avatars0.githubusercontent.com/u/5121148?v=4" width="100px;"/><br /><sub><b>Adrian Smijulj</b></sub>](https://github.com/doitadrian)<br />[💻](https://github.com/doitadrian/commodo-fields-date/commits?author=doitadrian "Code") [📖](https://github.com/doitadrian/commodo-fields-date/commits?author=doitadrian "Documentation") [💡](#example-doitadrian "Examples") [👀](#review-doitadrian "Reviewed Pull Requests") [⚠️](https://github.com/doitadrian/commodo-fields-date/commits?author=doitadrian "Tests") |
| :---: |
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome!