UNPKG

pomeranian-durations

Version:

An immutable duration library based on the ISO-8601 format for durations.

292 lines (230 loc) 11.6 kB
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 }