This commit is contained in:
parent
6dbd46bb06
commit
6c1fc0c044
1
.gitignore
vendored
1
.gitignore
vendored
@ -3,3 +3,4 @@
|
||||
/.nyc_output/
|
||||
/coverage/
|
||||
*.log
|
||||
*.d.ts
|
||||
|
@ -1,5 +1,9 @@
|
||||
# Changelog
|
||||
|
||||
## 1.2.0
|
||||
|
||||
- added timing constants
|
||||
|
||||
## 1.1.0
|
||||
|
||||
- added all documented http status codes
|
||||
|
29
README.md
29
README.md
@ -1,6 +1,6 @@
|
||||
# @sapphirecode/consts
|
||||
|
||||
version: 1.1.x
|
||||
version: 1.2.x
|
||||
|
||||
useful constant values that are used in many applications
|
||||
|
||||
@ -19,10 +19,35 @@ yarn:
|
||||
there are many constants, too many to document by hand so I suggest you use
|
||||
autocomplete or look into the source.
|
||||
|
||||
Http status codes:
|
||||
|
||||
```js
|
||||
const {http} = require('@sapphirecode/consts');
|
||||
|
||||
console.log(http.status_ok) // 200
|
||||
console.log(http.status_ok); // 200
|
||||
```
|
||||
|
||||
Time
|
||||
|
||||
```js
|
||||
const {time} = require('@sapphirecode/consts');
|
||||
|
||||
console.log(time.base_ms.minute); // 60000
|
||||
```
|
||||
|
||||
The time module contains a few precalculated bases like base_s, base_ms, base_us
|
||||
and base_ns. Those allow you to use timers without calculating everything
|
||||
first.
|
||||
|
||||
> timer(base_ms.week) instead of timer(1000 x 60 x 60 x 24 x 7) or
|
||||
> timer(base_us.week) if your timer counts in microseconds
|
||||
|
||||
time intervals above one week are functions, because they require additional
|
||||
information to be calculated
|
||||
|
||||
```js
|
||||
console.log(time.base_ms.year(2020));
|
||||
console.log(time.base_ms.year(12, 2020));
|
||||
```
|
||||
|
||||
## License
|
||||
|
4
index.js
4
index.js
@ -9,11 +9,13 @@
|
||||
'use strict';
|
||||
|
||||
const http = require ('./http_status_codes');
|
||||
const time = require ('./time');
|
||||
|
||||
module.exports = {
|
||||
http: {
|
||||
...http.status_codes,
|
||||
...http
|
||||
}
|
||||
},
|
||||
time
|
||||
};
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@sapphirecode/consts",
|
||||
"version": "1.1.28",
|
||||
"version": "1.2.0",
|
||||
"main": "index.js",
|
||||
"author": {
|
||||
"name": "Timo Hocker",
|
||||
@ -28,8 +28,7 @@
|
||||
"files": [
|
||||
"LICENSE",
|
||||
"index.d.ts",
|
||||
"index.js",
|
||||
"http_status_codes.js"
|
||||
"*.js"
|
||||
],
|
||||
"keywords": [
|
||||
"constants",
|
||||
|
61
time.js
Normal file
61
time.js
Normal file
@ -0,0 +1,61 @@
|
||||
/*
|
||||
* Copyright (C) Sapphirecode - All Rights Reserved
|
||||
* This file is part of consts which is released under MIT.
|
||||
* See file 'LICENSE' for full license details.
|
||||
* Created by Timo Hocker <timo@scode.ovh>, December 2020
|
||||
*/
|
||||
|
||||
/* eslint-disable sort-keys */
|
||||
'use strict';
|
||||
|
||||
function is_leap (year) {
|
||||
return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
|
||||
}
|
||||
|
||||
function base (second = 1) {
|
||||
const ms = second / 1000;
|
||||
const us = ms / 1000;
|
||||
const ns = us / 1000;
|
||||
const minute = second * 60;
|
||||
const hour = minute * 60;
|
||||
const day = hour * 24;
|
||||
const week = day * 7;
|
||||
|
||||
const year = (y) => {
|
||||
const days = is_leap (y) ? 366 : 365;
|
||||
return days * day;
|
||||
};
|
||||
|
||||
const month = (m, y) => {
|
||||
let days = 0;
|
||||
if (m === 2)
|
||||
days = is_leap (y) ? 29 : 28;
|
||||
else if (m < 8)
|
||||
days = 30 + (m % 2);
|
||||
else
|
||||
days = 31 - (m % 2);
|
||||
|
||||
return days * day;
|
||||
};
|
||||
|
||||
return {
|
||||
ns,
|
||||
us,
|
||||
ms,
|
||||
second,
|
||||
minute,
|
||||
hour,
|
||||
day,
|
||||
week,
|
||||
month,
|
||||
year
|
||||
};
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
base_s: base (1),
|
||||
base_ms: base (1e3),
|
||||
base_us: base (1e6),
|
||||
base_ns: base (1e9),
|
||||
base
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user