@entur-partner/util 1.1.6 → 1.2.0

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/dist/index.d.ts CHANGED
@@ -2,3 +2,4 @@ export { assertIsDefined } from './assertions';
2
2
  export { isString, isFunction } from './helpers';
3
3
  export { localeDate, localeDateTime, isDateString, isDate } from './date';
4
4
  export * from './permissions';
5
+ export * from './splitUrlPath';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Split pathname into array of subpaths. Used by Breadcrumbs.tsx and PageTitle.tsx
3
+ *
4
+ * @param pathname location.pathname
5
+ * @returns array of subpaths
6
+ */
7
+ export declare function splitUrlPath(pathname: string): string[];
@@ -92,6 +92,24 @@ function hasPermissions(permissions, requiredPermission) {
92
92
  });
93
93
  }
94
94
 
95
+ /**
96
+ * Split pathname into array of subpaths. Used by Breadcrumbs.tsx and PageTitle.tsx
97
+ *
98
+ * @param pathname location.pathname
99
+ * @returns array of subpaths
100
+ */
101
+ function splitUrlPath(pathname) {
102
+ var paths = pathname === '/' ? [] : ['/']; // support paths with and without trailing slash, except root
103
+
104
+ var adjustedPathname = pathname.length > 1 ? pathname.replace(/\/$/, '') : pathname;
105
+ adjustedPathname.split('/').reduce(function (prev, curr) {
106
+ var path = prev + "/" + curr;
107
+ paths.push(path);
108
+ return path;
109
+ });
110
+ return paths;
111
+ }
112
+
95
113
  exports.assertIsDefined = assertIsDefined;
96
114
  exports.hasAllPermissions = hasAllPermissions;
97
115
  exports.hasOneOfPermissions = hasOneOfPermissions;
@@ -102,4 +120,5 @@ exports.isFunction = isFunction;
102
120
  exports.isString = isString;
103
121
  exports.localeDate = localeDate;
104
122
  exports.localeDateTime = localeDateTime;
123
+ exports.splitUrlPath = splitUrlPath;
105
124
  //# sourceMappingURL=util.cjs.development.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.cjs.development.js","sources":["../src/assertions.ts","../src/helpers.ts","../src/date.ts","../src/permissions.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"],"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"],"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,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("date-fns"),r=require("date-fns/locale");function t(e){return"string"==typeof e||e instanceof String}var n=function(t,n,s){var o={};switch(n){case"nb":Object.assign(o,{locale:r.nb});break;case"en":Object.assign(o,{locale:r.enGB})}return e.format(t,s,o)};function s(e,r){return e.some((function(e){return(t=r).access===(n=e).access&&t.operation===n.operation;var t,n}))}exports.assertIsDefined=function(e,r){if(null==e){if(r)throw new Error(r);throw new Error("Expected 'val' to be defined, but received "+e)}},exports.hasAllPermissions=function(e,r){return Array.isArray(e)||(e=[e]),e.every((function(e){return s(r,e)}))},exports.hasOneOfPermissions=function(e,r){return!(e.length>0)||e.some((function(e){return s(r,e)}))},exports.hasPermissions=s,exports.isDate=function(r){return e.isDate(r)},exports.isDateString=function(r){try{var t=e.parseISO(r);return!isNaN(t.getTime())}catch(e){return!1}},exports.isFunction=function(e){return e&&"[object Function]"==={}.toString.call(e)},exports.isString=t,exports.localeDate=function(r,s){var o=t(r)?e.parseISO(r):r;return n(o,s,"P")},exports.localeDateTime=function(r,s){var o=t(r)?e.parseISO(r):r;return n(o,s,"P - p")};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("date-fns"),r=require("date-fns/locale");function t(e){return"string"==typeof e||e instanceof String}var n=function(t,n,s){var o={};switch(n){case"nb":Object.assign(o,{locale:r.nb});break;case"en":Object.assign(o,{locale:r.enGB})}return e.format(t,s,o)};function s(e,r){return e.some((function(e){return(t=r).access===(n=e).access&&t.operation===n.operation;var t,n}))}exports.assertIsDefined=function(e,r){if(null==e){if(r)throw new Error(r);throw new Error("Expected 'val' to be defined, but received "+e)}},exports.hasAllPermissions=function(e,r){return Array.isArray(e)||(e=[e]),e.every((function(e){return s(r,e)}))},exports.hasOneOfPermissions=function(e,r){return!(e.length>0)||e.some((function(e){return s(r,e)}))},exports.hasPermissions=s,exports.isDate=function(r){return e.isDate(r)},exports.isDateString=function(r){try{var t=e.parseISO(r);return!isNaN(t.getTime())}catch(e){return!1}},exports.isFunction=function(e){return e&&"[object Function]"==={}.toString.call(e)},exports.isString=t,exports.localeDate=function(r,s){var o=t(r)?e.parseISO(r):r;return n(o,s,"P")},exports.localeDateTime=function(r,s){var o=t(r)?e.parseISO(r):r;return n(o,s,"P - p")},exports.splitUrlPath=function(e){var r="/"===e?[]:["/"];return(e.length>1?e.replace(/\/$/,""):e).split("/").reduce((function(e,t){var n=e+"/"+t;return r.push(n),n})),r};
2
2
  //# sourceMappingURL=util.cjs.production.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.cjs.production.min.js","sources":["../src/helpers.ts","../src/date.ts","../src/permissions.ts","../src/assertions.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"],"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"],"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"}
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"}
package/dist/util.esm.js CHANGED
@@ -88,5 +88,23 @@ function hasPermissions(permissions, requiredPermission) {
88
88
  });
89
89
  }
90
90
 
91
- export { assertIsDefined, hasAllPermissions, hasOneOfPermissions, hasPermissions, isDate, isDateString, isFunction, isString, localeDate, localeDateTime };
91
+ /**
92
+ * Split pathname into array of subpaths. Used by Breadcrumbs.tsx and PageTitle.tsx
93
+ *
94
+ * @param pathname location.pathname
95
+ * @returns array of subpaths
96
+ */
97
+ function splitUrlPath(pathname) {
98
+ var paths = pathname === '/' ? [] : ['/']; // support paths with and without trailing slash, except root
99
+
100
+ var adjustedPathname = pathname.length > 1 ? pathname.replace(/\/$/, '') : pathname;
101
+ adjustedPathname.split('/').reduce(function (prev, curr) {
102
+ var path = prev + "/" + curr;
103
+ paths.push(path);
104
+ return path;
105
+ });
106
+ return paths;
107
+ }
108
+
109
+ export { assertIsDefined, hasAllPermissions, hasOneOfPermissions, hasPermissions, isDate, isDateString, isFunction, isString, localeDate, localeDateTime, splitUrlPath };
92
110
  //# sourceMappingURL=util.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.esm.js","sources":["../src/assertions.ts","../src/helpers.ts","../src/date.ts","../src/permissions.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"],"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"],"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.1.6",
3
+ "version": "1.2.0",
4
4
  "license": "EUPL-1.2",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/util.esm.js",
@@ -38,5 +38,5 @@
38
38
  "reportFile": "jest-sonar-report.xml",
39
39
  "indent": 4
40
40
  },
41
- "gitHead": "2a4e406ecf656fba636ac279196d6875e1d58499"
41
+ "gitHead": "6b4d8ff774ed55234506f8922078fefc0aadd246"
42
42
  }