@connect-soft/date-helper 0.0.8 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,14 @@
1
+ # Versions
2
+
3
+ ## v0.0.9
4
+ - added support: changing of locale
5
+ ## v0.0.8
6
+ - added support: formating by custom format
7
+ ## v0.0.7
8
+ - added support: formating by locale
9
+ ## v0.0.6
10
+ ## v0.0.5
11
+ ## v0.0.4
12
+ ## v0.0.3
13
+ ## v0.0.2
14
+ ## v0.0.1
package/dist/index.d.mts CHANGED
@@ -37,6 +37,12 @@ declare class DateHelper {
37
37
  formatLocalDate(locale?: string, options?: FormaterOptions): string;
38
38
  formatLocalTime(locale?: string, options?: FormaterOptions): string;
39
39
  formatLocalDateTime(locale?: string, options?: FormaterOptions): string;
40
+ getLocale(): string | null;
41
+ /**
42
+ * Do you heave imported file with locale before setting of locale?
43
+ * @param locale
44
+ */
45
+ setLocale(locale: string): this;
40
46
  }
41
47
 
42
48
  export { DateHelper, type IDateTimeType };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var y=Object.create;var u=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames,m=Object.getOwnPropertySymbols,w=Object.getPrototypeOf,d=Object.prototype.hasOwnProperty,j=Object.prototype.propertyIsEnumerable;var c=(n,t,e)=>t in n?u(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,s=(n,t)=>{for(var e in t||(t={}))d.call(t,e)&&c(n,e,t[e]);if(m)for(var e of m(t))j.call(t,e)&&c(n,e,t[e]);return n};var I=(n,t)=>{for(var e in t)u(n,e,{get:t[e],enumerable:!0})},f=(n,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of T(t))!d.call(n,r)&&r!==e&&u(n,r,{get:()=>t[r],enumerable:!(i=O(t,r))||i.enumerable});return n};var o=(n,t,e)=>(e=n!=null?y(w(n)):{},f(t||!n||!n.__esModule?u(e,"default",{value:n,enumerable:!0}):e,n)),F=n=>f(u({},"__esModule",{value:!0}),n);var H={};I(H,{DateHelper:()=>l});module.exports=F(H);var a=o(require("dayjs")),p=o(require("dayjs/plugin/isBetween")),h=o(require("dayjs/plugin/timezone")),D=o(require("dayjs/plugin/utc"));a.default.extend(p.default);a.default.extend(D.default);a.default.extend(h.default);var b={day:"numeric",month:"numeric",year:"numeric"},g={hour:"numeric",minute:"numeric"},x=s(s({},b),g),l=class n{constructor(t){this.instance=t}static fromDateTimeString(t){return new n((0,a.default)(t))}static from(t){return t?t instanceof Date?new n((0,a.default)(t)):new n((0,a.default)(t)):new n(null)}static now(){return new n((0,a.default)())}static addHours(t,e){return t===null||e===0?t:n.from(t).addHours(e).getObj()}addDays(t,e=!0){return this.add("days",t,e)}addHours(t,e=!0){return this.add("hours",t,e)}getObj(){return this.instance}isAfter(t,e="milliseconds"){return this.instance===null||t===null?0:this.instance.isAfter(t instanceof n?t.getObj():n.from(t).getObj(),e)}isEqual(t,e="milliseconds"){return this.instance===null&&t===null?!0:this.instance===null||t===null?!1:this.instance.isSame(t instanceof n?t.getObj():n.from(t).getObj(),e)}toDate(){var t,e;return(e=(t=this.instance)==null?void 0:t.toDate())!=null?e:null}getStartOfDay(t=!0){if(this.instance!==null){let e=this.instance.startOf("day");return t?(this.instance=e,this):n.from(e)}else return this}getEndOfDay(t=!0){if(this.instance!==null){let e=this.instance.endOf("day");return t?(this.instance=e,this):n.from(e)}else return this}diff(t,e,i=!0){return this.instance===null||t===null?0:this.instance.diff(t instanceof n?t.getObj():n.from(t).getObj(),e,i)}add(t,e,i=!0){if(this.instance!==null){let r=this.instance.add(e,t);return i?(this.instance=r,this):n.from(r)}else return this}format(t,e=null){var i,r;return(r=(i=this.instance)==null?void 0:i.format(t))!=null?r:e}formatLocalDate(t,e){let i=this.toDate();return i===null?"":new Intl.DateTimeFormat(t,s(s({},b),e)).format(i)}formatLocalTime(t,e){let i=this.toDate();return i===null?"":new Intl.DateTimeFormat(t,s(s({},g),e)).format(i)}formatLocalDateTime(t,e){let i=this.toDate();return i===null?"":new Intl.DateTimeFormat(t,s(s({},x),e)).format(i)}};0&&(module.exports={DateHelper});
1
+ "use strict";var y=Object.create;var u=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames,c=Object.getOwnPropertySymbols,w=Object.getPrototypeOf,d=Object.prototype.hasOwnProperty,j=Object.prototype.propertyIsEnumerable;var m=(n,t,e)=>t in n?u(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,s=(n,t)=>{for(var e in t||(t={}))d.call(t,e)&&m(n,e,t[e]);if(c)for(var e of c(t))j.call(t,e)&&m(n,e,t[e]);return n};var I=(n,t)=>{for(var e in t)u(n,e,{get:t[e],enumerable:!0})},f=(n,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of T(t))!d.call(n,r)&&r!==e&&u(n,r,{get:()=>t[r],enumerable:!(i=O(t,r))||i.enumerable});return n};var l=(n,t,e)=>(e=n!=null?y(w(n)):{},f(t||!n||!n.__esModule?u(e,"default",{value:n,enumerable:!0}):e,n)),F=n=>f(u({},"__esModule",{value:!0}),n);var H={};I(H,{DateHelper:()=>o});module.exports=F(H);var a=l(require("dayjs")),h=l(require("dayjs/plugin/isBetween")),p=l(require("dayjs/plugin/timezone")),b=l(require("dayjs/plugin/utc"));a.default.extend(h.default);a.default.extend(b.default);a.default.extend(p.default);var g={day:"numeric",month:"numeric",year:"numeric"},D={hour:"numeric",minute:"numeric"},x=s(s({},g),D),o=class n{constructor(t){this.instance=t}static fromDateTimeString(t){return new n((0,a.default)(t))}static from(t){return t?t instanceof Date?new n((0,a.default)(t)):new n((0,a.default)(t)):new n(null)}static now(){return new n((0,a.default)())}static addHours(t,e){return t===null||e===0?t:n.from(t).addHours(e).getObj()}addDays(t,e=!0){return this.add("days",t,e)}addHours(t,e=!0){return this.add("hours",t,e)}getObj(){return this.instance}isAfter(t,e="milliseconds"){return this.instance===null||t===null?0:this.instance.isAfter(t instanceof n?t.getObj():n.from(t).getObj(),e)}isEqual(t,e="milliseconds"){return this.instance===null&&t===null?!0:this.instance===null||t===null?!1:this.instance.isSame(t instanceof n?t.getObj():n.from(t).getObj(),e)}toDate(){var t,e;return(e=(t=this.instance)==null?void 0:t.toDate())!=null?e:null}getStartOfDay(t=!0){if(this.instance!==null){let e=this.instance.startOf("day");return t?(this.instance=e,this):n.from(e)}else return this}getEndOfDay(t=!0){if(this.instance!==null){let e=this.instance.endOf("day");return t?(this.instance=e,this):n.from(e)}else return this}diff(t,e,i=!0){return this.instance===null||t===null?0:this.instance.diff(t instanceof n?t.getObj():n.from(t).getObj(),e,i)}add(t,e,i=!0){if(this.instance!==null){let r=this.instance.add(e,t);return i?(this.instance=r,this):n.from(r)}else return this}format(t,e=null){var i,r;return(r=(i=this.instance)==null?void 0:i.format(t))!=null?r:e}formatLocalDate(t,e){let i=this.toDate();return i===null?"":new Intl.DateTimeFormat(t,s(s({},g),e)).format(i)}formatLocalTime(t,e){let i=this.toDate();return i===null?"":new Intl.DateTimeFormat(t,s(s({},D),e)).format(i)}formatLocalDateTime(t,e){let i=this.toDate();return i===null?"":new Intl.DateTimeFormat(t,s(s({},x),e)).format(i)}getLocale(){var t,e;return(e=(t=this.instance)==null?void 0:t.locale())!=null?e:null}setLocale(t){return this.instance!==null&&(this.instance=this.instance.locale(t)),this}};0&&(module.exports={DateHelper});
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/lib/DateHelper.ts"],"sourcesContent":["export * from './lib/DateHelper';\n","import dayjsInstance, { Dayjs } from 'dayjs';\nimport isBetween from 'dayjs/plugin/isBetween'\nimport timezone from 'dayjs/plugin/timezone'\nimport utc from 'dayjs/plugin/utc'\n\ndayjsInstance.extend(isBetween);\ndayjsInstance.extend(utc);\ndayjsInstance.extend(timezone);\n\nexport type IDateTimeType = Dayjs;\n\ntype FormaterOptions = {\n localeMatcher?: \"best fit\" | \"lookup\";\n weekday?: \"long\" | \"short\" | \"narrow\";\n era?: \"long\" | \"short\" | \"narrow\";\n year?: \"numeric\" | \"2-digit\";\n month?: \"numeric\" | \"2-digit\" | \"long\" | \"short\" | \"narrow\";\n day?: \"numeric\" | \"2-digit\";\n hour?: \"numeric\" | \"2-digit\";\n minute?: \"numeric\" | \"2-digit\";\n second?: \"numeric\" | \"2-digit\";\n timeZoneName?: \"short\" | \"long\" | \"shortOffset\" | \"longOffset\" | \"shortGeneric\" | \"longGeneric\";\n formatMatcher?: \"best fit\" | \"basic\";\n hour12?: boolean;\n timeZone?: string;\n}\n\nconst dateOptions: FormaterOptions = {\n day: \"numeric\",month: \"numeric\", year: \"numeric\"\n}\nconst timeOptions: FormaterOptions = {\n hour: \"numeric\",minute: \"numeric\"\n}\nconst dateTimeOptions: FormaterOptions = {\n ...dateOptions,\n ...timeOptions\n}\n\nexport class DateHelper {\n private constructor(private instance: IDateTimeType | null) {}\n\n public static fromDateTimeString(source: string) {\n return new DateHelper(dayjsInstance(source));\n }\n\n public static from(source: Date | IDateTimeType | null | undefined) {\n if (!source) {\n return new DateHelper(null);\n }\n if (source instanceof Date) {\n return new DateHelper(dayjsInstance(source));\n }\n\n return new DateHelper(dayjsInstance(source));\n }\n\n public static now() {\n return new DateHelper(dayjsInstance());\n }\n\n public static addHours(source: IDateTimeType | Date | null, hours: number) {\n if (source === null || hours === 0) {\n return source;\n }\n\n return DateHelper.from(source).addHours(hours).getObj();\n }\n\n public addDays(days: number, update = true) {\n return this.add('days', days, update);\n }\n\n public addHours(hours: number, update = true) {\n return this.add('hours', hours, update);\n }\n\n public getObj() {\n return this.instance;\n }\n\n public isAfter(\n before: IDateTimeType | Date | null | DateHelper,\n unit:\n | 'milliseconds'\n | 'seconds'\n | 'minutes'\n | 'hours'\n | 'days'\n | 'months'\n | 'years'\n | 'dates'\n | 'weeks' = 'milliseconds'\n ) {\n if (this.instance === null || before === null) {\n return 0;\n }\n return this.instance.isAfter(\n before instanceof DateHelper ? before.getObj() : DateHelper.from(before).getObj(),\n unit\n );\n }\n\n public isEqual(\n equal: IDateTimeType | Date | null | DateHelper,\n unit:\n | 'milliseconds'\n | 'seconds'\n | 'minutes'\n | 'hours'\n | 'days'\n | 'months'\n | 'years'\n | 'dates'\n | 'weeks' = 'milliseconds'\n ) {\n if (this.instance === null && equal === null) {\n return true;\n } else if (this.instance === null || equal === null) {\n return false;\n }\n\n return this.instance.isSame(equal instanceof DateHelper ? equal.getObj() : DateHelper.from(equal).getObj(), unit);\n }\n\n public toDate() {\n return this.instance?.toDate() ?? null;\n }\n\n public getStartOfDay(update = true) {\n if (this.instance !== null) {\n const updated = this.instance.startOf('day');\n\n if (update) {\n this.instance = updated;\n\n return this;\n } else {\n return DateHelper.from(updated);\n }\n } else {\n return this;\n }\n }\n\n public getEndOfDay(update = true) {\n if (this.instance !== null) {\n const updated = this.instance.endOf('day');\n\n if (update) {\n this.instance = updated;\n\n return this;\n } else {\n return DateHelper.from(updated);\n }\n } else {\n return this;\n }\n }\n\n public diff(source: IDateTimeType | Date | null | DateHelper, unit: 'days' | 'hours' | 'minutes', float = true) {\n if (this.instance === null || source === null) {\n return 0;\n }\n return this.instance.diff(\n source instanceof DateHelper ? source.getObj() : DateHelper.from(source).getObj(),\n unit,\n float\n );\n }\n\n private add(type: 'days' | 'hours', value: number, update = true) {\n if (this.instance !== null) {\n const updated = this.instance.add(value, type);\n\n if (update) {\n this.instance = updated;\n\n return this;\n } else {\n return DateHelper.from(updated);\n }\n } else {\n return this;\n }\n }\n\n public format(format: string, defaultValue:string |null= null) {\n return this.instance?.format(format) ?? defaultValue\n }\n\n public formatLocalDate(locale?: string, options?: FormaterOptions) {\n const date = this.toDate();\n if (date === null) {\n return \"\"\n }\n return new Intl.DateTimeFormat(locale, {...dateOptions, ...options}).format(date)\n }\n\n public formatLocalTime(locale?: string, options?: FormaterOptions) {\n const date = this.toDate();\n if (date === null) {\n return \"\"\n }\n return new Intl.DateTimeFormat(locale, {...timeOptions, ...options}).format(date)\n }\n\n public formatLocalDateTime(locale?: string, options?: FormaterOptions) {\n const date = this.toDate();\n if (date === null) {\n return \"\"\n }\n return new Intl.DateTimeFormat(locale, {...dateTimeOptions, ...options}).format(date)\n }\n}\n"],"mappings":"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","names":["index_exports","__export","DateHelper","__toCommonJS","import_dayjs","import_isBetween","import_timezone","import_utc","dayjsInstance","isBetween","utc","timezone","dateOptions","timeOptions","dateTimeOptions","__spreadValues","DateHelper","_DateHelper","instance","source","hours","days","update","before","unit","equal","_a","_b","updated","float","type","value","format","defaultValue","locale","options","date"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/lib/DateHelper.ts"],"sourcesContent":["export * from './lib/DateHelper';\n","import dayjsInstance, { Dayjs } from 'dayjs';\nimport isBetween from 'dayjs/plugin/isBetween'\nimport timezone from 'dayjs/plugin/timezone'\nimport utc from 'dayjs/plugin/utc'\n\ndayjsInstance.extend(isBetween);\ndayjsInstance.extend(utc);\ndayjsInstance.extend(timezone);\n\nexport type IDateTimeType = Dayjs;\n\ntype FormaterOptions = {\n localeMatcher?: \"best fit\" | \"lookup\";\n weekday?: \"long\" | \"short\" | \"narrow\";\n era?: \"long\" | \"short\" | \"narrow\";\n year?: \"numeric\" | \"2-digit\";\n month?: \"numeric\" | \"2-digit\" | \"long\" | \"short\" | \"narrow\";\n day?: \"numeric\" | \"2-digit\";\n hour?: \"numeric\" | \"2-digit\";\n minute?: \"numeric\" | \"2-digit\";\n second?: \"numeric\" | \"2-digit\";\n timeZoneName?: \"short\" | \"long\" | \"shortOffset\" | \"longOffset\" | \"shortGeneric\" | \"longGeneric\";\n formatMatcher?: \"best fit\" | \"basic\";\n hour12?: boolean;\n timeZone?: string;\n}\n\nconst dateOptions: FormaterOptions = {\n day: \"numeric\",month: \"numeric\", year: \"numeric\"\n}\nconst timeOptions: FormaterOptions = {\n hour: \"numeric\",minute: \"numeric\"\n}\nconst dateTimeOptions: FormaterOptions = {\n ...dateOptions,\n ...timeOptions\n}\n\nexport class DateHelper {\n private constructor(private instance: IDateTimeType | null) {}\n\n public static fromDateTimeString(source: string) {\n return new DateHelper(dayjsInstance(source));\n }\n\n public static from(source: Date | IDateTimeType | null | undefined) {\n if (!source) {\n return new DateHelper(null);\n }\n if (source instanceof Date) {\n return new DateHelper(dayjsInstance(source));\n }\n\n return new DateHelper(dayjsInstance(source));\n }\n\n public static now() {\n return new DateHelper(dayjsInstance());\n }\n\n public static addHours(source: IDateTimeType | Date | null, hours: number) {\n if (source === null || hours === 0) {\n return source;\n }\n\n return DateHelper.from(source).addHours(hours).getObj();\n }\n\n public addDays(days: number, update = true) {\n return this.add('days', days, update);\n }\n\n public addHours(hours: number, update = true) {\n return this.add('hours', hours, update);\n }\n\n public getObj() {\n return this.instance;\n }\n\n public isAfter(\n before: IDateTimeType | Date | null | DateHelper,\n unit:\n | 'milliseconds'\n | 'seconds'\n | 'minutes'\n | 'hours'\n | 'days'\n | 'months'\n | 'years'\n | 'dates'\n | 'weeks' = 'milliseconds'\n ) {\n if (this.instance === null || before === null) {\n return 0;\n }\n return this.instance.isAfter(\n before instanceof DateHelper ? before.getObj() : DateHelper.from(before).getObj(),\n unit\n );\n }\n\n public isEqual(\n equal: IDateTimeType | Date | null | DateHelper,\n unit:\n | 'milliseconds'\n | 'seconds'\n | 'minutes'\n | 'hours'\n | 'days'\n | 'months'\n | 'years'\n | 'dates'\n | 'weeks' = 'milliseconds'\n ) {\n if (this.instance === null && equal === null) {\n return true;\n } else if (this.instance === null || equal === null) {\n return false;\n }\n\n return this.instance.isSame(equal instanceof DateHelper ? equal.getObj() : DateHelper.from(equal).getObj(), unit);\n }\n\n public toDate() {\n return this.instance?.toDate() ?? null;\n }\n\n public getStartOfDay(update = true) {\n if (this.instance !== null) {\n const updated = this.instance.startOf('day');\n\n if (update) {\n this.instance = updated;\n\n return this;\n } else {\n return DateHelper.from(updated);\n }\n } else {\n return this;\n }\n }\n\n public getEndOfDay(update = true) {\n if (this.instance !== null) {\n const updated = this.instance.endOf('day');\n\n if (update) {\n this.instance = updated;\n\n return this;\n } else {\n return DateHelper.from(updated);\n }\n } else {\n return this;\n }\n }\n\n public diff(source: IDateTimeType | Date | null | DateHelper, unit: 'days' | 'hours' | 'minutes', float = true) {\n if (this.instance === null || source === null) {\n return 0;\n }\n return this.instance.diff(\n source instanceof DateHelper ? source.getObj() : DateHelper.from(source).getObj(),\n unit,\n float\n );\n }\n\n private add(type: 'days' | 'hours', value: number, update = true) {\n if (this.instance !== null) {\n const updated = this.instance.add(value, type);\n\n if (update) {\n this.instance = updated;\n\n return this;\n } else {\n return DateHelper.from(updated);\n }\n } else {\n return this;\n }\n }\n\n public format(format: string, defaultValue:string |null= null) {\n return this.instance?.format(format) ?? defaultValue\n }\n\n public formatLocalDate(locale?: string, options?: FormaterOptions) {\n const date = this.toDate();\n if (date === null) {\n return \"\"\n }\n return new Intl.DateTimeFormat(locale, {...dateOptions, ...options}).format(date)\n }\n\n public formatLocalTime(locale?: string, options?: FormaterOptions) {\n const date = this.toDate();\n if (date === null) {\n return \"\"\n }\n return new Intl.DateTimeFormat(locale, {...timeOptions, ...options}).format(date)\n }\n\n public formatLocalDateTime(locale?: string, options?: FormaterOptions) {\n const date = this.toDate();\n if (date === null) {\n return \"\"\n }\n return new Intl.DateTimeFormat(locale, {...dateTimeOptions, ...options}).format(date)\n }\n\n public getLocale() {\n return this.instance?.locale() ?? null;\n }\n\n /**\n * Do you heave imported file with locale before setting of locale?\n * @param locale\n */\n public setLocale(locale: string) {\n if (this.instance !== null) {\n this.instance = this.instance.locale(locale);\n }\n\n return this;\n }\n}\n"],"mappings":"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","names":["index_exports","__export","DateHelper","__toCommonJS","import_dayjs","import_isBetween","import_timezone","import_utc","dayjsInstance","isBetween","utc","timezone","dateOptions","timeOptions","dateTimeOptions","__spreadValues","DateHelper","_DateHelper","instance","source","hours","days","update","before","unit","equal","_a","_b","updated","float","type","value","format","defaultValue","locale","options","date"]}
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- var d=Object.defineProperty;var u=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,p=Object.prototype.propertyIsEnumerable;var o=(n,t,e)=>t in n?d(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,r=(n,t)=>{for(var e in t||(t={}))f.call(t,e)&&o(n,e,t[e]);if(u)for(var e of u(t))p.call(t,e)&&o(n,e,t[e]);return n};import s from"dayjs";import h from"dayjs/plugin/isBetween";import D from"dayjs/plugin/timezone";import b from"dayjs/plugin/utc";s.extend(h);s.extend(b);s.extend(D);var m={day:"numeric",month:"numeric",year:"numeric"},c={hour:"numeric",minute:"numeric"},g=r(r({},m),c),l=class n{constructor(t){this.instance=t}static fromDateTimeString(t){return new n(s(t))}static from(t){return t?t instanceof Date?new n(s(t)):new n(s(t)):new n(null)}static now(){return new n(s())}static addHours(t,e){return t===null||e===0?t:n.from(t).addHours(e).getObj()}addDays(t,e=!0){return this.add("days",t,e)}addHours(t,e=!0){return this.add("hours",t,e)}getObj(){return this.instance}isAfter(t,e="milliseconds"){return this.instance===null||t===null?0:this.instance.isAfter(t instanceof n?t.getObj():n.from(t).getObj(),e)}isEqual(t,e="milliseconds"){return this.instance===null&&t===null?!0:this.instance===null||t===null?!1:this.instance.isSame(t instanceof n?t.getObj():n.from(t).getObj(),e)}toDate(){var t,e;return(e=(t=this.instance)==null?void 0:t.toDate())!=null?e:null}getStartOfDay(t=!0){if(this.instance!==null){let e=this.instance.startOf("day");return t?(this.instance=e,this):n.from(e)}else return this}getEndOfDay(t=!0){if(this.instance!==null){let e=this.instance.endOf("day");return t?(this.instance=e,this):n.from(e)}else return this}diff(t,e,i=!0){return this.instance===null||t===null?0:this.instance.diff(t instanceof n?t.getObj():n.from(t).getObj(),e,i)}add(t,e,i=!0){if(this.instance!==null){let a=this.instance.add(e,t);return i?(this.instance=a,this):n.from(a)}else return this}format(t,e=null){var i,a;return(a=(i=this.instance)==null?void 0:i.format(t))!=null?a:e}formatLocalDate(t,e){let i=this.toDate();return i===null?"":new Intl.DateTimeFormat(t,r(r({},m),e)).format(i)}formatLocalTime(t,e){let i=this.toDate();return i===null?"":new Intl.DateTimeFormat(t,r(r({},c),e)).format(i)}formatLocalDateTime(t,e){let i=this.toDate();return i===null?"":new Intl.DateTimeFormat(t,r(r({},g),e)).format(i)}};export{l as DateHelper};
1
+ var d=Object.defineProperty;var u=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable;var l=(n,t,e)=>t in n?d(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,r=(n,t)=>{for(var e in t||(t={}))f.call(t,e)&&l(n,e,t[e]);if(u)for(var e of u(t))h.call(t,e)&&l(n,e,t[e]);return n};import s from"dayjs";import p from"dayjs/plugin/isBetween";import b from"dayjs/plugin/timezone";import g from"dayjs/plugin/utc";s.extend(p);s.extend(g);s.extend(b);var c={day:"numeric",month:"numeric",year:"numeric"},m={hour:"numeric",minute:"numeric"},D=r(r({},c),m),o=class n{constructor(t){this.instance=t}static fromDateTimeString(t){return new n(s(t))}static from(t){return t?t instanceof Date?new n(s(t)):new n(s(t)):new n(null)}static now(){return new n(s())}static addHours(t,e){return t===null||e===0?t:n.from(t).addHours(e).getObj()}addDays(t,e=!0){return this.add("days",t,e)}addHours(t,e=!0){return this.add("hours",t,e)}getObj(){return this.instance}isAfter(t,e="milliseconds"){return this.instance===null||t===null?0:this.instance.isAfter(t instanceof n?t.getObj():n.from(t).getObj(),e)}isEqual(t,e="milliseconds"){return this.instance===null&&t===null?!0:this.instance===null||t===null?!1:this.instance.isSame(t instanceof n?t.getObj():n.from(t).getObj(),e)}toDate(){var t,e;return(e=(t=this.instance)==null?void 0:t.toDate())!=null?e:null}getStartOfDay(t=!0){if(this.instance!==null){let e=this.instance.startOf("day");return t?(this.instance=e,this):n.from(e)}else return this}getEndOfDay(t=!0){if(this.instance!==null){let e=this.instance.endOf("day");return t?(this.instance=e,this):n.from(e)}else return this}diff(t,e,i=!0){return this.instance===null||t===null?0:this.instance.diff(t instanceof n?t.getObj():n.from(t).getObj(),e,i)}add(t,e,i=!0){if(this.instance!==null){let a=this.instance.add(e,t);return i?(this.instance=a,this):n.from(a)}else return this}format(t,e=null){var i,a;return(a=(i=this.instance)==null?void 0:i.format(t))!=null?a:e}formatLocalDate(t,e){let i=this.toDate();return i===null?"":new Intl.DateTimeFormat(t,r(r({},c),e)).format(i)}formatLocalTime(t,e){let i=this.toDate();return i===null?"":new Intl.DateTimeFormat(t,r(r({},m),e)).format(i)}formatLocalDateTime(t,e){let i=this.toDate();return i===null?"":new Intl.DateTimeFormat(t,r(r({},D),e)).format(i)}getLocale(){var t,e;return(e=(t=this.instance)==null?void 0:t.locale())!=null?e:null}setLocale(t){return this.instance!==null&&(this.instance=this.instance.locale(t)),this}};export{o as DateHelper};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/lib/DateHelper.ts"],"sourcesContent":["import dayjsInstance, { Dayjs } from 'dayjs';\nimport isBetween from 'dayjs/plugin/isBetween'\nimport timezone from 'dayjs/plugin/timezone'\nimport utc from 'dayjs/plugin/utc'\n\ndayjsInstance.extend(isBetween);\ndayjsInstance.extend(utc);\ndayjsInstance.extend(timezone);\n\nexport type IDateTimeType = Dayjs;\n\ntype FormaterOptions = {\n localeMatcher?: \"best fit\" | \"lookup\";\n weekday?: \"long\" | \"short\" | \"narrow\";\n era?: \"long\" | \"short\" | \"narrow\";\n year?: \"numeric\" | \"2-digit\";\n month?: \"numeric\" | \"2-digit\" | \"long\" | \"short\" | \"narrow\";\n day?: \"numeric\" | \"2-digit\";\n hour?: \"numeric\" | \"2-digit\";\n minute?: \"numeric\" | \"2-digit\";\n second?: \"numeric\" | \"2-digit\";\n timeZoneName?: \"short\" | \"long\" | \"shortOffset\" | \"longOffset\" | \"shortGeneric\" | \"longGeneric\";\n formatMatcher?: \"best fit\" | \"basic\";\n hour12?: boolean;\n timeZone?: string;\n}\n\nconst dateOptions: FormaterOptions = {\n day: \"numeric\",month: \"numeric\", year: \"numeric\"\n}\nconst timeOptions: FormaterOptions = {\n hour: \"numeric\",minute: \"numeric\"\n}\nconst dateTimeOptions: FormaterOptions = {\n ...dateOptions,\n ...timeOptions\n}\n\nexport class DateHelper {\n private constructor(private instance: IDateTimeType | null) {}\n\n public static fromDateTimeString(source: string) {\n return new DateHelper(dayjsInstance(source));\n }\n\n public static from(source: Date | IDateTimeType | null | undefined) {\n if (!source) {\n return new DateHelper(null);\n }\n if (source instanceof Date) {\n return new DateHelper(dayjsInstance(source));\n }\n\n return new DateHelper(dayjsInstance(source));\n }\n\n public static now() {\n return new DateHelper(dayjsInstance());\n }\n\n public static addHours(source: IDateTimeType | Date | null, hours: number) {\n if (source === null || hours === 0) {\n return source;\n }\n\n return DateHelper.from(source).addHours(hours).getObj();\n }\n\n public addDays(days: number, update = true) {\n return this.add('days', days, update);\n }\n\n public addHours(hours: number, update = true) {\n return this.add('hours', hours, update);\n }\n\n public getObj() {\n return this.instance;\n }\n\n public isAfter(\n before: IDateTimeType | Date | null | DateHelper,\n unit:\n | 'milliseconds'\n | 'seconds'\n | 'minutes'\n | 'hours'\n | 'days'\n | 'months'\n | 'years'\n | 'dates'\n | 'weeks' = 'milliseconds'\n ) {\n if (this.instance === null || before === null) {\n return 0;\n }\n return this.instance.isAfter(\n before instanceof DateHelper ? before.getObj() : DateHelper.from(before).getObj(),\n unit\n );\n }\n\n public isEqual(\n equal: IDateTimeType | Date | null | DateHelper,\n unit:\n | 'milliseconds'\n | 'seconds'\n | 'minutes'\n | 'hours'\n | 'days'\n | 'months'\n | 'years'\n | 'dates'\n | 'weeks' = 'milliseconds'\n ) {\n if (this.instance === null && equal === null) {\n return true;\n } else if (this.instance === null || equal === null) {\n return false;\n }\n\n return this.instance.isSame(equal instanceof DateHelper ? equal.getObj() : DateHelper.from(equal).getObj(), unit);\n }\n\n public toDate() {\n return this.instance?.toDate() ?? null;\n }\n\n public getStartOfDay(update = true) {\n if (this.instance !== null) {\n const updated = this.instance.startOf('day');\n\n if (update) {\n this.instance = updated;\n\n return this;\n } else {\n return DateHelper.from(updated);\n }\n } else {\n return this;\n }\n }\n\n public getEndOfDay(update = true) {\n if (this.instance !== null) {\n const updated = this.instance.endOf('day');\n\n if (update) {\n this.instance = updated;\n\n return this;\n } else {\n return DateHelper.from(updated);\n }\n } else {\n return this;\n }\n }\n\n public diff(source: IDateTimeType | Date | null | DateHelper, unit: 'days' | 'hours' | 'minutes', float = true) {\n if (this.instance === null || source === null) {\n return 0;\n }\n return this.instance.diff(\n source instanceof DateHelper ? source.getObj() : DateHelper.from(source).getObj(),\n unit,\n float\n );\n }\n\n private add(type: 'days' | 'hours', value: number, update = true) {\n if (this.instance !== null) {\n const updated = this.instance.add(value, type);\n\n if (update) {\n this.instance = updated;\n\n return this;\n } else {\n return DateHelper.from(updated);\n }\n } else {\n return this;\n }\n }\n\n public format(format: string, defaultValue:string |null= null) {\n return this.instance?.format(format) ?? defaultValue\n }\n\n public formatLocalDate(locale?: string, options?: FormaterOptions) {\n const date = this.toDate();\n if (date === null) {\n return \"\"\n }\n return new Intl.DateTimeFormat(locale, {...dateOptions, ...options}).format(date)\n }\n\n public formatLocalTime(locale?: string, options?: FormaterOptions) {\n const date = this.toDate();\n if (date === null) {\n return \"\"\n }\n return new Intl.DateTimeFormat(locale, {...timeOptions, ...options}).format(date)\n }\n\n public formatLocalDateTime(locale?: string, options?: FormaterOptions) {\n const date = this.toDate();\n if (date === null) {\n return \"\"\n }\n return new Intl.DateTimeFormat(locale, {...dateTimeOptions, ...options}).format(date)\n }\n}\n"],"mappings":"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","names":["dayjsInstance","isBetween","timezone","utc","dayjsInstance","isBetween","utc","timezone","dateOptions","timeOptions","dateTimeOptions","__spreadValues","DateHelper","_DateHelper","instance","source","hours","days","update","before","unit","equal","_a","_b","updated","float","type","value","format","defaultValue","locale","options","date"]}
1
+ {"version":3,"sources":["../src/lib/DateHelper.ts"],"sourcesContent":["import dayjsInstance, { Dayjs } from 'dayjs';\nimport isBetween from 'dayjs/plugin/isBetween'\nimport timezone from 'dayjs/plugin/timezone'\nimport utc from 'dayjs/plugin/utc'\n\ndayjsInstance.extend(isBetween);\ndayjsInstance.extend(utc);\ndayjsInstance.extend(timezone);\n\nexport type IDateTimeType = Dayjs;\n\ntype FormaterOptions = {\n localeMatcher?: \"best fit\" | \"lookup\";\n weekday?: \"long\" | \"short\" | \"narrow\";\n era?: \"long\" | \"short\" | \"narrow\";\n year?: \"numeric\" | \"2-digit\";\n month?: \"numeric\" | \"2-digit\" | \"long\" | \"short\" | \"narrow\";\n day?: \"numeric\" | \"2-digit\";\n hour?: \"numeric\" | \"2-digit\";\n minute?: \"numeric\" | \"2-digit\";\n second?: \"numeric\" | \"2-digit\";\n timeZoneName?: \"short\" | \"long\" | \"shortOffset\" | \"longOffset\" | \"shortGeneric\" | \"longGeneric\";\n formatMatcher?: \"best fit\" | \"basic\";\n hour12?: boolean;\n timeZone?: string;\n}\n\nconst dateOptions: FormaterOptions = {\n day: \"numeric\",month: \"numeric\", year: \"numeric\"\n}\nconst timeOptions: FormaterOptions = {\n hour: \"numeric\",minute: \"numeric\"\n}\nconst dateTimeOptions: FormaterOptions = {\n ...dateOptions,\n ...timeOptions\n}\n\nexport class DateHelper {\n private constructor(private instance: IDateTimeType | null) {}\n\n public static fromDateTimeString(source: string) {\n return new DateHelper(dayjsInstance(source));\n }\n\n public static from(source: Date | IDateTimeType | null | undefined) {\n if (!source) {\n return new DateHelper(null);\n }\n if (source instanceof Date) {\n return new DateHelper(dayjsInstance(source));\n }\n\n return new DateHelper(dayjsInstance(source));\n }\n\n public static now() {\n return new DateHelper(dayjsInstance());\n }\n\n public static addHours(source: IDateTimeType | Date | null, hours: number) {\n if (source === null || hours === 0) {\n return source;\n }\n\n return DateHelper.from(source).addHours(hours).getObj();\n }\n\n public addDays(days: number, update = true) {\n return this.add('days', days, update);\n }\n\n public addHours(hours: number, update = true) {\n return this.add('hours', hours, update);\n }\n\n public getObj() {\n return this.instance;\n }\n\n public isAfter(\n before: IDateTimeType | Date | null | DateHelper,\n unit:\n | 'milliseconds'\n | 'seconds'\n | 'minutes'\n | 'hours'\n | 'days'\n | 'months'\n | 'years'\n | 'dates'\n | 'weeks' = 'milliseconds'\n ) {\n if (this.instance === null || before === null) {\n return 0;\n }\n return this.instance.isAfter(\n before instanceof DateHelper ? before.getObj() : DateHelper.from(before).getObj(),\n unit\n );\n }\n\n public isEqual(\n equal: IDateTimeType | Date | null | DateHelper,\n unit:\n | 'milliseconds'\n | 'seconds'\n | 'minutes'\n | 'hours'\n | 'days'\n | 'months'\n | 'years'\n | 'dates'\n | 'weeks' = 'milliseconds'\n ) {\n if (this.instance === null && equal === null) {\n return true;\n } else if (this.instance === null || equal === null) {\n return false;\n }\n\n return this.instance.isSame(equal instanceof DateHelper ? equal.getObj() : DateHelper.from(equal).getObj(), unit);\n }\n\n public toDate() {\n return this.instance?.toDate() ?? null;\n }\n\n public getStartOfDay(update = true) {\n if (this.instance !== null) {\n const updated = this.instance.startOf('day');\n\n if (update) {\n this.instance = updated;\n\n return this;\n } else {\n return DateHelper.from(updated);\n }\n } else {\n return this;\n }\n }\n\n public getEndOfDay(update = true) {\n if (this.instance !== null) {\n const updated = this.instance.endOf('day');\n\n if (update) {\n this.instance = updated;\n\n return this;\n } else {\n return DateHelper.from(updated);\n }\n } else {\n return this;\n }\n }\n\n public diff(source: IDateTimeType | Date | null | DateHelper, unit: 'days' | 'hours' | 'minutes', float = true) {\n if (this.instance === null || source === null) {\n return 0;\n }\n return this.instance.diff(\n source instanceof DateHelper ? source.getObj() : DateHelper.from(source).getObj(),\n unit,\n float\n );\n }\n\n private add(type: 'days' | 'hours', value: number, update = true) {\n if (this.instance !== null) {\n const updated = this.instance.add(value, type);\n\n if (update) {\n this.instance = updated;\n\n return this;\n } else {\n return DateHelper.from(updated);\n }\n } else {\n return this;\n }\n }\n\n public format(format: string, defaultValue:string |null= null) {\n return this.instance?.format(format) ?? defaultValue\n }\n\n public formatLocalDate(locale?: string, options?: FormaterOptions) {\n const date = this.toDate();\n if (date === null) {\n return \"\"\n }\n return new Intl.DateTimeFormat(locale, {...dateOptions, ...options}).format(date)\n }\n\n public formatLocalTime(locale?: string, options?: FormaterOptions) {\n const date = this.toDate();\n if (date === null) {\n return \"\"\n }\n return new Intl.DateTimeFormat(locale, {...timeOptions, ...options}).format(date)\n }\n\n public formatLocalDateTime(locale?: string, options?: FormaterOptions) {\n const date = this.toDate();\n if (date === null) {\n return \"\"\n }\n return new Intl.DateTimeFormat(locale, {...dateTimeOptions, ...options}).format(date)\n }\n\n public getLocale() {\n return this.instance?.locale() ?? null;\n }\n\n /**\n * Do you heave imported file with locale before setting of locale?\n * @param locale\n */\n public setLocale(locale: string) {\n if (this.instance !== null) {\n this.instance = this.instance.locale(locale);\n }\n\n return this;\n }\n}\n"],"mappings":"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","names":["dayjsInstance","isBetween","timezone","utc","dayjsInstance","isBetween","utc","timezone","dateOptions","timeOptions","dateTimeOptions","__spreadValues","DateHelper","_DateHelper","instance","source","hours","days","update","before","unit","equal","_a","_b","updated","float","type","value","format","defaultValue","locale","options","date"]}
@@ -36,5 +36,11 @@ export declare class DateHelper {
36
36
  formatLocalDate(locale?: string, options?: FormaterOptions): string;
37
37
  formatLocalTime(locale?: string, options?: FormaterOptions): string;
38
38
  formatLocalDateTime(locale?: string, options?: FormaterOptions): string;
39
+ getLocale(): string | null;
40
+ /**
41
+ * Do you heave imported file with locale before setting of locale?
42
+ * @param locale
43
+ */
44
+ setLocale(locale: string): this;
39
45
  }
40
46
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@connect-soft/date-helper",
3
- "version": "0.0.8",
3
+ "version": "0.0.9",
4
4
  "license": "MIT",
5
5
  "exports": {
6
6
  ".": {
@@ -14,6 +14,7 @@
14
14
  "types": "./dist/index.d.ts",
15
15
  "files": [
16
16
  "dist",
17
+ "CHANGELOG.md",
17
18
  "README.md"
18
19
  ],
19
20
  "devDependencies": {