tinyduration
Advanced tools
Comparing version 2.0.0 to 2.0.1
# CHANGELOG | ||
## 2.0.1 | ||
- Fix serialization bug serializing object with 0 units | ||
## 2.0.0 | ||
- **BREAKING:** Renamed `toString` to `serialize` | ||
@@ -45,2 +45,3 @@ "use strict"; | ||
exports.parse = parse; | ||
const s = (n, s) => (n ? n + s : undefined); | ||
function serialize(duration) { | ||
@@ -59,10 +60,10 @@ if (!duration.years && | ||
'P', | ||
duration.years && duration.years + 'Y', | ||
duration.months && duration.months + 'M', | ||
duration.weeks && duration.weeks + 'W', | ||
duration.days && duration.days + 'D', | ||
s(duration.years, 'Y'), | ||
s(duration.months, 'M'), | ||
s(duration.weeks, 'W'), | ||
s(duration.days, 'D'), | ||
(duration.hours || duration.minutes || duration.seconds) && 'T', | ||
duration.hours && duration.hours + 'H', | ||
duration.minutes && duration.minutes + 'M', | ||
duration.seconds && duration.seconds + 'S', | ||
s(duration.hours, 'H'), | ||
s(duration.minutes, 'M'), | ||
s(duration.seconds, 'S'), | ||
].join(''); | ||
@@ -69,0 +70,0 @@ } |
{ | ||
"name": "tinyduration", | ||
"version": "2.0.0", | ||
"version": "2.0.1", | ||
"description": "ISO-8601 duration parsing and serialization", | ||
@@ -43,4 +43,5 @@ "main": "dist/index.js", | ||
"testEnvironment": "node", | ||
"rootDir": "src" | ||
"coverageDirectory": "coverage", | ||
"testPathIgnorePatterns": ["<rootDir>/dist/", "<rootDir>/node_modules/"] | ||
} | ||
} |
@@ -28,7 +28,11 @@ import { parse, serialize, InvalidDurationError } from '.' | ||
}) | ||
}) | ||
test('serialize empty object', () => { | ||
expect(serialize({})).toEqual('PT0S') | ||
}) | ||
test('serialize empty object', () => { | ||
expect(serialize({})).toEqual('PT0S') | ||
}) | ||
test('serialize 0 units', () => { | ||
expect(serialize({ years: 12, days: 0 })).toEqual('P12Y') | ||
}) | ||
}) | ||
@@ -35,0 +39,0 @@ |
@@ -62,2 +62,3 @@ export interface Duration { | ||
const s = (n: number | undefined, s: string): string | undefined => (n ? n + s : undefined) | ||
export function serialize(duration: Duration): string { | ||
@@ -79,11 +80,11 @@ if ( | ||
'P', | ||
duration.years && duration.years + 'Y', | ||
duration.months && duration.months + 'M', | ||
duration.weeks && duration.weeks + 'W', | ||
duration.days && duration.days + 'D', | ||
s(duration.years, 'Y'), | ||
s(duration.months, 'M'), | ||
s(duration.weeks, 'W'), | ||
s(duration.days, 'D'), | ||
(duration.hours || duration.minutes || duration.seconds) && 'T', | ||
duration.hours && duration.hours + 'H', | ||
duration.minutes && duration.minutes + 'M', | ||
duration.seconds && duration.seconds + 'S', | ||
s(duration.hours, 'H'), | ||
s(duration.minutes, 'M'), | ||
s(duration.seconds, 'S'), | ||
].join('') | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
13862
258
0