Skip to content

Commit

Permalink
optimizations
Browse files Browse the repository at this point in the history
- move regex outside of function
- use replacer function instead of recursive function calls
  • Loading branch information
jonschlinkert committed Oct 26, 2018
1 parent 7ab558b commit ec0ce08
Show file tree
Hide file tree
Showing 5 changed files with 207 additions and 190 deletions.
109 changes: 64 additions & 45 deletions .verb.md
@@ -1,96 +1,115 @@
## v2.0.0

**Breaking changes**

Default pattern was changed from `YYYY:MM:DD` to `YYYY-MM-DD`. See https://github.com/jonschlinkert/time-stamp/issues/3 for more details.

## Usage

```js
var timestamp = require('{%= name %}');
const timestamp = require('{%= name %}');

timestamp();
console.log(timestamp());
//=> {%= timestamp() %}
timestamp.utc();

console.log(timestamp.utc());
//=> {%= timestampUTC() %}
```

## Customizing the timestamp

timestamp('YYYYMMDD');
You may also pass a string to format the generated timestamp.

```js
console.log(timestamp('YYYYMMDD'));
//=> {%= timestamp('YYYYMMDD') %}
timestamp.utc('YYYYMMDD');

console.log(timestamp.utc('YYYYMMDD'));
//=> {%= timestampUTC('YYYYMMDD') %}
```

**Supported patterns**

timestamp('YYYYMMDD:ss');
- `YYYY`: full year (ex: **{%= timestamp("YYYY") %}**)
- `MM`: month (ex: **04**)
- `DD`: day (ex: **01**)
- `HH`: hours (ex: **12**)
- `mm`: minutes (ex: **59**)
- `ss`: seconds (ex: **09**)
- `ms`: milliseconds (ex: **532**)

**Usage Examples**

```js
console.log(timestamp('YYYYMMDD'));
//=> {%= timestamp('YYYYMMDD') %}
console.log(timestamp.utc('YYYYMMDD'));
//=> {%= timestampUTC('YYYYMMDD') %}

console.log(timestamp('YYYYMMDD:ss'));
//=> {%= timestamp('YYYYMMDD:ss') %}
timestamp.utc('YYYYMMDD:ss');
console.log(timestamp.utc('YYYYMMDD:ss'));
//=> {%= timestampUTC('YYYYMMDD:ss') %}

timestamp('YYYY/MM/DD:mm:ss');
console.log(timestamp('YYYY/MM/DD:mm:ss'));
//=> {%= timestamp('YYYY/MM/DD:mm:ss') %}
timestamp.utc('YYYY/MM/DD:mm:ss');
console.log(timestamp.utc('YYYY/MM/DD:mm:ss'));
//=> {%= timestampUTC('YYYY/MM/DD:mm:ss') %}

timestamp('YYYY:MM:DD');
console.log(timestamp('YYYY:MM:DD'));
//=> {%= timestamp('YYYY:MM:DD') %}
timestamp.utc('YYYY:MM:DD');
console.log(timestamp.utc('YYYY:MM:DD'));
//=> {%= timestampUTC('YYYY:MM:DD') %}

timestamp('[YYYY:MM:DD]');
console.log(timestamp('[YYYY:MM:DD]'));
//=> {%= timestamp('[YYYY:MM:DD]') %}
timestamp.utc('[YYYY:MM:DD]');
console.log(timestamp.utc('[YYYY:MM:DD]'));
//=> {%= timestampUTC('[YYYY:MM:DD]') %}

timestamp('YYYY/MM/DD');
console.log(timestamp('YYYY/MM/DD'));
//=> {%= timestamp('YYYY/MM/DD') %}
timestamp.utc('YYYY/MM/DD');
console.log(timestamp.utc('YYYY/MM/DD'));
//=> {%= timestampUTC('YYYY/MM/DD') %}

timestamp('YYYY:MM');
console.log(timestamp('YYYY:MM'));
//=> {%= timestamp('YYYY:MM') %}
timestamp.utc('YYYY:MM');
console.log(timestamp.utc('YYYY:MM'));
//=> {%= timestampUTC('YYYY:MM') %}

timestamp('YYYY');
console.log(timestamp('YYYY'));
//=> {%= timestamp('YYYY') %}
timestamp.utc('YYYY');
console.log(timestamp.utc('YYYY'));
//=> {%= timestampUTC('YYYY') %}

timestamp('MM');
console.log(timestamp('MM'));
//=> {%= timestamp('MM') %}
timestamp.utc('MM');
console.log(timestamp.utc('MM'));
//=> {%= timestampUTC('MM') %}

timestamp('DD');
console.log(timestamp('DD'));
//=> {%= timestamp('DD') %}
timestamp.utc('DD');
console.log(timestamp.utc('DD'));
//=> {%= timestampUTC('DD') %}

timestamp('HH');
console.log(timestamp('HH'));
//=> {%= timestamp('HH') %}
timestamp.utc('HH');
console.log(timestamp.utc('HH'));
//=> {%= timestampUTC('HH') %}

timestamp('mm');
console.log(timestamp('mm'));
//=> {%= timestamp('mm') %}
timestamp.utc('mm');
console.log(timestamp.utc('mm'));
//=> {%= timestampUTC('mm') %}

timestamp('ss');
console.log(timestamp('ss'));
//=> {%= timestamp('ss') %}
timestamp.utc('ss');
console.log(timestamp.utc('ss'));
//=> {%= timestampUTC('ss') %}

timestamp('ms');
console.log(timestamp('ms'));
//=> {%= timestamp('ms') %}
timestamp.utc('ms');
console.log(timestamp.utc('ms'));
//=> {%= timestampUTC('ms') %}
```

**Valid patterns**
## Release history

- `YYYY`: full year (ex: **{%= timestamp("YYYY") %}**)
- `MM`: month (ex: **04**)
- `DD`: day (ex: **01**)
- `HH`: hours (ex: **12**)
- `mm`: minutes (ex: **59**)
- `ss`: seconds (ex: **09**)
- `ms`: milliseconds (ex: **532**)
### v2.0.0

**Breaking changes**

Default pattern was changed from `YYYY:MM:DD` to `YYYY-MM-DD`. See [issues/3](../../issues) for more details.
192 changes: 110 additions & 82 deletions README.md
Expand Up @@ -4,6 +4,15 @@
Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.

- [Install](#install)
- [Usage](#usage)
- [Customizing the timestamp](#customizing-the-timestamp)
- [Release history](#release-history)
* [v2.0.0](#v200)
- [About](#about)

_(TOC generated by [verb](https://github.com/verbose/verb) using [markdown-toc](https://github.com/jonschlinkert/markdown-toc))_

## Install

Install with [npm](https://www.npmjs.com/):
Expand All @@ -12,94 +21,31 @@ Install with [npm](https://www.npmjs.com/):
$ npm install --save time-stamp
```

## v2.0.0
## Usage

**Breaking changes**
```js
const timestamp = require('time-stamp');

Default pattern was changed from `YYYY:MM:DD` to `YYYY-MM-DD`. See https://github.com/jonschlinkert/time-stamp/issues/3 for more details.
console.log(timestamp());
//=> 2018-10-26

## Usage
console.log(timestamp.utc());
//=> 2018-10-26
```

## Customizing the timestamp

You may also pass a string to format the generated timestamp.

```js
var timestamp = require('time-stamp');

timestamp();
//=> 2018-08-22
timestamp.utc();
//=> 2018-08-22

timestamp('YYYYMMDD');
//=> 20180822
timestamp.utc('YYYYMMDD');
//=> 20180822

timestamp('YYYYMMDD:ss');
//=> 20180822:39
timestamp.utc('YYYYMMDD:ss');
//=> 20180822:39

timestamp('YYYY/MM/DD:mm:ss');
//=> 2018/08/22:16:39
timestamp.utc('YYYY/MM/DD:mm:ss');
//=> 2018/08/22:16:39

timestamp('YYYY:MM:DD');
//=> 2018:08:22
timestamp.utc('YYYY:MM:DD');
//=> 2018:08:22

timestamp('[YYYY:MM:DD]');
//=> [2018:08:22]
timestamp.utc('[YYYY:MM:DD]');
//=> [2018:08:22]

timestamp('YYYY/MM/DD');
//=> 2018/08/22
timestamp.utc('YYYY/MM/DD');
//=> 2018/08/22

timestamp('YYYY:MM');
//=> 2018:08
timestamp.utc('YYYY:MM');
//=> 2018:08

timestamp('YYYY');
//=> 2018
timestamp.utc('YYYY');
//=> 2018
console.log(timestamp('YYYYMMDD'));
//=> 20181026

timestamp('MM');
//=> 08
timestamp.utc('MM');
//=> 08

timestamp('DD');
//=> 22
timestamp.utc('DD');
//=> 22

timestamp('HH');
//=> 11
timestamp.utc('HH');
//=> 15

timestamp('mm');
//=> 16
timestamp.utc('mm');
//=> 16

timestamp('ss');
//=> 39
timestamp.utc('ss');
//=> 39

timestamp('ms');
//=> 142
timestamp.utc('ms');
//=> 142
console.log(timestamp.utc('YYYYMMDD'));
//=> 20181026
```

**Valid patterns**
**Supported patterns**

* `YYYY`: full year (ex: **2018**)
* `MM`: month (ex: **04**)
Expand All @@ -109,6 +55,88 @@ timestamp.utc('ms');
* `ss`: seconds (ex: **09**)
* `ms`: milliseconds (ex: **532**)

**Usage Examples**

```js
console.log(timestamp('YYYYMMDD'));
//=> 20181026
console.log(timestamp.utc('YYYYMMDD'));
//=> 20181026

console.log(timestamp('YYYYMMDD:ss'));
//=> 20181026:24
console.log(timestamp.utc('YYYYMMDD:ss'));
//=> 20181026:24

console.log(timestamp('YYYY/MM/DD:mm:ss'));
//=> 2018/10/26:46:24
console.log(timestamp.utc('YYYY/MM/DD:mm:ss'));
//=> 2018/10/26:46:24

console.log(timestamp('YYYY:MM:DD'));
//=> 2018:10:26
console.log(timestamp.utc('YYYY:MM:DD'));
//=> 2018:10:26

console.log(timestamp('[YYYY:MM:DD]'));
//=> [2018:10:26]
console.log(timestamp.utc('[YYYY:MM:DD]'));
//=> [2018:10:26]

console.log(timestamp('YYYY/MM/DD'));
//=> 2018/10/26
console.log(timestamp.utc('YYYY/MM/DD'));
//=> 2018/10/26

console.log(timestamp('YYYY:MM'));
//=> 2018:10
console.log(timestamp.utc('YYYY:MM'));
//=> 2018:10

console.log(timestamp('YYYY'));
//=> 2018
console.log(timestamp.utc('YYYY'));
//=> 2018

console.log(timestamp('MM'));
//=> 10
console.log(timestamp.utc('MM'));
//=> 10

console.log(timestamp('DD'));
//=> 26
console.log(timestamp.utc('DD'));
//=> 26

console.log(timestamp('HH'));
//=> 00
console.log(timestamp.utc('HH'));
//=> 04

console.log(timestamp('mm'));
//=> 46
console.log(timestamp.utc('mm'));
//=> 46

console.log(timestamp('ss'));
//=> 24
console.log(timestamp.utc('ss'));
//=> 24

console.log(timestamp('ms'));
//=> 186
console.log(timestamp.utc('ms'));
//=> 186
```

## Release history

### v2.0.0

**Breaking changes**

Default pattern was changed from `YYYY:MM:DD` to `YYYY-MM-DD`. See [issues/3](../../issues) for more details.

## About

<details>
Expand Down Expand Up @@ -161,7 +189,7 @@ You might also be interested in these projects:
| **Commits** | **Contributor** |
| --- | --- |
| 31 | [jonschlinkert](https://github.com/jonschlinkert) |
| 4 | [doowb](https://github.com/doowb) |
| 7 | [doowb](https://github.com/doowb) |
| 1 | [evocateur](https://github.com/evocateur) |
| 1 | [mendenhallmagic](https://github.com/mendenhallmagic) |
| 1 | [mvanroon](https://github.com/mvanroon) |
Expand All @@ -183,4 +211,4 @@ Released under the [MIT License](LICENSE).

***

_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on August 22, 2018._
_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on October 26, 2018._

0 comments on commit ec0ce08

Please sign in to comment.