@entur-partner/util 1.2.0 → 1.2.3

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.
@@ -10,7 +10,6 @@ function assertIsDefined(val, message) {
10
10
  if (message) {
11
11
  throw new Error(message);
12
12
  }
13
-
14
13
  throw new Error("Expected 'val' to be defined, but received " + val);
15
14
  }
16
15
  }
@@ -24,24 +23,20 @@ function isString(stringToCheck) {
24
23
 
25
24
  var formatLocalDate = function formatLocalDate(date, locale$1, formatString) {
26
25
  var localeConfig = {};
27
-
28
26
  switch (locale$1) {
29
27
  case 'nb':
30
28
  Object.assign(localeConfig, {
31
29
  locale: locale.nb
32
30
  });
33
31
  break;
34
-
35
32
  case 'en':
36
33
  Object.assign(localeConfig, {
37
34
  locale: locale.enGB
38
35
  });
39
36
  break;
40
37
  }
41
-
42
38
  return dateFns.format(date, formatString, localeConfig);
43
39
  };
44
-
45
40
  var localeDate = function localeDate(date, locale) {
46
41
  var dateObject = isString(date) ? dateFns.parseISO(date) : date;
47
42
  return formatLocalDate(dateObject, locale, 'P');
@@ -49,19 +44,17 @@ var localeDate = function localeDate(date, locale) {
49
44
  var localeDateTime = function localeDateTime(date, locale) {
50
45
  var dateObject = isString(date) ? dateFns.parseISO(date) : date;
51
46
  return formatLocalDate(dateObject, locale, 'P - p');
52
- }; // Redefine is Date for better type checking
53
-
47
+ };
48
+ // Redefine is Date for better type checking
54
49
  function isDate(dateToCheck) {
55
50
  return dateFns.isDate(dateToCheck);
56
51
  }
57
52
  var isDateString = function isDateString(dateString) {
58
53
  try {
59
54
  var date = dateFns.parseISO(dateString);
60
-
61
55
  if (isNaN(date.getTime())) {
62
56
  return false;
63
57
  }
64
-
65
58
  return true;
66
59
  } catch (e) {
67
60
  return false;
@@ -71,12 +64,10 @@ var isDateString = function isDateString(dateString) {
71
64
  function checkPermission(permission1, permission2) {
72
65
  return permission1.access === permission2.access && permission1.operation === permission2.operation;
73
66
  }
74
-
75
67
  function hasAllPermissions(all, permissions) {
76
68
  if (!Array.isArray(all)) {
77
69
  all = [all];
78
70
  }
79
-
80
71
  return all.every(function (requiredPermission) {
81
72
  return hasPermissions(permissions, requiredPermission);
82
73
  });
@@ -99,8 +90,8 @@ function hasPermissions(permissions, requiredPermission) {
99
90
  * @returns array of subpaths
100
91
  */
101
92
  function splitUrlPath(pathname) {
102
- var paths = pathname === '/' ? [] : ['/']; // support paths with and without trailing slash, except root
103
-
93
+ var paths = pathname === '/' ? [] : ['/'];
94
+ // support paths with and without trailing slash, except root
104
95
  var adjustedPathname = pathname.length > 1 ? pathname.replace(/\/$/, '') : pathname;
105
96
  adjustedPathname.split('/').reduce(function (prev, curr) {
106
97
  var path = prev + "/" + curr;
@@ -1 +1 @@
1
- {"version":3,"file":"util.cjs.development.js","sources":["../src/assertions.ts","../src/helpers.ts","../src/date.ts","../src/permissions.ts","../src/splitUrlPath.ts"],"sourcesContent":["export function assertIsDefined<T>(\n val: T,\n message?: string\n): asserts val is NonNullable<T> {\n if (val === undefined || val === null) {\n if (message) {\n throw new Error(message);\n }\n throw new Error(`Expected 'val' to be defined, but received ${val}`);\n }\n}\n","export function isFunction<T>(functionToCheck: any): functionToCheck is T {\n return (\n functionToCheck && {}.toString.call(functionToCheck) === '[object Function]'\n );\n}\n\nexport function isString(stringToCheck: any): stringToCheck is string {\n return typeof stringToCheck === 'string' || stringToCheck instanceof String;\n}\n","import { format, parseISO, isDate as isDateFn } from 'date-fns';\nimport { nb, enGB } from 'date-fns/locale';\n\nimport { isString } from './helpers';\n\nconst formatLocalDate = (date: Date, locale: string, formatString: string) => {\n const localeConfig = {};\n switch (locale) {\n case 'nb':\n Object.assign(localeConfig, { locale: nb });\n break;\n case 'en':\n Object.assign(localeConfig, { locale: enGB });\n break;\n default:\n break;\n }\n\n return format(date, formatString, localeConfig);\n};\n\nexport const localeDate = (date: Date | string, locale: string) => {\n const dateObject = isString(date) ? parseISO(date) : date;\n return formatLocalDate(dateObject, locale, 'P');\n};\n\nexport const localeDateTime = (date: Date | string, locale: string) => {\n const dateObject = isString(date) ? parseISO(date) : date;\n return formatLocalDate(dateObject, locale, 'P - p');\n};\n\n// Redefine is Date for better type checking\nexport function isDate(dateToCheck: any): dateToCheck is Date {\n return isDateFn(dateToCheck);\n}\n\nexport const isDateString = (dateString: string) => {\n try {\n const date = parseISO(dateString);\n if (isNaN(date.getTime())) {\n return false;\n }\n return true;\n } catch (e) {\n return false;\n }\n};\n","import { BusinessCapability } from '@entur-partner/permission-client-node';\n\nfunction checkPermission(\n permission1: BusinessCapability,\n permission2: BusinessCapability\n) {\n return (\n permission1.access === permission2.access &&\n permission1.operation === permission2.operation\n );\n}\n\nexport function hasAllPermissions(\n all: BusinessCapability[] | BusinessCapability,\n permissions: BusinessCapability[]\n) {\n if (!Array.isArray(all)) {\n all = [all];\n }\n return all.every((requiredPermission) =>\n hasPermissions(permissions, requiredPermission)\n );\n}\n\nexport function hasOneOfPermissions(\n oneOf: BusinessCapability[],\n permissions: BusinessCapability[]\n) {\n return oneOf.length > 0\n ? oneOf.some((requiredPermission) =>\n hasPermissions(permissions, requiredPermission)\n )\n : true;\n}\n\nexport function hasPermissions(\n permissions: BusinessCapability[],\n requiredPermission: BusinessCapability\n) {\n return permissions.some((userPermission) =>\n checkPermission(requiredPermission, userPermission)\n );\n}\n","/**\n * Split pathname into array of subpaths. Used by Breadcrumbs.tsx and PageTitle.tsx\n *\n * @param pathname location.pathname\n * @returns array of subpaths\n */\nexport function splitUrlPath(pathname: string) {\n const paths: string[] = pathname === '/' ? [] : ['/'];\n\n // support paths with and without trailing slash, except root\n const adjustedPathname =\n pathname.length > 1 ? pathname.replace(/\\/$/, '') : pathname;\n\n adjustedPathname.split('/').reduce((prev, curr) => {\n const path = `${prev}/${curr}`;\n paths.push(path);\n return path;\n });\n\n return paths;\n}\n"],"names":["assertIsDefined","val","message","undefined","Error","isFunction","functionToCheck","toString","call","isString","stringToCheck","String","formatLocalDate","date","locale","formatString","localeConfig","Object","assign","nb","enGB","format","localeDate","dateObject","parseISO","localeDateTime","isDate","dateToCheck","isDateFn","isDateString","dateString","isNaN","getTime","e","checkPermission","permission1","permission2","access","operation","hasAllPermissions","all","permissions","Array","isArray","every","requiredPermission","hasPermissions","hasOneOfPermissions","oneOf","length","some","userPermission","splitUrlPath","pathname","paths","adjustedPathname","replace","split","reduce","prev","curr","path","push"],"mappings":"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"}
1
+ {"version":3,"file":"util.cjs.development.js","sources":["../src/assertions.ts","../src/helpers.ts","../src/date.ts","../src/permissions.ts","../src/splitUrlPath.ts"],"sourcesContent":["export function assertIsDefined<T>(\n val: T,\n message?: string\n): asserts val is NonNullable<T> {\n if (val === undefined || val === null) {\n if (message) {\n throw new Error(message);\n }\n throw new Error(`Expected 'val' to be defined, but received ${val}`);\n }\n}\n","export function isFunction<T>(functionToCheck: any): functionToCheck is T {\n return (\n functionToCheck && {}.toString.call(functionToCheck) === '[object Function]'\n );\n}\n\nexport function isString(stringToCheck: any): stringToCheck is string {\n return typeof stringToCheck === 'string' || stringToCheck instanceof String;\n}\n","import { format, parseISO, isDate as isDateFn } from 'date-fns';\nimport { nb, enGB } from 'date-fns/locale';\n\nimport { isString } from './helpers';\n\nconst formatLocalDate = (date: Date, locale: string, formatString: string) => {\n const localeConfig = {};\n switch (locale) {\n case 'nb':\n Object.assign(localeConfig, { locale: nb });\n break;\n case 'en':\n Object.assign(localeConfig, { locale: enGB });\n break;\n default:\n break;\n }\n\n return format(date, formatString, localeConfig);\n};\n\nexport const localeDate = (date: Date | string, locale: string) => {\n const dateObject = isString(date) ? parseISO(date) : date;\n return formatLocalDate(dateObject, locale, 'P');\n};\n\nexport const localeDateTime = (date: Date | string, locale: string) => {\n const dateObject = isString(date) ? parseISO(date) : date;\n return formatLocalDate(dateObject, locale, 'P - p');\n};\n\n// Redefine is Date for better type checking\nexport function isDate(dateToCheck: any): dateToCheck is Date {\n return isDateFn(dateToCheck);\n}\n\nexport const isDateString = (dateString: string) => {\n try {\n const date = parseISO(dateString);\n if (isNaN(date.getTime())) {\n return false;\n }\n return true;\n } catch (e) {\n return false;\n }\n};\n","import { BusinessCapability } from '@entur-partner/permission-client-node';\n\nfunction checkPermission(\n permission1: BusinessCapability,\n permission2: BusinessCapability\n) {\n return (\n permission1.access === permission2.access &&\n permission1.operation === permission2.operation\n );\n}\n\nexport function hasAllPermissions(\n all: BusinessCapability[] | BusinessCapability,\n permissions: BusinessCapability[]\n) {\n if (!Array.isArray(all)) {\n all = [all];\n }\n return all.every((requiredPermission) =>\n hasPermissions(permissions, requiredPermission)\n );\n}\n\nexport function hasOneOfPermissions(\n oneOf: BusinessCapability[],\n permissions: BusinessCapability[]\n) {\n return oneOf.length > 0\n ? oneOf.some((requiredPermission) =>\n hasPermissions(permissions, requiredPermission)\n )\n : true;\n}\n\nexport function hasPermissions(\n permissions: BusinessCapability[],\n requiredPermission: BusinessCapability\n) {\n return permissions.some((userPermission) =>\n checkPermission(requiredPermission, userPermission)\n );\n}\n","/**\n * Split pathname into array of subpaths. Used by Breadcrumbs.tsx and PageTitle.tsx\n *\n * @param pathname location.pathname\n * @returns array of subpaths\n */\nexport function splitUrlPath(pathname: string) {\n const paths: string[] = pathname === '/' ? [] : ['/'];\n\n // support paths with and without trailing slash, except root\n const adjustedPathname =\n pathname.length > 1 ? pathname.replace(/\\/$/, '') : pathname;\n\n adjustedPathname.split('/').reduce((prev, curr) => {\n const path = `${prev}/${curr}`;\n paths.push(path);\n return path;\n });\n\n return paths;\n}\n"],"names":["assertIsDefined","val","message","undefined","Error","isFunction","functionToCheck","toString","call","isString","stringToCheck","String","formatLocalDate","date","locale","formatString","localeConfig","Object","assign","nb","enGB","format","localeDate","dateObject","parseISO","localeDateTime","isDate","dateToCheck","isDateFn","isDateString","dateString","isNaN","getTime","e","checkPermission","permission1","permission2","access","operation","hasAllPermissions","all","permissions","Array","isArray","every","requiredPermission","hasPermissions","hasOneOfPermissions","oneOf","length","some","userPermission","splitUrlPath","pathname","paths","adjustedPathname","replace","split","reduce","prev","curr","path","push"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"util.cjs.production.min.js","sources":["../src/helpers.ts","../src/date.ts","../src/permissions.ts","../src/assertions.ts","../src/splitUrlPath.ts"],"sourcesContent":["export function isFunction<T>(functionToCheck: any): functionToCheck is T {\n return (\n functionToCheck && {}.toString.call(functionToCheck) === '[object Function]'\n );\n}\n\nexport function isString(stringToCheck: any): stringToCheck is string {\n return typeof stringToCheck === 'string' || stringToCheck instanceof String;\n}\n","import { format, parseISO, isDate as isDateFn } from 'date-fns';\nimport { nb, enGB } from 'date-fns/locale';\n\nimport { isString } from './helpers';\n\nconst formatLocalDate = (date: Date, locale: string, formatString: string) => {\n const localeConfig = {};\n switch (locale) {\n case 'nb':\n Object.assign(localeConfig, { locale: nb });\n break;\n case 'en':\n Object.assign(localeConfig, { locale: enGB });\n break;\n default:\n break;\n }\n\n return format(date, formatString, localeConfig);\n};\n\nexport const localeDate = (date: Date | string, locale: string) => {\n const dateObject = isString(date) ? parseISO(date) : date;\n return formatLocalDate(dateObject, locale, 'P');\n};\n\nexport const localeDateTime = (date: Date | string, locale: string) => {\n const dateObject = isString(date) ? parseISO(date) : date;\n return formatLocalDate(dateObject, locale, 'P - p');\n};\n\n// Redefine is Date for better type checking\nexport function isDate(dateToCheck: any): dateToCheck is Date {\n return isDateFn(dateToCheck);\n}\n\nexport const isDateString = (dateString: string) => {\n try {\n const date = parseISO(dateString);\n if (isNaN(date.getTime())) {\n return false;\n }\n return true;\n } catch (e) {\n return false;\n }\n};\n","import { BusinessCapability } from '@entur-partner/permission-client-node';\n\nfunction checkPermission(\n permission1: BusinessCapability,\n permission2: BusinessCapability\n) {\n return (\n permission1.access === permission2.access &&\n permission1.operation === permission2.operation\n );\n}\n\nexport function hasAllPermissions(\n all: BusinessCapability[] | BusinessCapability,\n permissions: BusinessCapability[]\n) {\n if (!Array.isArray(all)) {\n all = [all];\n }\n return all.every((requiredPermission) =>\n hasPermissions(permissions, requiredPermission)\n );\n}\n\nexport function hasOneOfPermissions(\n oneOf: BusinessCapability[],\n permissions: BusinessCapability[]\n) {\n return oneOf.length > 0\n ? oneOf.some((requiredPermission) =>\n hasPermissions(permissions, requiredPermission)\n )\n : true;\n}\n\nexport function hasPermissions(\n permissions: BusinessCapability[],\n requiredPermission: BusinessCapability\n) {\n return permissions.some((userPermission) =>\n checkPermission(requiredPermission, userPermission)\n );\n}\n","export function assertIsDefined<T>(\n val: T,\n message?: string\n): asserts val is NonNullable<T> {\n if (val === undefined || val === null) {\n if (message) {\n throw new Error(message);\n }\n throw new Error(`Expected 'val' to be defined, but received ${val}`);\n }\n}\n","/**\n * Split pathname into array of subpaths. Used by Breadcrumbs.tsx and PageTitle.tsx\n *\n * @param pathname location.pathname\n * @returns array of subpaths\n */\nexport function splitUrlPath(pathname: string) {\n const paths: string[] = pathname === '/' ? [] : ['/'];\n\n // support paths with and without trailing slash, except root\n const adjustedPathname =\n pathname.length > 1 ? pathname.replace(/\\/$/, '') : pathname;\n\n adjustedPathname.split('/').reduce((prev, curr) => {\n const path = `${prev}/${curr}`;\n paths.push(path);\n return path;\n });\n\n return paths;\n}\n"],"names":["isString","stringToCheck","String","formatLocalDate","date","locale","formatString","localeConfig","Object","assign","nb","enGB","format","hasPermissions","permissions","requiredPermission","some","userPermission","permission1","access","permission2","operation","val","message","Error","all","Array","isArray","every","oneOf","length","dateToCheck","isDateFn","dateString","parseISO","isNaN","getTime","e","functionToCheck","toString","call","dateObject","pathname","paths","replace","split","reduce","prev","curr","path","push"],"mappings":"2HAMM,SAAUA,EAASC,GACvB,MAAgC,iBAAlBA,GAA8BA,aAAyBC,OCFvE,IAAMC,EAAkB,SAACC,EAAYC,EAAgBC,GACnD,IAAMC,EAAe,GACrB,OAAQF,GACN,IAAK,KACHG,OAAOC,OAAOF,EAAc,CAAEF,OAAQK,EAAAA,KACtC,MACF,IAAK,KACHF,OAAOC,OAAOF,EAAc,CAAEF,OAAQM,EAAAA,OAM1C,OAAOC,SAAOR,EAAME,EAAcC,ICiBpB,SAAAM,EACdC,EACAC,GAEA,OAAOD,EAAYE,MAAK,SAACC,GAAD,OApCxBC,EAqCkBH,GAjCJI,UAHdC,EAoCsCH,GAjCDE,QACnCD,EAAYG,YAAcD,EAAYC,UAN1C,IACEH,EACAE,6BCJc,SACdE,EACAC,GAEA,GAAID,MAAAA,EAAmC,CACrC,GAAIC,EACF,MAAM,IAAIC,MAAMD,GAElB,MAAM,IAAIC,MAAoDF,8CAAAA,+BDIlD,SACdG,EACAX,GAKA,OAHKY,MAAMC,QAAQF,KACjBA,EAAM,CAACA,IAEFA,EAAIG,OAAM,SAACb,GAAD,OACfF,EAAeC,EAAaC,mCAIhB,SACdc,EACAf,GAEA,QAAOe,EAAMC,OAAS,IAClBD,EAAMb,MAAK,SAACD,GAAD,OACTF,EAAeC,EAAaC,+CDE9B,SAAiBgB,GACrB,OAAOC,EAAAA,OAASD,yBAGU,SAACE,GAC3B,IACE,IAAM7B,EAAO8B,WAASD,GACtB,OAAIE,MAAM/B,EAAKgC,WAIf,MAAOC,GACP,OAAO,uBD5CL,SAAwBC,GAC5B,OACEA,GAAyD,sBAAtC,GAAGC,SAASC,KAAKF,0CCmBd,SAAClC,EAAqBC,GAC9C,IAAMoC,EAAazC,EAASI,GAAQ8B,EAAAA,SAAS9B,GAAQA,EACrD,OAAOD,EAAgBsC,EAAYpC,EAAQ,6BAGf,SAACD,EAAqBC,GAClD,IAAMoC,EAAazC,EAASI,GAAQ8B,EAAAA,SAAS9B,GAAQA,EACrD,OAAOD,EAAgBsC,EAAYpC,EAAQ,+BGtBvC,SAAuBqC,GAC3B,IAAMC,EAA+B,MAAbD,EAAmB,GAAK,CAAC,KAYjD,OAREA,EAASZ,OAAS,EAAIY,EAASE,QAAQ,MAAO,IAAMF,GAErCG,MAAM,KAAKC,QAAO,SAACC,EAAMC,GACxC,IAAMC,EAAUF,EAAN,IAAcC,EAExB,OADAL,EAAMO,KAAKD,GACJA,KAGFN"}
1
+ {"version":3,"file":"util.cjs.production.min.js","sources":["../src/helpers.ts","../src/date.ts","../src/permissions.ts","../src/assertions.ts","../src/splitUrlPath.ts"],"sourcesContent":["export function isFunction<T>(functionToCheck: any): functionToCheck is T {\n return (\n functionToCheck && {}.toString.call(functionToCheck) === '[object Function]'\n );\n}\n\nexport function isString(stringToCheck: any): stringToCheck is string {\n return typeof stringToCheck === 'string' || stringToCheck instanceof String;\n}\n","import { format, parseISO, isDate as isDateFn } from 'date-fns';\nimport { nb, enGB } from 'date-fns/locale';\n\nimport { isString } from './helpers';\n\nconst formatLocalDate = (date: Date, locale: string, formatString: string) => {\n const localeConfig = {};\n switch (locale) {\n case 'nb':\n Object.assign(localeConfig, { locale: nb });\n break;\n case 'en':\n Object.assign(localeConfig, { locale: enGB });\n break;\n default:\n break;\n }\n\n return format(date, formatString, localeConfig);\n};\n\nexport const localeDate = (date: Date | string, locale: string) => {\n const dateObject = isString(date) ? parseISO(date) : date;\n return formatLocalDate(dateObject, locale, 'P');\n};\n\nexport const localeDateTime = (date: Date | string, locale: string) => {\n const dateObject = isString(date) ? parseISO(date) : date;\n return formatLocalDate(dateObject, locale, 'P - p');\n};\n\n// Redefine is Date for better type checking\nexport function isDate(dateToCheck: any): dateToCheck is Date {\n return isDateFn(dateToCheck);\n}\n\nexport const isDateString = (dateString: string) => {\n try {\n const date = parseISO(dateString);\n if (isNaN(date.getTime())) {\n return false;\n }\n return true;\n } catch (e) {\n return false;\n }\n};\n","import { BusinessCapability } from '@entur-partner/permission-client-node';\n\nfunction checkPermission(\n permission1: BusinessCapability,\n permission2: BusinessCapability\n) {\n return (\n permission1.access === permission2.access &&\n permission1.operation === permission2.operation\n );\n}\n\nexport function hasAllPermissions(\n all: BusinessCapability[] | BusinessCapability,\n permissions: BusinessCapability[]\n) {\n if (!Array.isArray(all)) {\n all = [all];\n }\n return all.every((requiredPermission) =>\n hasPermissions(permissions, requiredPermission)\n );\n}\n\nexport function hasOneOfPermissions(\n oneOf: BusinessCapability[],\n permissions: BusinessCapability[]\n) {\n return oneOf.length > 0\n ? oneOf.some((requiredPermission) =>\n hasPermissions(permissions, requiredPermission)\n )\n : true;\n}\n\nexport function hasPermissions(\n permissions: BusinessCapability[],\n requiredPermission: BusinessCapability\n) {\n return permissions.some((userPermission) =>\n checkPermission(requiredPermission, userPermission)\n );\n}\n","export function assertIsDefined<T>(\n val: T,\n message?: string\n): asserts val is NonNullable<T> {\n if (val === undefined || val === null) {\n if (message) {\n throw new Error(message);\n }\n throw new Error(`Expected 'val' to be defined, but received ${val}`);\n }\n}\n","/**\n * Split pathname into array of subpaths. Used by Breadcrumbs.tsx and PageTitle.tsx\n *\n * @param pathname location.pathname\n * @returns array of subpaths\n */\nexport function splitUrlPath(pathname: string) {\n const paths: string[] = pathname === '/' ? [] : ['/'];\n\n // support paths with and without trailing slash, except root\n const adjustedPathname =\n pathname.length > 1 ? pathname.replace(/\\/$/, '') : pathname;\n\n adjustedPathname.split('/').reduce((prev, curr) => {\n const path = `${prev}/${curr}`;\n paths.push(path);\n return path;\n });\n\n return paths;\n}\n"],"names":["isString","stringToCheck","String","formatLocalDate","date","locale","formatString","localeConfig","Object","assign","nb","enGB","format","hasPermissions","permissions","requiredPermission","some","userPermission","permission1","access","permission2","operation","val","message","Error","all","Array","isArray","every","oneOf","length","dateToCheck","isDateFn","dateString","parseISO","isNaN","getTime","e","functionToCheck","toString","call","dateObject","pathname","paths","replace","split","reduce","prev","curr","path","push"],"mappings":"2HAMM,SAAUA,EAASC,GACvB,MAAgC,iBAAlBA,GAA8BA,aAAyBC,MACvE,CCHA,IAAMC,EAAkB,SAACC,EAAYC,EAAgBC,GACnD,IAAMC,EAAe,CAAA,EACrB,OAAQF,GACN,IAAK,KACHG,OAAOC,OAAOF,EAAc,CAAEF,OAAQK,EAAAA,KACtC,MACF,IAAK,KACHF,OAAOC,OAAOF,EAAc,CAAEF,OAAQM,EAAAA,OAM1C,OAAOC,SAAOR,EAAME,EAAcC,EACpC,ECgBgB,SAAAM,EACdC,EACAC,GAEA,OAAOD,EAAYE,MAAK,SAACC,GAAc,OApCvCC,EAqCkBH,GAjCJI,UAHdC,EAoCsCH,GAjCDE,QACnCD,EAAYG,YAAcD,EAAYC,UAN1C,IACEH,EACAE,IAsCF,yBC1CgB,SACdE,EACAC,GAEA,GAAID,QAAmC,CACrC,GAAIC,EACF,MAAM,IAAIC,MAAMD,GAElB,MAAM,IAAIC,MAAoDF,8CAAAA,EAC/D,CACH,4BDEgB,SACdG,EACAX,GAKA,OAHKY,MAAMC,QAAQF,KACjBA,EAAM,CAACA,IAEFA,EAAIG,OAAM,SAACb,GAAkB,OAClCF,EAAeC,EAAaC,KAEhC,8BAEgB,SACdc,EACAf,GAEA,QAAOe,EAAMC,OAAS,IAClBD,EAAMb,MAAK,SAACD,GAAkB,OAC5BF,EAAeC,EAAaC,EAAmB,GAGvD,0CDDM,SAAiBgB,GACrB,OAAOC,EAAAA,OAASD,EAClB,uBAE4B,SAACE,GAC3B,IACE,IAAM7B,EAAO8B,WAASD,GACtB,OAAIE,MAAM/B,EAAKgC,UAIhB,CAAC,MAAOC,GACP,OAAO,CACR,CACH,qBD9CM,SAAwBC,GAC5B,OACEA,GAAyD,sBAAtC,CAAA,EAAGC,SAASC,KAAKF,EAExC,wCCiB0B,SAAClC,EAAqBC,GAC9C,IAAMoC,EAAazC,EAASI,GAAQ8B,EAAAA,SAAS9B,GAAQA,EACrD,OAAOD,EAAgBsC,EAAYpC,EAAQ,IAC7C,yBAE8B,SAACD,EAAqBC,GAClD,IAAMoC,EAAazC,EAASI,GAAQ8B,EAAAA,SAAS9B,GAAQA,EACrD,OAAOD,EAAgBsC,EAAYpC,EAAQ,QAC7C,uBGvBM,SAAuBqC,GAC3B,IAAMC,EAA+B,MAAbD,EAAmB,GAAK,CAAC,KAYjD,OAREA,EAASZ,OAAS,EAAIY,EAASE,QAAQ,MAAO,IAAMF,GAErCG,MAAM,KAAKC,QAAO,SAACC,EAAMC,GACxC,IAAMC,EAAUF,EAAI,IAAIC,EAExB,OADAL,EAAMO,KAAKD,GACJA,CACT,IAEON,CACT"}
package/dist/util.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import { parseISO, format, isDate as isDate$1 } from 'date-fns';
1
+ import { parseISO, isDate as isDate$1, format } from 'date-fns';
2
2
  import { enGB, nb } from 'date-fns/locale';
3
3
 
4
4
  function assertIsDefined(val, message) {
@@ -6,7 +6,6 @@ function assertIsDefined(val, message) {
6
6
  if (message) {
7
7
  throw new Error(message);
8
8
  }
9
-
10
9
  throw new Error("Expected 'val' to be defined, but received " + val);
11
10
  }
12
11
  }
@@ -20,24 +19,20 @@ function isString(stringToCheck) {
20
19
 
21
20
  var formatLocalDate = function formatLocalDate(date, locale, formatString) {
22
21
  var localeConfig = {};
23
-
24
22
  switch (locale) {
25
23
  case 'nb':
26
24
  Object.assign(localeConfig, {
27
25
  locale: nb
28
26
  });
29
27
  break;
30
-
31
28
  case 'en':
32
29
  Object.assign(localeConfig, {
33
30
  locale: enGB
34
31
  });
35
32
  break;
36
33
  }
37
-
38
34
  return format(date, formatString, localeConfig);
39
35
  };
40
-
41
36
  var localeDate = function localeDate(date, locale) {
42
37
  var dateObject = isString(date) ? parseISO(date) : date;
43
38
  return formatLocalDate(dateObject, locale, 'P');
@@ -45,19 +40,17 @@ var localeDate = function localeDate(date, locale) {
45
40
  var localeDateTime = function localeDateTime(date, locale) {
46
41
  var dateObject = isString(date) ? parseISO(date) : date;
47
42
  return formatLocalDate(dateObject, locale, 'P - p');
48
- }; // Redefine is Date for better type checking
49
-
43
+ };
44
+ // Redefine is Date for better type checking
50
45
  function isDate(dateToCheck) {
51
46
  return isDate$1(dateToCheck);
52
47
  }
53
48
  var isDateString = function isDateString(dateString) {
54
49
  try {
55
50
  var date = parseISO(dateString);
56
-
57
51
  if (isNaN(date.getTime())) {
58
52
  return false;
59
53
  }
60
-
61
54
  return true;
62
55
  } catch (e) {
63
56
  return false;
@@ -67,12 +60,10 @@ var isDateString = function isDateString(dateString) {
67
60
  function checkPermission(permission1, permission2) {
68
61
  return permission1.access === permission2.access && permission1.operation === permission2.operation;
69
62
  }
70
-
71
63
  function hasAllPermissions(all, permissions) {
72
64
  if (!Array.isArray(all)) {
73
65
  all = [all];
74
66
  }
75
-
76
67
  return all.every(function (requiredPermission) {
77
68
  return hasPermissions(permissions, requiredPermission);
78
69
  });
@@ -95,8 +86,8 @@ function hasPermissions(permissions, requiredPermission) {
95
86
  * @returns array of subpaths
96
87
  */
97
88
  function splitUrlPath(pathname) {
98
- var paths = pathname === '/' ? [] : ['/']; // support paths with and without trailing slash, except root
99
-
89
+ var paths = pathname === '/' ? [] : ['/'];
90
+ // support paths with and without trailing slash, except root
100
91
  var adjustedPathname = pathname.length > 1 ? pathname.replace(/\/$/, '') : pathname;
101
92
  adjustedPathname.split('/').reduce(function (prev, curr) {
102
93
  var path = prev + "/" + curr;
@@ -1 +1 @@
1
- {"version":3,"file":"util.esm.js","sources":["../src/assertions.ts","../src/helpers.ts","../src/date.ts","../src/permissions.ts","../src/splitUrlPath.ts"],"sourcesContent":["export function assertIsDefined<T>(\n val: T,\n message?: string\n): asserts val is NonNullable<T> {\n if (val === undefined || val === null) {\n if (message) {\n throw new Error(message);\n }\n throw new Error(`Expected 'val' to be defined, but received ${val}`);\n }\n}\n","export function isFunction<T>(functionToCheck: any): functionToCheck is T {\n return (\n functionToCheck && {}.toString.call(functionToCheck) === '[object Function]'\n );\n}\n\nexport function isString(stringToCheck: any): stringToCheck is string {\n return typeof stringToCheck === 'string' || stringToCheck instanceof String;\n}\n","import { format, parseISO, isDate as isDateFn } from 'date-fns';\nimport { nb, enGB } from 'date-fns/locale';\n\nimport { isString } from './helpers';\n\nconst formatLocalDate = (date: Date, locale: string, formatString: string) => {\n const localeConfig = {};\n switch (locale) {\n case 'nb':\n Object.assign(localeConfig, { locale: nb });\n break;\n case 'en':\n Object.assign(localeConfig, { locale: enGB });\n break;\n default:\n break;\n }\n\n return format(date, formatString, localeConfig);\n};\n\nexport const localeDate = (date: Date | string, locale: string) => {\n const dateObject = isString(date) ? parseISO(date) : date;\n return formatLocalDate(dateObject, locale, 'P');\n};\n\nexport const localeDateTime = (date: Date | string, locale: string) => {\n const dateObject = isString(date) ? parseISO(date) : date;\n return formatLocalDate(dateObject, locale, 'P - p');\n};\n\n// Redefine is Date for better type checking\nexport function isDate(dateToCheck: any): dateToCheck is Date {\n return isDateFn(dateToCheck);\n}\n\nexport const isDateString = (dateString: string) => {\n try {\n const date = parseISO(dateString);\n if (isNaN(date.getTime())) {\n return false;\n }\n return true;\n } catch (e) {\n return false;\n }\n};\n","import { BusinessCapability } from '@entur-partner/permission-client-node';\n\nfunction checkPermission(\n permission1: BusinessCapability,\n permission2: BusinessCapability\n) {\n return (\n permission1.access === permission2.access &&\n permission1.operation === permission2.operation\n );\n}\n\nexport function hasAllPermissions(\n all: BusinessCapability[] | BusinessCapability,\n permissions: BusinessCapability[]\n) {\n if (!Array.isArray(all)) {\n all = [all];\n }\n return all.every((requiredPermission) =>\n hasPermissions(permissions, requiredPermission)\n );\n}\n\nexport function hasOneOfPermissions(\n oneOf: BusinessCapability[],\n permissions: BusinessCapability[]\n) {\n return oneOf.length > 0\n ? oneOf.some((requiredPermission) =>\n hasPermissions(permissions, requiredPermission)\n )\n : true;\n}\n\nexport function hasPermissions(\n permissions: BusinessCapability[],\n requiredPermission: BusinessCapability\n) {\n return permissions.some((userPermission) =>\n checkPermission(requiredPermission, userPermission)\n );\n}\n","/**\n * Split pathname into array of subpaths. Used by Breadcrumbs.tsx and PageTitle.tsx\n *\n * @param pathname location.pathname\n * @returns array of subpaths\n */\nexport function splitUrlPath(pathname: string) {\n const paths: string[] = pathname === '/' ? [] : ['/'];\n\n // support paths with and without trailing slash, except root\n const adjustedPathname =\n pathname.length > 1 ? pathname.replace(/\\/$/, '') : pathname;\n\n adjustedPathname.split('/').reduce((prev, curr) => {\n const path = `${prev}/${curr}`;\n paths.push(path);\n return path;\n });\n\n return paths;\n}\n"],"names":["assertIsDefined","val","message","undefined","Error","isFunction","functionToCheck","toString","call","isString","stringToCheck","String","formatLocalDate","date","locale","formatString","localeConfig","Object","assign","nb","enGB","format","localeDate","dateObject","parseISO","localeDateTime","isDate","dateToCheck","isDateFn","isDateString","dateString","isNaN","getTime","e","checkPermission","permission1","permission2","access","operation","hasAllPermissions","all","permissions","Array","isArray","every","requiredPermission","hasPermissions","hasOneOfPermissions","oneOf","length","some","userPermission","splitUrlPath","pathname","paths","adjustedPathname","replace","split","reduce","prev","curr","path","push"],"mappings":"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"}
1
+ {"version":3,"file":"util.esm.js","sources":["../src/assertions.ts","../src/helpers.ts","../src/date.ts","../src/permissions.ts","../src/splitUrlPath.ts"],"sourcesContent":["export function assertIsDefined<T>(\n val: T,\n message?: string\n): asserts val is NonNullable<T> {\n if (val === undefined || val === null) {\n if (message) {\n throw new Error(message);\n }\n throw new Error(`Expected 'val' to be defined, but received ${val}`);\n }\n}\n","export function isFunction<T>(functionToCheck: any): functionToCheck is T {\n return (\n functionToCheck && {}.toString.call(functionToCheck) === '[object Function]'\n );\n}\n\nexport function isString(stringToCheck: any): stringToCheck is string {\n return typeof stringToCheck === 'string' || stringToCheck instanceof String;\n}\n","import { format, parseISO, isDate as isDateFn } from 'date-fns';\nimport { nb, enGB } from 'date-fns/locale';\n\nimport { isString } from './helpers';\n\nconst formatLocalDate = (date: Date, locale: string, formatString: string) => {\n const localeConfig = {};\n switch (locale) {\n case 'nb':\n Object.assign(localeConfig, { locale: nb });\n break;\n case 'en':\n Object.assign(localeConfig, { locale: enGB });\n break;\n default:\n break;\n }\n\n return format(date, formatString, localeConfig);\n};\n\nexport const localeDate = (date: Date | string, locale: string) => {\n const dateObject = isString(date) ? parseISO(date) : date;\n return formatLocalDate(dateObject, locale, 'P');\n};\n\nexport const localeDateTime = (date: Date | string, locale: string) => {\n const dateObject = isString(date) ? parseISO(date) : date;\n return formatLocalDate(dateObject, locale, 'P - p');\n};\n\n// Redefine is Date for better type checking\nexport function isDate(dateToCheck: any): dateToCheck is Date {\n return isDateFn(dateToCheck);\n}\n\nexport const isDateString = (dateString: string) => {\n try {\n const date = parseISO(dateString);\n if (isNaN(date.getTime())) {\n return false;\n }\n return true;\n } catch (e) {\n return false;\n }\n};\n","import { BusinessCapability } from '@entur-partner/permission-client-node';\n\nfunction checkPermission(\n permission1: BusinessCapability,\n permission2: BusinessCapability\n) {\n return (\n permission1.access === permission2.access &&\n permission1.operation === permission2.operation\n );\n}\n\nexport function hasAllPermissions(\n all: BusinessCapability[] | BusinessCapability,\n permissions: BusinessCapability[]\n) {\n if (!Array.isArray(all)) {\n all = [all];\n }\n return all.every((requiredPermission) =>\n hasPermissions(permissions, requiredPermission)\n );\n}\n\nexport function hasOneOfPermissions(\n oneOf: BusinessCapability[],\n permissions: BusinessCapability[]\n) {\n return oneOf.length > 0\n ? oneOf.some((requiredPermission) =>\n hasPermissions(permissions, requiredPermission)\n )\n : true;\n}\n\nexport function hasPermissions(\n permissions: BusinessCapability[],\n requiredPermission: BusinessCapability\n) {\n return permissions.some((userPermission) =>\n checkPermission(requiredPermission, userPermission)\n );\n}\n","/**\n * Split pathname into array of subpaths. Used by Breadcrumbs.tsx and PageTitle.tsx\n *\n * @param pathname location.pathname\n * @returns array of subpaths\n */\nexport function splitUrlPath(pathname: string) {\n const paths: string[] = pathname === '/' ? [] : ['/'];\n\n // support paths with and without trailing slash, except root\n const adjustedPathname =\n pathname.length > 1 ? pathname.replace(/\\/$/, '') : pathname;\n\n adjustedPathname.split('/').reduce((prev, curr) => {\n const path = `${prev}/${curr}`;\n paths.push(path);\n return path;\n });\n\n return paths;\n}\n"],"names":["assertIsDefined","val","message","undefined","Error","isFunction","functionToCheck","toString","call","isString","stringToCheck","String","formatLocalDate","date","locale","formatString","localeConfig","Object","assign","nb","enGB","format","localeDate","dateObject","parseISO","localeDateTime","isDate","dateToCheck","isDateFn","isDateString","dateString","isNaN","getTime","e","checkPermission","permission1","permission2","access","operation","hasAllPermissions","all","permissions","Array","isArray","every","requiredPermission","hasPermissions","hasOneOfPermissions","oneOf","length","some","userPermission","splitUrlPath","pathname","paths","adjustedPathname","replace","split","reduce","prev","curr","path","push"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@entur-partner/util",
3
- "version": "1.2.0",
3
+ "version": "1.2.3",
4
4
  "license": "EUPL-1.2",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/util.esm.js",
@@ -10,7 +10,7 @@
10
10
  ],
11
11
  "repository": {
12
12
  "type": "git",
13
- "url": "https://bitbucket.org/enturas/entur-partner-packages.git",
13
+ "url": "https://github.com/entur/entur-partner-packages.git",
14
14
  "directory": "packages/util"
15
15
  },
16
16
  "publishConfig": {
@@ -38,5 +38,5 @@
38
38
  "reportFile": "jest-sonar-report.xml",
39
39
  "indent": 4
40
40
  },
41
- "gitHead": "6b4d8ff774ed55234506f8922078fefc0aadd246"
41
+ "gitHead": "37d8445b21bd76a2e89ba280037acf4df7ef4996"
42
42
  }