Socket
Socket
Sign inDemoInstall

use-intl

Package Overview
Dependencies
Maintainers
1
Versions
216
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

use-intl - npm Package Compare versions

Comparing version 1.0.0 to 1.1.0

4

CHANGELOG.md
# Changelog
## 1.1.0
- Feat: Added support for handling time zones.
## 1.0.0

@@ -4,0 +8,0 @@

@@ -9,2 +9,3 @@ /// <reference types="react" />

formats?: Partial<Formats>;
timeZone?: string;
onError(error: IntlError): void;

@@ -11,0 +12,0 @@ getMessageFallback(info: {

@@ -13,2 +13,4 @@ import { ReactNode } from 'react';

formats?: Partial<Formats>;
/** A time zone as defined in [the tz database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) which will be applied when formatting dates and times. If this is absent, the user time zone will be used. You can override this by supplying an explicit time zone to `formatDateTime`. */
timeZone?: string;
/** This callback will be invoked when an error is encountered during

@@ -15,0 +17,0 @@ * resolving a message or formatting it. This defaults to `console.error` to

@@ -410,3 +410,4 @@ 'use strict';

locale = _useIntlContext.locale,
onError = _useIntlContext.onError;
onError = _useIntlContext.onError,
timeZone = _useIntlContext.timeZone;

@@ -449,4 +450,17 @@ function resolveFormatOrOptions(typeFormats, formatOrOptions) {

function formatDateTime(value, formatOrOptions) {
return getFormattedValue(value, formatOrOptions, _extends({}, formats == null ? void 0 : formats.dateTime), function (options) {
function formatDateTime(
/** If a number is supplied, this is interpreted as a UTC timestamp. */
value,
/** If a time zone is supplied, the `value` is converted to that time zone.
* Otherwise the user time zone will be used. */
formatOrOptions) {
return getFormattedValue(value, formatOrOptions, formats == null ? void 0 : formats.dateTime, function (options) {
var _options;
if (timeZone && !((_options = options) != null && _options.timeZone)) {
options = _extends({}, options, {
timeZone: timeZone
});
}
return new Intl.DateTimeFormat(locale, options).format(value);

@@ -462,3 +476,7 @@ });

function formatRelativeTime(date, now) {
function formatRelativeTime(
/** The date time that needs to be formatted. */
date,
/** The reference point in time to which `date` will be formatted in relation to. */
now) {
var dateDate = date instanceof Date ? date : new Date(date);

@@ -465,0 +483,0 @@ var nowDate = now instanceof Date ? now : new Date(now);

2

dist/use-intl.cjs.production.min.js

@@ -1,2 +0,2 @@

"use strict";function r(r){return r&&"object"==typeof r&&"default"in r?r.default:r}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react"),e=r(t),n=r(require("intl-messageformat"));function o(){return(o=Object.assign||function(r){for(var t=1;t<arguments.length;t++){var e=arguments[t];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n])}return r}).apply(this,arguments)}function u(r){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)})(r)}function a(r,t){return(a=Object.setPrototypeOf||function(r,t){return r.__proto__=t,r})(r,t)}function i(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(r){return!1}}function c(r,t,e){return(c=i()?Reflect.construct:function(r,t,e){var n=[null];n.push.apply(n,t);var o=new(Function.bind.apply(r,n));return e&&a(o,e.prototype),o}).apply(null,arguments)}function f(r){var t="function"==typeof Map?new Map:void 0;return(f=function(r){if(null===r||-1===Function.toString.call(r).indexOf("[native code]"))return r;if("function"!=typeof r)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(r))return t.get(r);t.set(r,e)}function e(){return c(r,arguments,u(this).constructor)}return e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),a(e,r)})(r)}var l,s=t.createContext(void 0);function p(r){return[r.namespace,r.key].filter((function(r){return null!=r})).join(".")}(l=exports.IntlErrorCode||(exports.IntlErrorCode={})).MISSING_MESSAGE="MISSING_MESSAGE",l.MISSING_FORMAT="MISSING_FORMAT",l.INSUFFICIENT_PATH="INSUFFICIENT_PATH",l.INVALID_MESSAGE="INVALID_MESSAGE",l.FORMATTING_ERROR="FORMATTING_ERROR";var v=function(r){var t,e;function n(t,e){var n,o=t;return e&&(o+=": "+e),(n=r.call(this,o)||this).code=t,e&&(n.originalMessage=e),n}return e=r,(t=n).prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e,n}(f(Error));function d(){var r=t.useContext(s);if(!r)throw new Error(void 0);return r}function I(r,t,e){var n=r;return t.split(".").forEach((function(r){var t=n[r];if(null==r||null==t)throw new Error(void 0);n=t})),n}exports.IntlError=v,exports.IntlProvider=function(r){var t=r.children,n=r.onError,u=void 0===n?console.error:n,a=r.getMessageFallback,i=void 0===a?p:a,c=function(r,t){if(null==r)return{};var e,n,o={},u=Object.keys(r);for(n=0;n<u.length;n++)t.indexOf(e=u[n])>=0||(o[e]=r[e]);return o}(r,["children","onError","getMessageFallback"]);return e.createElement(s.Provider,{value:o({},c,{onError:u,getMessageFallback:i})},t)},exports.useIntl=function(){var r=d(),t=r.formats,e=r.locale,n=r.onError;function u(r,t,e,o){var u;try{u=function(r,t){var e;if("string"==typeof t){if(!(e=null==r?void 0:r[t])){var o=new v(exports.IntlErrorCode.MISSING_FORMAT,void 0);throw n(o),o}}else e=t;return e}(e,t)}catch(t){return String(r)}try{return o(u)}catch(t){return n(new v(exports.IntlErrorCode.FORMATTING_ERROR,t.message)),String(r)}}return{formatDateTime:function(r,n){return u(r,n,o({},null==t?void 0:t.dateTime),(function(t){return new Intl.DateTimeFormat(e,t).format(r)}))},formatNumber:function(r,n){return u(r,n,null==t?void 0:t.number,(function(t){return new Intl.NumberFormat(e,t).format(r)}))},formatRelativeTime:function(r,t){var o=r instanceof Date?r:new Date(r),u=t instanceof Date?t:new Date(t),a=function(r){var t,e,n=Math.abs(r);return n<60?(e="second",t=Math.round(r)):n<3600?(e="minute",t=Math.round(r/60)):n<86400?(e="hour",t=Math.round(r/3600)):n<604800?(e="day",t=Math.round(r/86400)):n<2628e3?(e="week",t=Math.round(r/604800)):n<31536e3?(e="month",t=Math.round(r/2628e3)):(e="year",t=Math.round(r/31536e3)),{value:t,unit:e}}((o.getTime()-u.getTime())/1e3),i=a.unit,c=a.value;try{return new Intl.RelativeTimeFormat(e,{numeric:"auto"}).format(c,i)}catch(t){return n(new v(exports.IntlErrorCode.FORMATTING_ERROR,t.message)),String(r)}}}},exports.useTranslations=function(r){var e=d(),u=e.formats,a=e.getMessageFallback,i=e.locale,c=e.messages,f=e.onError,l=t.useRef({}),s=t.useMemo((function(){try{var t=r?I(c,r):c;if(!t)throw new Error(void 0);return t}catch(r){var e=new v(exports.IntlErrorCode.MISSING_MESSAGE,r.message);return f(e),e}}),[c,r,f]);return t.useCallback((function(e,c,p){var d,E=l.current;function m(t,n){var o=new v(t,n);return f(o),a({error:o,key:e,namespace:r})}if(s instanceof v)return a({error:s,key:e,namespace:r});var y,h=s;if(null!=(d=E[i])&&d[e])y=E[i][e];else{var M;try{M=I(h,e)}catch(r){return m(exports.IntlErrorCode.MISSING_MESSAGE,r.message)}if("object"==typeof M)return m(exports.IntlErrorCode.INSUFFICIENT_PATH,void 0);try{y=new n(M,i,function(r){return o({},r,{date:null==r?void 0:r.dateTime,time:null==r?void 0:r.dateTime})}(o({},u,p)))}catch(r){return m(exports.IntlErrorCode.INVALID_MESSAGE,r.message)}E[i]||(E[i]={}),E[i][e]=y}try{var S=y.format(function(r){if(!r)return r;var e={};return Object.keys(r).forEach((function(n){var o=r[n];e[n]="function"==typeof o?function(r){var e=o(r);return t.isValidElement(e)?t.cloneElement(e,{key:e.key||n+String(r)}):e}:o})),e}(c));if(null==S)throw new Error(void 0);return S}catch(r){return m(exports.IntlErrorCode.FORMATTING_ERROR,r.message)}}),[a,u,i,s,r,f])};
"use strict";function r(r){return r&&"object"==typeof r&&"default"in r?r.default:r}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react"),e=r(t),n=r(require("intl-messageformat"));function o(){return(o=Object.assign||function(r){for(var t=1;t<arguments.length;t++){var e=arguments[t];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n])}return r}).apply(this,arguments)}function u(r){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)})(r)}function a(r,t){return(a=Object.setPrototypeOf||function(r,t){return r.__proto__=t,r})(r,t)}function i(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(r){return!1}}function c(r,t,e){return(c=i()?Reflect.construct:function(r,t,e){var n=[null];n.push.apply(n,t);var o=new(Function.bind.apply(r,n));return e&&a(o,e.prototype),o}).apply(null,arguments)}function l(r){var t="function"==typeof Map?new Map:void 0;return(l=function(r){if(null===r||-1===Function.toString.call(r).indexOf("[native code]"))return r;if("function"!=typeof r)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(r))return t.get(r);t.set(r,e)}function e(){return c(r,arguments,u(this).constructor)}return e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),a(e,r)})(r)}var f,s=t.createContext(void 0);function p(r){return[r.namespace,r.key].filter((function(r){return null!=r})).join(".")}(f=exports.IntlErrorCode||(exports.IntlErrorCode={})).MISSING_MESSAGE="MISSING_MESSAGE",f.MISSING_FORMAT="MISSING_FORMAT",f.INSUFFICIENT_PATH="INSUFFICIENT_PATH",f.INVALID_MESSAGE="INVALID_MESSAGE",f.FORMATTING_ERROR="FORMATTING_ERROR";var v=function(r){var t,e;function n(t,e){var n,o=t;return e&&(o+=": "+e),(n=r.call(this,o)||this).code=t,e&&(n.originalMessage=e),n}return e=r,(t=n).prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e,n}(l(Error));function d(){var r=t.useContext(s);if(!r)throw new Error(void 0);return r}function m(r,t,e){var n=r;return t.split(".").forEach((function(r){var t=n[r];if(null==r||null==t)throw new Error(void 0);n=t})),n}exports.IntlError=v,exports.IntlProvider=function(r){var t=r.children,n=r.onError,u=void 0===n?console.error:n,a=r.getMessageFallback,i=void 0===a?p:a,c=function(r,t){if(null==r)return{};var e,n,o={},u=Object.keys(r);for(n=0;n<u.length;n++)t.indexOf(e=u[n])>=0||(o[e]=r[e]);return o}(r,["children","onError","getMessageFallback"]);return e.createElement(s.Provider,{value:o({},c,{onError:u,getMessageFallback:i})},t)},exports.useIntl=function(){var r=d(),t=r.formats,e=r.locale,n=r.onError,u=r.timeZone;function a(r,t,e,o){var u;try{u=function(r,t){var e;if("string"==typeof t){if(!(e=null==r?void 0:r[t])){var o=new v(exports.IntlErrorCode.MISSING_FORMAT,void 0);throw n(o),o}}else e=t;return e}(e,t)}catch(t){return String(r)}try{return o(u)}catch(t){return n(new v(exports.IntlErrorCode.FORMATTING_ERROR,t.message)),String(r)}}return{formatDateTime:function(r,n){return a(r,n,null==t?void 0:t.dateTime,(function(t){var n;return!u||null!=(n=t)&&n.timeZone||(t=o({},t,{timeZone:u})),new Intl.DateTimeFormat(e,t).format(r)}))},formatNumber:function(r,n){return a(r,n,null==t?void 0:t.number,(function(t){return new Intl.NumberFormat(e,t).format(r)}))},formatRelativeTime:function(r,t){var o=r instanceof Date?r:new Date(r),u=t instanceof Date?t:new Date(t),a=function(r){var t,e,n=Math.abs(r);return n<60?(e="second",t=Math.round(r)):n<3600?(e="minute",t=Math.round(r/60)):n<86400?(e="hour",t=Math.round(r/3600)):n<604800?(e="day",t=Math.round(r/86400)):n<2628e3?(e="week",t=Math.round(r/604800)):n<31536e3?(e="month",t=Math.round(r/2628e3)):(e="year",t=Math.round(r/31536e3)),{value:t,unit:e}}((o.getTime()-u.getTime())/1e3),i=a.unit,c=a.value;try{return new Intl.RelativeTimeFormat(e,{numeric:"auto"}).format(c,i)}catch(t){return n(new v(exports.IntlErrorCode.FORMATTING_ERROR,t.message)),String(r)}}}},exports.useTranslations=function(r){var e=d(),u=e.formats,a=e.getMessageFallback,i=e.locale,c=e.messages,l=e.onError,f=t.useRef({}),s=t.useMemo((function(){try{var t=r?m(c,r):c;if(!t)throw new Error(void 0);return t}catch(r){var e=new v(exports.IntlErrorCode.MISSING_MESSAGE,r.message);return l(e),e}}),[c,r,l]);return t.useCallback((function(e,c,p){var d,I=f.current;function E(t,n){var o=new v(t,n);return l(o),a({error:o,key:e,namespace:r})}if(s instanceof v)return a({error:s,key:e,namespace:r});var y,h=s;if(null!=(d=I[i])&&d[e])y=I[i][e];else{var M;try{M=m(h,e)}catch(r){return E(exports.IntlErrorCode.MISSING_MESSAGE,r.message)}if("object"==typeof M)return E(exports.IntlErrorCode.INSUFFICIENT_PATH,void 0);try{y=new n(M,i,function(r){return o({},r,{date:null==r?void 0:r.dateTime,time:null==r?void 0:r.dateTime})}(o({},u,p)))}catch(r){return E(exports.IntlErrorCode.INVALID_MESSAGE,r.message)}I[i]||(I[i]={}),I[i][e]=y}try{var S=y.format(function(r){if(!r)return r;var e={};return Object.keys(r).forEach((function(n){var o=r[n];e[n]="function"==typeof o?function(r){var e=o(r);return t.isValidElement(e)?t.cloneElement(e,{key:e.key||n+String(r)}):e}:o})),e}(c));if(null==S)throw new Error(void 0);return S}catch(r){return E(exports.IntlErrorCode.FORMATTING_ERROR,r.message)}}),[a,u,i,s,r,l])};
//# sourceMappingURL=use-intl.cjs.production.min.js.map

@@ -405,3 +405,4 @@ import React, { createContext, useContext, useRef, useMemo, useCallback, isValidElement, cloneElement } from 'react';

locale = _useIntlContext.locale,
onError = _useIntlContext.onError;
onError = _useIntlContext.onError,
timeZone = _useIntlContext.timeZone;

@@ -444,4 +445,17 @@ function resolveFormatOrOptions(typeFormats, formatOrOptions) {

function formatDateTime(value, formatOrOptions) {
return getFormattedValue(value, formatOrOptions, _extends({}, formats == null ? void 0 : formats.dateTime), function (options) {
function formatDateTime(
/** If a number is supplied, this is interpreted as a UTC timestamp. */
value,
/** If a time zone is supplied, the `value` is converted to that time zone.
* Otherwise the user time zone will be used. */
formatOrOptions) {
return getFormattedValue(value, formatOrOptions, formats == null ? void 0 : formats.dateTime, function (options) {
var _options;
if (timeZone && !((_options = options) != null && _options.timeZone)) {
options = _extends({}, options, {
timeZone: timeZone
});
}
return new Intl.DateTimeFormat(locale, options).format(value);

@@ -457,3 +471,7 @@ });

function formatRelativeTime(date, now) {
function formatRelativeTime(
/** The date time that needs to be formatted. */
date,
/** The reference point in time to which `date` will be formatted in relation to. */
now) {
var dateDate = date instanceof Date ? date : new Date(date);

@@ -460,0 +478,0 @@ var nowDate = now instanceof Date ? now : new Date(now);

export default function useIntl(): {
formatDateTime: (value: number | Date, formatOrOptions?: string | Intl.DateTimeFormatOptions | undefined) => string;
formatDateTime: (value: Date | number, formatOrOptions?: string | Intl.DateTimeFormatOptions | undefined) => string;
formatNumber: (value: number, formatOrOptions?: string | Intl.NumberFormatOptions | undefined) => string;
formatRelativeTime: (date: number | Date, now: number | Date) => string;
};
{
"name": "use-intl",
"version": "1.0.0",
"version": "1.1.0",
"sideEffects": false,

@@ -5,0 +5,0 @@ "author": "Jan Amann <jan@amann.me>",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc