npm.io
1.0.0 • Published 3 months ago

duriso

Licence
MIT
Version
1.0.0
Deps
0
Size
12 kB
Vulns
0
Weekly
0

Duriso

A lightweight, 658 byte package for parsing and serializing ISO 8601 Duration strings.

Installation

npm install duriso

Usage

import { serialize, parse } from "duriso";
CommonJS
const { serialize, parse } = require("duriso/index.cjs.js");
UMD (Browser)
<script src="https://unpkg.com/duriso/index.umd.js"></script>
<script>
  const { serialize, parse } = duriso;
</script>

API Reference

parse(durationString)

Parses an ISO 8601 duration string into a duration object.

Parameters:

  • durationString (string): An ISO 8601 formatted duration string

Returns:

{
  duration: {
    years?: number,
    months?: number,
    weeks?: number,
    days?: number,
    hours?: number,
    minutes?: number,
    seconds?: number
  }
}
serialize(durationObject)

Serializes a duration object into an ISO 8601 duration string.

Parameters:

{
  years?: number,
  months?: number,
  weeks?: number,
  days?: number,
  hours?: number,
  minutes?: number,
  seconds?: number
}

Returns:

  • (string): An ISO 8601 formatted duration string

Examples

Serializing Duration Objects
import { serialize } from "duriso";

// Full duration with all components
const fullDuration = {
  years: 3,
  months: 6,
  weeks: 2,
  days: 4,
  hours: 12,
  minutes: 30,
  seconds: 5
};

console.log(serialize(fullDuration));
// Output: "P3Y6M2W4DT12H30M5S"

// Time-only duration
const timeDuration = {
  hours: 12,
  minutes: 30,
  seconds: 5
};

console.log(serialize(timeDuration));
// Output: "PT12H30M5S"
Parsing Duration Strings
import { parse } from "duriso";

// Parse a full duration string
const fullParsed = parse("P3Y6M2W4DT12H30M5S");
console.log(fullParsed);
// Output:
// {
//   duration: {
//     years: 3,
//     months: 6,
//     weeks: 2,
//     days: 4,
//     hours: 12,
//     minutes: 30,
//     seconds: 5
//   }
// }

// Parse a time-only duration string
const timeParsed = parse("PT12H30M5S");
console.log(timeParsed);
// Output:
// {
//   duration: {
//     hours: 12,
//     minutes: 30,
//     seconds: 5
//   }
// }