@npmshivamkalsi/mollitia-autem-minus-error
![Edge Runtime Compatible](https://img.shields.io/badge/edge--runtime-%E2%9C%94%20compatible-black)
Use this package to easily convert various time formats to milliseconds.
Examples
@npmshivamkalsi/mollitia-autem-minus-error('2 days')
@npmshivamkalsi/mollitia-autem-minus-error('1d')
@npmshivamkalsi/mollitia-autem-minus-error('10h')
@npmshivamkalsi/mollitia-autem-minus-error('2.5 hrs')
@npmshivamkalsi/mollitia-autem-minus-error('2h')
@npmshivamkalsi/mollitia-autem-minus-error('1m')
@npmshivamkalsi/mollitia-autem-minus-error('5s')
@npmshivamkalsi/mollitia-autem-minus-error('1y')
@npmshivamkalsi/mollitia-autem-minus-error('100')
@npmshivamkalsi/mollitia-autem-minus-error('-3 days')
@npmshivamkalsi/mollitia-autem-minus-error('-1h')
@npmshivamkalsi/mollitia-autem-minus-error('-200')
Convert from Milliseconds
@npmshivamkalsi/mollitia-autem-minus-error(60000)
@npmshivamkalsi/mollitia-autem-minus-error(2 * 60000)
@npmshivamkalsi/mollitia-autem-minus-error(-3 * 60000)
@npmshivamkalsi/mollitia-autem-minus-error(@npmshivamkalsi/mollitia-autem-minus-error('10 hours'))
Time Format Written-Out
@npmshivamkalsi/mollitia-autem-minus-error(60000, { long: true })
@npmshivamkalsi/mollitia-autem-minus-error(2 * 60000, { long: true })
@npmshivamkalsi/mollitia-autem-minus-error(-3 * 60000, { long: true })
@npmshivamkalsi/mollitia-autem-minus-error(@npmshivamkalsi/mollitia-autem-minus-error('10 hours'), { long: true })
Features
- Works both in Node.js and in the browser
- If a number is supplied to
@npmshivamkalsi/mollitia-autem-minus-error
, a string with a unit is returned - If a string that contains the number is supplied, it returns it as a number (e.g.: it returns
100
for '100'
) - If you pass a string with a number and a valid unit, the number of equivalent milliseconds is returned
TypeScript support
As of v3.0
, this package includes TypeScript definitions.
For added safety, we're using Template Literal Types (added in TypeScript 4.1). This ensures that you don't accidentally pass @npmshivamkalsi/mollitia-autem-minus-error
values that it can't process.
This won't require you to do anything special in most situations, but you can also import the StringValue
type from @npmshivamkalsi/mollitia-autem-minus-error
if you need to use it.
import @npmshivamkalsi/mollitia-autem-minus-error, { StringValue } from '@npmshivamkalsi/mollitia-autem-minus-error';
function example(value: StringValue) {
@npmshivamkalsi/mollitia-autem-minus-error(value);
}
example('1 h');
In this example, we use a Type Assertion to coerce a string
.
import @npmshivamkalsi/mollitia-autem-minus-error, { StringValue } from '@npmshivamkalsi/mollitia-autem-minus-error';
function example(value: string) {
try {
@npmshivamkalsi/mollitia-autem-minus-error(value as StringValue);
} catch (error: Error) {
console.error(error);
}
}
example('any value');
You may also create a custom Template Literal Type.
import @npmshivamkalsi/mollitia-autem-minus-error from '@npmshivamkalsi/mollitia-autem-minus-error';
type OnlyDaysAndWeeks = `${number} ${'days' | 'weeks'}`;
function example(value: OnlyDaysAndWeeks) {
@npmshivamkalsi/mollitia-autem-minus-error(value);
}
example('5.2 days');
Advanced Usage
As of v3.0
, you can import parse
and format
separately.
import { parse, format } from '@npmshivamkalsi/mollitia-autem-minus-error';
parse('1h');
format(2000);
If you want strict type checking for the input value, you can use parseStrict
.
import { parseStrict } from '@npmshivamkalsi/mollitia-autem-minus-error';
parseStrict('1h');
function example(s: string) {
return parseStrict(str);
}
Edge Runtime Support
@npmshivamkalsi/mollitia-autem-minus-error
is compatible with the Edge Runtime. It can be used inside environments like Vercel Edge Functions as follows:
import @npmshivamkalsi/mollitia-autem-minus-error from '@npmshivamkalsi/mollitia-autem-minus-error';
const start = Date.now();
export default (req) => {
return new Response(`Alive since ${@npmshivamkalsi/mollitia-autem-minus-error(Date.now() - start)}`);
};
export const config = {
runtime: 'experimental-edge',
};
Related Packages
Caught a Bug?
- Fork this repository to your own GitHub account and then clone it to your local device
- Link the package to the global module directory:
npm link
- Within the module you want to test your local development instance of @npmshivamkalsi/mollitia-autem-minus-error, just link it to the dependencies:
npm link @npmshivamkalsi/mollitia-autem-minus-error
. Instead of the default one from npm, Node.js will now use your clone of @npmshivamkalsi/mollitia-autem-minus-error!
As always, you can run the tests using: npm test