Compare commits

...

4 Commits

Author SHA1 Message Date
c9514fa0aa 1.1.2 2024-07-29 15:12:17 +02:00
d913a35ae9 update deps 2024-07-29 15:12:11 +02:00
99d35a9ade readme 2024-03-04 11:36:29 +01:00
8679a04346 update deps 2024-03-04 11:25:17 +01:00
4 changed files with 1370 additions and 909 deletions

View File

@@ -1,34 +1,31 @@
# uhrwerk 🕰
![dependencies](https://badgen.net/david/dep/cupcakearmy/uhrwerk)
![downloads badge](https://badgen.net/npm/dt/uhrwerk)
![types badge](https://badgen.net/npm/types/uhrwerk)
![version badge](https://badgen.net/npm/v/uhrwerk)
![minzip size badge](https://badgen.net/bundlephobia/minzip/uhrwerk)
![package size](https://img.shields.io/bundlephobia/min/uhrwerk?style=flat)
![downloads badge](https://img.shields.io/npm/dt/uhrwerk)
![types badge](https://img.shields.io/npm/types/uhrwerk)
![version badge](https://img.shields.io/npm/v/uhrwerk)
Minimal time duration utility. Replacement for MomentJS Durations. If you are looking into the time component of MomentJS check out this awesome library [dayjs](https://github.com/iamkun/dayjs).
📦 It's **tiny**: [1.6kB](https://bundlephobia.com/result?p=uhrwerk@1.0.0) vs moment js [231.7kb](https://bundlephobia.com/result?p=moment@latest)
📦 It's **tiny**: [2kB](https://bundlephobia.com/package/uhrwerk@latest) vs moment js [295kB](https://bundlephobia.com/result?p=moment@latest)
**Typescript typings included**
🌈 No dependencies, types included.
## Quickstart 🚀
```typescript
// Whatever import you prefer
// const { Duration } = require('uhrwerk')
import { Duration } from 'uhrwerk'
const d = new Duration(10, 'days')
d.subtract(1, 'week')
d.add(5, 'minutes')
d.humanize() // '3 days'
d.minutes() // 5
d.asMinute() // 4325
d.humanize() // '3 days'
d.minutes() // 5
d.asMinute() // 4325
d.subtract(3, 'days')
d.humanize() // 'a few minutes'
d.humanize() // 'a few minutes'
```
### Reference 📒
@@ -37,13 +34,13 @@ d.humanize() // 'a few minutes'
- amount: number
- interval:
- millisecond, milliseconds, ms
- second, seconds, s
- minute, minutes, m
- hour, hours, h
- day, days, d
- week, weeks, w
- year, years, y
- millisecond, milliseconds, ms
- second, seconds, s
- minute, minutes, m
- hour, hours, h
- day, days, d
- week, weeks, w
- year, years, y
###### Examples
@@ -51,7 +48,7 @@ d.humanize() // 'a few minutes'
const a = new Duration(1, 'day')
const b = new Duration(2, 'days')
const c = new Duration(0.5, 'year')
const d = new Duration (Date.now(), 'ms')
const d = new Duration(Date.now(), 'ms')
```
#### `.add(amount, interval)`
@@ -144,9 +141,9 @@ The order of the array is important. The first match will return, like in a stan
```javascript
const humanizer = [
[d => d.days() > 1, d => `${d.days()} days`],
[d => d.days() > 0, d => `1 day`],
[() => true, () => 'catch all, below 1 day'],
[(d) => d.days() > 1, (d) => `${d.days()} days`],
[(d) => d.days() > 0, (d) => `1 day`],
[() => true, () => 'catch all, below 1 day'],
]
const a = new Duration(2, 'days')

View File

@@ -1,17 +1,16 @@
{
"name": "uhrwerk",
"version": "1.1.0",
"version": "1.1.2",
"description": "time utility",
"author": "Niccolo Borgioli",
"keywords": [
"time",
"interval",
"human-readable",
"utility"
],
"license": "MIT",
"author": "Niccolo Borgioli",
"type": "module",
"scripts": {
"build": "tsup src/index.ts --format cjs,esm --dts --sourcemap",
"test": "pnpm run build && mocha",
"prepublishOnly": "pnpm run test"
},
"main": "./dist/index.cjs",
"types": "./dist/index.d.ts",
"exports": {
".": {
"require": "./dist/index.cjs",
@@ -19,18 +18,21 @@
"types": "./dist/index.d.ts"
}
},
"main": "./dist/index.cjs",
"types": "./dist/index.d.ts",
"files": [
"dist"
],
"keywords": [
"time",
"interval",
"humand-readable",
"utility"
],
"scripts": {
"build": "tsup src/index.ts --format cjs,esm --dts --sourcemap",
"prepublishOnly": "pnpm run test",
"test": "pnpm run build && mocha"
},
"devDependencies": {
"mocha": "~10.0.0",
"tsup": "^6.1.3",
"typescript": "~4.7.4"
}
"@tsconfig/strictest": "^2.0.5",
"mocha": "^10.7.0",
"tsup": "^8.2.3",
"typescript": "^5.5.4"
},
"packageManager": "pnpm@9.6.0"
}

2175
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,23 +1,10 @@
{
"extends": "@tsconfig/strictest/tsconfig.json",
"compilerOptions": {
"target": "es2020",
"module": "commonjs",
"target": "es2022",
"module": "es2022",
"declaration": true,
"outDir": "./lib",
"rootDir": "./src",
"removeComments": true,
"strict": true,
"noImplicitAny": true,
"strictNullChecks": true,
"strictFunctionTypes": true,
"strictBindCallApply": true,
"strictPropertyInitialization": true,
"noImplicitThis": true,
"alwaysStrict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"esModuleInterop": true
}
}