pomeranian-durations
Version:
An immutable duration library based on the ISO-8601 format for durations.
292 lines (230 loc) • 11.6 kB
TypeScript
declare module 'pomeranian-durations' {
//add.js
export function sum(durations: string[]): string
export function add(firstIsoString: string, secondIsoString: string): string
export function add(firstIsoString: string): (secondIsoString: string) => string
export function addMicroseconds(amount: number, isoString: string): string
export function addMicroseconds(amount: number): (isoString: string) => string
export function addMilliseconds(amount: number, isoString: string): string
export function addMilliseconds(amount: number): (isoString: string) => string
export function addSeconds(amount: number, isoString: string): string
export function addSeconds(amount: number): (isoString: string) => string
export function addMinutes(amount: number, isoString: string): string
export function addMinutes(amount: number): (isoString: string) => string
export function addHours(amount: number, isoString: string): string
export function addHours(amount: number): (isoString: string) => string
export function addDays(amount: number, isoString: string): string
export function addDays(amount: number): (isoString: string) => string
export function addWeeks(amount: number, isoString: string): string
export function addWeeks(amount: number): (isoString: string) => string
export function addMonths(amount: number, isoString: string): string
export function addMonths(amount: number): (isoString: string) => string
export function addYears(amount: number, isoString: string): string
export function addYears(amount: number): (isoString: string) => string
export function addToDate(amount: string): (date: Date) => Date
export function addToDate(amount: string, date: Date): Date
//ceil.js
export function ceil(granularity: string, isoString: string): string
export function ceilSeconds(isoDuration: string): string
export function ceilMinutes(isoDuration: string): string
export function ceilHours(isoDuration: string): string
export function ceilDays(isoDuration: string): string
export function ceilWeeks(isoDuration: string): string
export function ceilMonths(isoDuration: string): string
export function ceilYears(isoDuration: string): string
//compare.js
export function gte(firstIsoDuration: string, secondIsoDuration: string): boolean
export function gte(firstIsoDuration: string): (secondIsoDuration: string) => boolean
export function gt(firstIsoDuration: string, secondIsoDuration: string): boolean
export function gt(firstIsoDuration: string): (secondIsoDuration: string) => boolean
export function lt(firstIsoDuration: string, secondIsoDuration: string): boolean
export function lt(firstIsoDuration: string): (secondIsoDuration: string) => boolean
export function lte(firstIsoDuration: string, secondIsoDuration: string): boolean
export function lte(firstIsoDuration: string): (secondIsoDuration: string) => boolean
export function eq(firstIsoDuration: string, secondIsoDuration: string): boolean
export function eq(firstIsoDuration: string): (secondIsoDuration: string) => boolean
//constants.js
export {}
export const ONE_MICROSECOND: number
export const ONE_MILLISECOND: number
export const ONE_SECOND: number
export const ONE_MINUTE: number
export const ONE_HOUR: number
export const ONE_DAY: number
export const TIME_DESIGNATOR: string
export const DURATION_DESIGNATOR: string
export const INVALID_DURATION: string
export const UNIT_NAMES: {
microseconds: 'microseconds',
milliseconds: 'milliseconds',
seconds: 'seconds',
minutes: 'minutes',
hours: 'hours',
days: 'days',
weeks: 'weeks',
months: 'months',
years: 'years',
}
export const UNIT_ORDER: string[]
type TIME_UNIT = number | string
export const TIME_UNITS: {
seconds: TIME_UNIT
minutes: TIME_UNIT
hours: TIME_UNIT
}
export const DATE_UNITS: {
days: TIME_UNIT
weeks: TIME_UNIT
months: TIME_UNIT
years: TIME_UNIT
}
export const UNITS: {
seconds: TIME_UNIT
minutes: TIME_UNIT
hours: TIME_UNIT
days: TIME_UNIT
weeks: TIME_UNIT
months: TIME_UNIT
years: TIME_UNIT
}
export interface Fragments<DEFAULT> {
seconds: number | DEFAULT
minutes: number | DEFAULT
hours: number | DEFAULT
days: number | DEFAULT
weeks: number | DEFAULT
months: number | DEFAULT
years: number | DEFAULT
}
type Units = Partial<Fragments<TIME_UNIT>>
//conversions.js
export function asMicroseconds(isoString: string): number
export function asMilliseconds(isoString: string): number
export function asSeconds(isoString: string): number
export function asMinutes(isoString: string): number
export function asHours(isoString: string): number
export function asDecimalMicroseconds(isoString: string): number
export function asDecimalMilliseconds(isoString: string): number
export function asDecimalSeconds(isoString: string): number
export function asDecimalMinutes(isoString: string): number
export function asDecimalHours(isoString: string): number
//find.js
export function findSeconds(isoString: string): number | undefined
export function findMinutes(isoString: string): number | undefined
export function findHours(isoString: string): number | undefined
export function findDays(isoString: string): number | undefined
export function findWeeks(isoString: string): number | undefined
export function findMonths(isoString: string): number | undefined
export function findYears(isoString: string): number | undefined
//floor.js
export function floor(granularity: string, isoString: string): string
export function floorSeconds(isoDuration: string): string
export function floorMinutes(isoDuration: string): string
export function floorHours(isoDuration: string): string
export function floorDays(isoDuration: string): string
export function floorWeeks(isoDuration: string): string
export function floorMonths(isoDuration: string): string
export function floorYears(isoDuration: string): string
//format.js
export function format(template: string, isoString: string): string
//from-sql.js
export function fromPostgres(isoString: string): string
export function fromPostgresVerbose(isoString: string): string
//from.js
export function fromMicroseconds(amount: number): string
export function fromMilliseconds(amount: number): string
export function fromSeconds(amount: number): string
export function fromMinutes(amount: number): string
export function fromHours(amount: number): string
export function fromDays(amount: number): string
export function fromWeeks(amount: number): string
export function fromMonths(amount: number): string
export function fromYears(amount: number): string
//in.js
export function inSeconds(isoDuration: string): string
export function inMinutes(isoDuration: string): string
export function inHours(isoDuration: string): string
//math.js
export function absolute(isoDuration: string): string
export function invert(isoDuration: string): string
//normolize.js
export function normalizeTime(isoDuration: string): string
//remove.js
export function removeSeconds(isoString: string): string
export function removeMinutes(isoString: string): string
export function removeHours(isoString: string): string
export function removeDays(isoString: string): string
export function removeWeeks(isoString: string): string
export function removeMonths(isoString: string): string
export function removeYears(isoString: string): string
export function removeTimeUnits(isoString: string): string
export function removeDateUnits(isoString: string): string
//sort.js
export function sortAsc(firstisoString: string, secondIsoString: string): number
export function sortAscBy<Key extends string>
(key: string): (
firstisoString: { [key in Key]: string },
secondIsoString: { [key in Key]: string }
) => number
export function sortAscBy<Key extends string>(
key: Key,
firstisoString: { [key in Key]: string },
secondIsoString: { [key in Key]: string },
): number
export function sortDesc(firstisoString: string, secondIsoString: string): number
export function sortDescBy<Key extends string>
(key: string): (
firstisoString: { [key in Key]: string },
secondIsoString: { [key in Key]: string }
) => number
export function sortDescBy<Key extends string>(
key: Key,
firstisoString: { [key in Key]: string },
secondIsoString: { [key in Key]: string },
): number
//substruct.js
export function subtract(firstIsoString: string, secondIsoString: string): string
export function subtract(firstIsoString: string): (secondIsoString: string) => string
export function subtractMilliseconds(amount: number, isoString: string): string
export function subtractMilliseconds(amount: number): (isoString: string) => string
export function subtractMicroseconds(amount: number, isoString: string): string
export function subtractMicroseconds(amount: number): (isoString: string) => string
export function subtractSeconds(amount: number, isoString: string): string
export function subtractSeconds(amount: number): (isoString: string) => string
export function subtractMinutes(amount: number, isoString: string): string
export function subtractMinutes(amount: number): (isoString: string) => string
export function subtractHours(amount: number, isoString: string): string
export function subtractHours(amount: number): (isoString: string) => string
export function subtractDays(amount: number, isoString: string): string
export function subtractDays(amount: number): (isoString: string) => string
export function subtractWeeks(amount: number, isoString: string): string
export function subtractWeeks(amount: number): (isoString: string) => string
export function subtractMonths(amount: number, isoString: string): string
export function subtractMonths(amount: number): (isoString: string) => string
export function subtractYears(amount: number, isoString: string): string
export function subtractYears(amount: number): (isoString: string) => string
export function subtractFromDate(amount: string): (date: Date) => Date
export function subtractFromDate(amount: string, date: Date): Date
//to-sql.js
export function toPostgresVerbose(isoString: string): string
export function toPostgres(isoString: string): string
export function toSql(isoString: string): string
//transformations.js
export function toIso(fragments: Units, options?: { includeZeroValues: true }): string
export function toFragments<DEFAULT_VALUE>(
isoString: string | null | undefined
): Fragments<number>
export function toFragments<DEFAULT_VALUE>(
isoString: string | null | undefined,
config: { defaultValue: DEFAULT_VALUE }
): Fragments<DEFAULT_VALUE>
export function unitNamesAsc(isoString: string): Array<keyof typeof UNIT_NAMES>
export function unitNamesDesc(isoString: string): Array<keyof typeof UNIT_NAMES>
//validate.js
export function isValid(isoString: any): boolean
export function isInvalid(isoString: string): boolean
export function whenInvalid(value: any | Function, isoDuration: string): string
export function whenInvalid(value: any | Function): (isoDuration: string) => string
export function whenInvalidDuration(value: any | Function, isoDuration: string): string
export function whenInvalidDuration(value: any | Function): (isoDuration: string) => string
}