@bigbinary/neeto-commons-frontend 3.1.20 → 3.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.
@@ -19,6 +19,11 @@ var _this = void 0;
19
19
  var _excluded = ["toCamelCase"];
20
20
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
21
21
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
22
+ var toCamelCasedString = function toCamelCasedString(string) {
23
+ return string.replace(/[_-]+(\w)/g, function (_, nextChar) {
24
+ return nextChar.toUpperCase();
25
+ });
26
+ };
22
27
  var withEventTargetValue = /*#__PURE__*/(0, _ramda.curry)(function (func, event) {
23
28
  return func(event.target.value);
24
29
  });
@@ -97,7 +102,10 @@ var copyToClipboard = /*#__PURE__*/function () {
97
102
  }();
98
103
  exports.copyToClipboard = copyToClipboard;
99
104
  var buildUrl = function buildUrl(route, params) {
105
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
100
106
  var placeHolders = [];
107
+ var _options$toSnakeCase = options.toSnakeCase,
108
+ toSnakeCase = _options$toSnakeCase === void 0 ? true : _options$toSnakeCase;
101
109
  (0, _ramda.toPairs)(params).forEach(function (_ref3) {
102
110
  var _ref4 = (0, _slicedToArray2["default"])(_ref3, 2),
103
111
  key = _ref4[0],
@@ -106,7 +114,15 @@ var buildUrl = function buildUrl(route, params) {
106
114
  placeHolders.push(key);
107
115
  route = route.replace(":".concat(key), encodeURIComponent(value));
108
116
  });
109
- var queryParams = (0, _ramda.pipe)((0, _ramda.omit)(placeHolders), _neetoCist.preprocessForSerialization, _qs.stringify)(params);
117
+ var keyTransformer = toSnakeCase ? _neetoCist.camelToSnakeCase : _ramda.identity;
118
+ var transformObjectKeys = function transformObjectKeys(params) {
119
+ return (0, _neetoCist.transformObjectDeep)(params, function (key, value) {
120
+ return [keyTransformer(key), value];
121
+ }, function (object) {
122
+ return typeof (object === null || object === void 0 ? void 0 : object.toJSON) === "function" ? object.toJSON() : object;
123
+ });
124
+ };
125
+ var queryParams = (0, _ramda.pipe)((0, _ramda.omit)(placeHolders), transformObjectKeys, _qs.stringify)(params);
110
126
  return (0, _ramda.isEmpty)(queryParams) ? route : "".concat(route, "?").concat(queryParams);
111
127
  };
112
128
  exports.buildUrl = buildUrl;
@@ -125,18 +141,14 @@ var parseQueryParams = function parseQueryParams(search) {
125
141
  ignoreQueryPrefix: true
126
142
  }, qsOptions));
127
143
  if (toCamelCase) {
128
- (0, _ramda.toPairs)(params).forEach(function (_ref5) {
144
+ var pairedParams = (0, _ramda.toPairs)(params);
145
+ params = {};
146
+ pairedParams.forEach(function (_ref5) {
129
147
  var _ref6 = (0, _slicedToArray2["default"])(_ref5, 2),
130
148
  key = _ref6[0],
131
149
  value = _ref6[1];
132
- var camelCasedKey = (0, _neetoCist.snakeToCamelCase)(key);
133
- if (camelCasedKey !== key) {
134
- Object.defineProperty(params, camelCasedKey, {
135
- get: function get() {
136
- return value;
137
- }
138
- });
139
- }
150
+ var camelCasedKey = toCamelCasedString(key);
151
+ params[camelCasedKey] = value;
140
152
  });
141
153
  }
142
154
  return params;
@@ -1 +1 @@
1
- {"version":3,"file":"general.js","names":["_i18next","_interopRequireDefault","require","_neetoCist","_neetoui","_qs","_ramda","_this","_excluded","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","withEventTargetValue","curry","func","event","value","exports","getSubdomain","host","window","location","parts","split","simulateApiCall","result","error","errorProbability","undefined","delay","getRandomInt","Promise","resolve","reject","setTimeout","defaultErrorObj","success","notice","i18next","t","Math","random","copyToClipboard","_ref","_asyncToGenerator2","_regenerator","mark","_callee","text","_ref2","_ref2$showToastr","showToastr","_ref2$message","message","textArea","_args","wrap","_callee$","_context","prev","next","navigator","clipboard","isSecureContext","writeText","document","createElement","style","top","left","position","body","appendChild","focus","select","execCommand","removeChild","Toastr","t0","stop","_x","buildUrl","route","params","placeHolders","toPairs","_ref3","_ref4","_slicedToArray2","includes","concat","replace","encodeURIComponent","queryParams","pipe","omit","preprocessForSerialization","stringify","isEmpty","toLocale","number","_window$globalProps","_window$globalProps$u","options","Number","toLocaleString","globalProps","user","locale","language","languages","parseQueryParams","search","_options$toCamelCase","toCamelCase","qsOptions","_objectWithoutProperties2","parse","ignoreQueryPrefix","_ref5","_ref6","camelCasedKey","snakeToCamelCase","get","getQueryParams","joinHyphenCase","_len","args","Array","_key","join","toLowerCase","hyphenize","fallbackString","String","debounce","timer","_len2","_key2","clearTimeout","getFromLocalStorage","JSON","localStorage","getItem","_unused","setToLocalStorage","setItem","removeFromLocalStorage","removeItem","showThumbsUpToastr","icon","className"],"sources":["../../../src/utils/general.js"],"sourcesContent":["import i18next from \"i18next\";\nimport {\n getRandomInt,\n preprocessForSerialization,\n snakeToCamelCase,\n} from \"neetocist\";\nimport { Toastr } from \"neetoui\";\nimport { parse, stringify } from \"qs\";\nimport { curry, isEmpty, omit, pipe, toPairs } from \"ramda\";\n\nexport const withEventTargetValue = /*#__PURE__*/ curry((func, event) =>\n func(event.target.value)\n);\n\nexport const getSubdomain = () => {\n const host = window.location.host;\n const parts = host.split(\".\");\n\n return parts.length >= 3 ? parts[0] : \"\";\n};\n\nexport const simulateApiCall = (\n result,\n error,\n errorProbability = 0.1,\n delay = getRandomInt(350, 1000)\n) =>\n new Promise((resolve, reject) =>\n setTimeout(() => {\n const defaultErrorObj = {\n success: false,\n notice: i18next.t(\"neetoCommons.notice.errorOccurred\"),\n };\n\n Math.random() < errorProbability\n ? reject({ ...defaultErrorObj, ...error })\n : resolve(result);\n }, delay)\n );\n\nexport const copyToClipboard = async (\n text,\n {\n showToastr = true,\n message = i18next.t(\"neetoCommons.toastr.success.copiedToClipboard\"),\n } = {}\n) => {\n try {\n if (navigator.clipboard && window.isSecureContext) {\n await navigator.clipboard.writeText(text);\n } else {\n const textArea = document.createElement(\"textarea\");\n textArea.value = text;\n\n textArea.style.top = \"0\";\n textArea.style.left = \"0\";\n textArea.style.position = \"fixed\";\n\n document.body.appendChild(textArea);\n textArea.focus();\n textArea.select();\n\n document.execCommand(\"copy\");\n document.body.removeChild(textArea);\n }\n\n showToastr && Toastr.success(message);\n } catch (error) {\n Toastr.error(error);\n }\n};\n\nexport const buildUrl = (route, params) => {\n const placeHolders = [];\n toPairs(params).forEach(([key, value]) => {\n if (!route.includes(`:${key}`)) return;\n placeHolders.push(key);\n route = route.replace(`:${key}`, encodeURIComponent(value));\n });\n\n const queryParams = pipe(\n omit(placeHolders),\n preprocessForSerialization,\n stringify\n )(params);\n\n return isEmpty(queryParams) ? route : `${route}?${queryParams}`;\n};\n\nexport const toLocale = (number, options = undefined) =>\n Number(number).toLocaleString(\n window.globalProps?.user?.locale ||\n navigator.language ||\n navigator.languages[0],\n options\n );\n\nexport const parseQueryParams = (search, options = {}) => {\n const { toCamelCase = true, ...qsOptions } = options;\n const params = parse(search, {\n ignoreQueryPrefix: true,\n ...qsOptions,\n });\n\n if (toCamelCase) {\n toPairs(params).forEach(([key, value]) => {\n const camelCasedKey = snakeToCamelCase(key);\n if (camelCasedKey !== key) {\n Object.defineProperty(params, camelCasedKey, {\n get: () => value,\n });\n }\n });\n }\n\n return params;\n};\n\nexport const getQueryParams = options =>\n parseQueryParams(location.search, options);\n\nexport const joinHyphenCase = (...args) =>\n args.join(\" \").replace(/\\s+/g, \"-\").toLowerCase();\n\nexport const hyphenize = (value, fallbackString = \"\") => {\n if (typeof value === \"number\") return String(value);\n\n if (value && typeof value === \"string\" && value.replace) {\n return value\n .replace(/[\\s_]/g, \"-\")\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/-+/g, \"-\")\n .toLowerCase();\n }\n\n return fallbackString;\n};\n\nexport const debounce = (func, delay = 350) => {\n let timer;\n\n return (...args) => {\n clearTimeout(timer);\n timer = setTimeout(() => func.apply(this, args), delay);\n };\n};\n\nexport const getFromLocalStorage = key => {\n try {\n // eslint-disable-next-line @bigbinary/neeto/no-local-storage\n return JSON.parse(localStorage.getItem(key));\n } catch {\n return null;\n }\n};\n\nexport const setToLocalStorage = (key, value) =>\n // eslint-disable-next-line @bigbinary/neeto/no-local-storage\n localStorage.setItem(key, JSON.stringify(value));\n\n// eslint-disable-next-line @bigbinary/neeto/no-local-storage\nexport const removeFromLocalStorage = key => localStorage.removeItem(key);\n\nexport const showThumbsUpToastr = () =>\n Toastr.success(\"\", { icon: \"👍\", className: \"w-20\" });\n"],"mappings":"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"}
1
+ {"version":3,"file":"general.js","names":["_i18next","_interopRequireDefault","require","_neetoCist","_neetoui","_qs","_ramda","_this","_excluded","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","toCamelCasedString","string","replace","_","nextChar","toUpperCase","withEventTargetValue","curry","func","event","value","exports","getSubdomain","host","window","location","parts","split","simulateApiCall","result","error","errorProbability","undefined","delay","getRandomInt","Promise","resolve","reject","setTimeout","defaultErrorObj","success","notice","i18next","t","Math","random","copyToClipboard","_ref","_asyncToGenerator2","_regenerator","mark","_callee","text","_ref2","_ref2$showToastr","showToastr","_ref2$message","message","textArea","_args","wrap","_callee$","_context","prev","next","navigator","clipboard","isSecureContext","writeText","document","createElement","style","top","left","position","body","appendChild","focus","select","execCommand","removeChild","Toastr","t0","stop","_x","buildUrl","route","params","options","placeHolders","_options$toSnakeCase","toSnakeCase","toPairs","_ref3","_ref4","_slicedToArray2","includes","concat","encodeURIComponent","keyTransformer","camelToSnakeCase","identity","transformObjectKeys","transformObjectDeep","toJSON","queryParams","pipe","omit","stringify","isEmpty","toLocale","number","_window$globalProps","_window$globalProps$u","Number","toLocaleString","globalProps","user","locale","language","languages","parseQueryParams","search","_options$toCamelCase","toCamelCase","qsOptions","_objectWithoutProperties2","parse","ignoreQueryPrefix","pairedParams","_ref5","_ref6","camelCasedKey","getQueryParams","joinHyphenCase","_len","args","Array","_key","join","toLowerCase","hyphenize","fallbackString","String","debounce","timer","_len2","_key2","clearTimeout","getFromLocalStorage","JSON","localStorage","getItem","_unused","setToLocalStorage","setItem","removeFromLocalStorage","removeItem","showThumbsUpToastr","icon","className"],"sources":["../../../src/utils/general.js"],"sourcesContent":["import i18next from \"i18next\";\nimport { camelToSnakeCase, getRandomInt, transformObjectDeep } from \"neetocist\";\nimport { Toastr } from \"neetoui\";\nimport { parse, stringify } from \"qs\";\nimport { identity, curry, isEmpty, omit, pipe, toPairs } from \"ramda\";\n\nconst toCamelCasedString = string =>\n string.replace(/[_-]+(\\w)/g, (_, nextChar) => nextChar.toUpperCase());\n\nexport const withEventTargetValue = /*#__PURE__*/ curry((func, event) =>\n func(event.target.value)\n);\n\nexport const getSubdomain = () => {\n const host = window.location.host;\n const parts = host.split(\".\");\n\n return parts.length >= 3 ? parts[0] : \"\";\n};\n\nexport const simulateApiCall = (\n result,\n error,\n errorProbability = 0.1,\n delay = getRandomInt(350, 1000)\n) =>\n new Promise((resolve, reject) =>\n setTimeout(() => {\n const defaultErrorObj = {\n success: false,\n notice: i18next.t(\"neetoCommons.notice.errorOccurred\"),\n };\n\n Math.random() < errorProbability\n ? reject({ ...defaultErrorObj, ...error })\n : resolve(result);\n }, delay)\n );\n\nexport const copyToClipboard = async (\n text,\n {\n showToastr = true,\n message = i18next.t(\"neetoCommons.toastr.success.copiedToClipboard\"),\n } = {}\n) => {\n try {\n if (navigator.clipboard && window.isSecureContext) {\n await navigator.clipboard.writeText(text);\n } else {\n const textArea = document.createElement(\"textarea\");\n textArea.value = text;\n\n textArea.style.top = \"0\";\n textArea.style.left = \"0\";\n textArea.style.position = \"fixed\";\n\n document.body.appendChild(textArea);\n textArea.focus();\n textArea.select();\n\n document.execCommand(\"copy\");\n document.body.removeChild(textArea);\n }\n\n showToastr && Toastr.success(message);\n } catch (error) {\n Toastr.error(error);\n }\n};\n\nexport const buildUrl = (route, params, options = {}) => {\n const placeHolders = [];\n const { toSnakeCase = true } = options;\n toPairs(params).forEach(([key, value]) => {\n if (!route.includes(`:${key}`)) return;\n placeHolders.push(key);\n route = route.replace(`:${key}`, encodeURIComponent(value));\n });\n\n const keyTransformer = toSnakeCase ? camelToSnakeCase : identity;\n const transformObjectKeys = params =>\n transformObjectDeep(\n params,\n (key, value) => [keyTransformer(key), value],\n object =>\n typeof object?.toJSON === \"function\" ? object.toJSON() : object\n );\n\n const queryParams = pipe(\n omit(placeHolders),\n transformObjectKeys,\n stringify\n )(params);\n\n return isEmpty(queryParams) ? route : `${route}?${queryParams}`;\n};\n\nexport const toLocale = (number, options = undefined) =>\n Number(number).toLocaleString(\n window.globalProps?.user?.locale ||\n navigator.language ||\n navigator.languages[0],\n options\n );\n\nexport const parseQueryParams = (search, options = {}) => {\n const { toCamelCase = true, ...qsOptions } = options;\n let params = parse(search, {\n ignoreQueryPrefix: true,\n ...qsOptions,\n });\n\n if (toCamelCase) {\n const pairedParams = toPairs(params);\n params = {};\n pairedParams.forEach(([key, value]) => {\n const camelCasedKey = toCamelCasedString(key);\n params[camelCasedKey] = value;\n });\n }\n\n return params;\n};\n\nexport const getQueryParams = options =>\n parseQueryParams(location.search, options);\n\nexport const joinHyphenCase = (...args) =>\n args.join(\" \").replace(/\\s+/g, \"-\").toLowerCase();\n\nexport const hyphenize = (value, fallbackString = \"\") => {\n if (typeof value === \"number\") return String(value);\n\n if (value && typeof value === \"string\" && value.replace) {\n return value\n .replace(/[\\s_]/g, \"-\")\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/-+/g, \"-\")\n .toLowerCase();\n }\n\n return fallbackString;\n};\n\nexport const debounce = (func, delay = 350) => {\n let timer;\n\n return (...args) => {\n clearTimeout(timer);\n timer = setTimeout(() => func.apply(this, args), delay);\n };\n};\n\nexport const getFromLocalStorage = key => {\n try {\n // eslint-disable-next-line @bigbinary/neeto/no-local-storage\n return JSON.parse(localStorage.getItem(key));\n } catch {\n return null;\n }\n};\n\nexport const setToLocalStorage = (key, value) =>\n // eslint-disable-next-line @bigbinary/neeto/no-local-storage\n localStorage.setItem(key, JSON.stringify(value));\n\n// eslint-disable-next-line @bigbinary/neeto/no-local-storage\nexport const removeFromLocalStorage = key => localStorage.removeItem(key);\n\nexport const showThumbsUpToastr = () =>\n Toastr.success(\"\", { icon: \"👍\", className: \"w-20\" });\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-commons-frontend",
3
- "version": "3.1.20",
3
+ "version": "3.2.0",
4
4
  "description": "A package encapsulating common code across neeto projects including initializers, utility functions, common components and hooks and so on.",
5
5
  "repository": "git@github.com:bigbinary/neeto-commons-frontend.git",
6
6
  "author": "Amaljith K <amaljith.k@bigbinary.com>",
package/react-utils.d.ts CHANGED
@@ -1482,13 +1482,11 @@ export function useMutationWithInvalidation<TData = unknown, TError = unknown, T
1482
1482
  *
1483
1483
  * hook.
1484
1484
  *
1485
- * This hook will return an object containing all the query parameters in snake
1485
+ * This hook will return an object containing all the query parameters in camel
1486
1486
  *
1487
1487
  * case. It will return an empty object if no query parameters are present.
1488
1488
  *
1489
- * You can also get the query parameters as camel cased when destructuring the
1490
- *
1491
- * return object.
1489
+ * You can set toCamelCase to false if you don't want to apply any transformation to the keys.
1492
1490
  *
1493
1491
  * More details on working:
1494
1492
  *
package/utils/general.js CHANGED
@@ -8,10 +8,15 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
8
8
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
9
9
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
10
10
  import i18next from "i18next";
11
- import { getRandomInt, preprocessForSerialization, snakeToCamelCase } from "@bigbinary/neeto-cist";
11
+ import { camelToSnakeCase, getRandomInt, transformObjectDeep } from "@bigbinary/neeto-cist";
12
12
  import { Toastr } from "@bigbinary/neetoui";
13
13
  import { parse, stringify } from "qs";
14
- import { curry, isEmpty, omit, pipe, toPairs } from "ramda";
14
+ import { identity, curry, isEmpty, omit, pipe, toPairs } from "ramda";
15
+ var toCamelCasedString = function toCamelCasedString(string) {
16
+ return string.replace(/[_-]+(\w)/g, function (_, nextChar) {
17
+ return nextChar.toUpperCase();
18
+ });
19
+ };
15
20
  export var withEventTargetValue = /*#__PURE__*/curry(function (func, event) {
16
21
  return func(event.target.value);
17
22
  });
@@ -86,7 +91,10 @@ export var copyToClipboard = /*#__PURE__*/function () {
86
91
  };
87
92
  }();
88
93
  export var buildUrl = function buildUrl(route, params) {
94
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
89
95
  var placeHolders = [];
96
+ var _options$toSnakeCase = options.toSnakeCase,
97
+ toSnakeCase = _options$toSnakeCase === void 0 ? true : _options$toSnakeCase;
90
98
  toPairs(params).forEach(function (_ref3) {
91
99
  var _ref4 = _slicedToArray(_ref3, 2),
92
100
  key = _ref4[0],
@@ -95,7 +103,15 @@ export var buildUrl = function buildUrl(route, params) {
95
103
  placeHolders.push(key);
96
104
  route = route.replace(":".concat(key), encodeURIComponent(value));
97
105
  });
98
- var queryParams = pipe(omit(placeHolders), preprocessForSerialization, stringify)(params);
106
+ var keyTransformer = toSnakeCase ? camelToSnakeCase : identity;
107
+ var transformObjectKeys = function transformObjectKeys(params) {
108
+ return transformObjectDeep(params, function (key, value) {
109
+ return [keyTransformer(key), value];
110
+ }, function (object) {
111
+ return typeof (object === null || object === void 0 ? void 0 : object.toJSON) === "function" ? object.toJSON() : object;
112
+ });
113
+ };
114
+ var queryParams = pipe(omit(placeHolders), transformObjectKeys, stringify)(params);
99
115
  return isEmpty(queryParams) ? route : "".concat(route, "?").concat(queryParams);
100
116
  };
101
117
  export var toLocale = function toLocale(number) {
@@ -112,18 +128,14 @@ export var parseQueryParams = function parseQueryParams(search) {
112
128
  ignoreQueryPrefix: true
113
129
  }, qsOptions));
114
130
  if (toCamelCase) {
115
- toPairs(params).forEach(function (_ref5) {
131
+ var pairedParams = toPairs(params);
132
+ params = {};
133
+ pairedParams.forEach(function (_ref5) {
116
134
  var _ref6 = _slicedToArray(_ref5, 2),
117
135
  key = _ref6[0],
118
136
  value = _ref6[1];
119
- var camelCasedKey = snakeToCamelCase(key);
120
- if (camelCasedKey !== key) {
121
- Object.defineProperty(params, camelCasedKey, {
122
- get: function get() {
123
- return value;
124
- }
125
- });
126
- }
137
+ var camelCasedKey = toCamelCasedString(key);
138
+ params[camelCasedKey] = value;
127
139
  });
128
140
  }
129
141
  return params;
@@ -1 +1 @@
1
- {"version":3,"file":"general.js","names":["i18next","getRandomInt","preprocessForSerialization","snakeToCamelCase","Toastr","parse","stringify","curry","isEmpty","omit","pipe","toPairs","withEventTargetValue","func","event","target","value","getSubdomain","host","window","location","parts","split","length","simulateApiCall","result","error","errorProbability","arguments","undefined","delay","Promise","resolve","reject","setTimeout","defaultErrorObj","success","notice","t","Math","random","_objectSpread","copyToClipboard","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","text","_ref2","_ref2$showToastr","showToastr","_ref2$message","message","textArea","_args","wrap","_callee$","_context","prev","next","navigator","clipboard","isSecureContext","writeText","document","createElement","style","top","left","position","body","appendChild","focus","select","execCommand","removeChild","t0","stop","_x","apply","buildUrl","route","params","placeHolders","forEach","_ref3","_ref4","_slicedToArray","key","includes","concat","push","replace","encodeURIComponent","queryParams","toLocale","number","_window$globalProps","_window$globalProps$u","options","Number","toLocaleString","globalProps","user","locale","language","languages","parseQueryParams","search","_options$toCamelCase","toCamelCase","qsOptions","_objectWithoutProperties","_excluded","ignoreQueryPrefix","_ref5","_ref6","camelCasedKey","Object","defineProperty","get","getQueryParams","joinHyphenCase","_len","args","Array","_key","join","toLowerCase","hyphenize","fallbackString","String","debounce","timer","_len2","_key2","clearTimeout","_this","getFromLocalStorage","JSON","localStorage","getItem","_unused","setToLocalStorage","setItem","removeFromLocalStorage","removeItem","showThumbsUpToastr","icon","className"],"sources":["../../src/utils/general.js"],"sourcesContent":["import i18next from \"i18next\";\nimport {\n getRandomInt,\n preprocessForSerialization,\n snakeToCamelCase,\n} from \"neetocist\";\nimport { Toastr } from \"neetoui\";\nimport { parse, stringify } from \"qs\";\nimport { curry, isEmpty, omit, pipe, toPairs } from \"ramda\";\n\nexport const withEventTargetValue = /*#__PURE__*/ curry((func, event) =>\n func(event.target.value)\n);\n\nexport const getSubdomain = () => {\n const host = window.location.host;\n const parts = host.split(\".\");\n\n return parts.length >= 3 ? parts[0] : \"\";\n};\n\nexport const simulateApiCall = (\n result,\n error,\n errorProbability = 0.1,\n delay = getRandomInt(350, 1000)\n) =>\n new Promise((resolve, reject) =>\n setTimeout(() => {\n const defaultErrorObj = {\n success: false,\n notice: i18next.t(\"neetoCommons.notice.errorOccurred\"),\n };\n\n Math.random() < errorProbability\n ? reject({ ...defaultErrorObj, ...error })\n : resolve(result);\n }, delay)\n );\n\nexport const copyToClipboard = async (\n text,\n {\n showToastr = true,\n message = i18next.t(\"neetoCommons.toastr.success.copiedToClipboard\"),\n } = {}\n) => {\n try {\n if (navigator.clipboard && window.isSecureContext) {\n await navigator.clipboard.writeText(text);\n } else {\n const textArea = document.createElement(\"textarea\");\n textArea.value = text;\n\n textArea.style.top = \"0\";\n textArea.style.left = \"0\";\n textArea.style.position = \"fixed\";\n\n document.body.appendChild(textArea);\n textArea.focus();\n textArea.select();\n\n document.execCommand(\"copy\");\n document.body.removeChild(textArea);\n }\n\n showToastr && Toastr.success(message);\n } catch (error) {\n Toastr.error(error);\n }\n};\n\nexport const buildUrl = (route, params) => {\n const placeHolders = [];\n toPairs(params).forEach(([key, value]) => {\n if (!route.includes(`:${key}`)) return;\n placeHolders.push(key);\n route = route.replace(`:${key}`, encodeURIComponent(value));\n });\n\n const queryParams = pipe(\n omit(placeHolders),\n preprocessForSerialization,\n stringify\n )(params);\n\n return isEmpty(queryParams) ? route : `${route}?${queryParams}`;\n};\n\nexport const toLocale = (number, options = undefined) =>\n Number(number).toLocaleString(\n window.globalProps?.user?.locale ||\n navigator.language ||\n navigator.languages[0],\n options\n );\n\nexport const parseQueryParams = (search, options = {}) => {\n const { toCamelCase = true, ...qsOptions } = options;\n const params = parse(search, {\n ignoreQueryPrefix: true,\n ...qsOptions,\n });\n\n if (toCamelCase) {\n toPairs(params).forEach(([key, value]) => {\n const camelCasedKey = snakeToCamelCase(key);\n if (camelCasedKey !== key) {\n Object.defineProperty(params, camelCasedKey, {\n get: () => value,\n });\n }\n });\n }\n\n return params;\n};\n\nexport const getQueryParams = options =>\n parseQueryParams(location.search, options);\n\nexport const joinHyphenCase = (...args) =>\n args.join(\" \").replace(/\\s+/g, \"-\").toLowerCase();\n\nexport const hyphenize = (value, fallbackString = \"\") => {\n if (typeof value === \"number\") return String(value);\n\n if (value && typeof value === \"string\" && value.replace) {\n return value\n .replace(/[\\s_]/g, \"-\")\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/-+/g, \"-\")\n .toLowerCase();\n }\n\n return fallbackString;\n};\n\nexport const debounce = (func, delay = 350) => {\n let timer;\n\n return (...args) => {\n clearTimeout(timer);\n timer = setTimeout(() => func.apply(this, args), delay);\n };\n};\n\nexport const getFromLocalStorage = key => {\n try {\n // eslint-disable-next-line @bigbinary/neeto/no-local-storage\n return JSON.parse(localStorage.getItem(key));\n } catch {\n return null;\n }\n};\n\nexport const setToLocalStorage = (key, value) =>\n // eslint-disable-next-line @bigbinary/neeto/no-local-storage\n localStorage.setItem(key, JSON.stringify(value));\n\n// eslint-disable-next-line @bigbinary/neeto/no-local-storage\nexport const removeFromLocalStorage = key => localStorage.removeItem(key);\n\nexport const showThumbsUpToastr = () =>\n Toastr.success(\"\", { icon: \"👍\", className: \"w-20\" });\n"],"mappings":"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"}
1
+ {"version":3,"file":"general.js","names":["i18next","camelToSnakeCase","getRandomInt","transformObjectDeep","Toastr","parse","stringify","identity","curry","isEmpty","omit","pipe","toPairs","toCamelCasedString","string","replace","_","nextChar","toUpperCase","withEventTargetValue","func","event","target","value","getSubdomain","host","window","location","parts","split","length","simulateApiCall","result","error","errorProbability","arguments","undefined","delay","Promise","resolve","reject","setTimeout","defaultErrorObj","success","notice","t","Math","random","_objectSpread","copyToClipboard","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","text","_ref2","_ref2$showToastr","showToastr","_ref2$message","message","textArea","_args","wrap","_callee$","_context","prev","next","navigator","clipboard","isSecureContext","writeText","document","createElement","style","top","left","position","body","appendChild","focus","select","execCommand","removeChild","t0","stop","_x","apply","buildUrl","route","params","options","placeHolders","_options$toSnakeCase","toSnakeCase","forEach","_ref3","_ref4","_slicedToArray","key","includes","concat","push","encodeURIComponent","keyTransformer","transformObjectKeys","object","toJSON","queryParams","toLocale","number","_window$globalProps","_window$globalProps$u","Number","toLocaleString","globalProps","user","locale","language","languages","parseQueryParams","search","_options$toCamelCase","toCamelCase","qsOptions","_objectWithoutProperties","_excluded","ignoreQueryPrefix","pairedParams","_ref5","_ref6","camelCasedKey","getQueryParams","joinHyphenCase","_len","args","Array","_key","join","toLowerCase","hyphenize","fallbackString","String","debounce","timer","_len2","_key2","clearTimeout","_this","getFromLocalStorage","JSON","localStorage","getItem","_unused","setToLocalStorage","setItem","removeFromLocalStorage","removeItem","showThumbsUpToastr","icon","className"],"sources":["../../src/utils/general.js"],"sourcesContent":["import i18next from \"i18next\";\nimport { camelToSnakeCase, getRandomInt, transformObjectDeep } from \"neetocist\";\nimport { Toastr } from \"neetoui\";\nimport { parse, stringify } from \"qs\";\nimport { identity, curry, isEmpty, omit, pipe, toPairs } from \"ramda\";\n\nconst toCamelCasedString = string =>\n string.replace(/[_-]+(\\w)/g, (_, nextChar) => nextChar.toUpperCase());\n\nexport const withEventTargetValue = /*#__PURE__*/ curry((func, event) =>\n func(event.target.value)\n);\n\nexport const getSubdomain = () => {\n const host = window.location.host;\n const parts = host.split(\".\");\n\n return parts.length >= 3 ? parts[0] : \"\";\n};\n\nexport const simulateApiCall = (\n result,\n error,\n errorProbability = 0.1,\n delay = getRandomInt(350, 1000)\n) =>\n new Promise((resolve, reject) =>\n setTimeout(() => {\n const defaultErrorObj = {\n success: false,\n notice: i18next.t(\"neetoCommons.notice.errorOccurred\"),\n };\n\n Math.random() < errorProbability\n ? reject({ ...defaultErrorObj, ...error })\n : resolve(result);\n }, delay)\n );\n\nexport const copyToClipboard = async (\n text,\n {\n showToastr = true,\n message = i18next.t(\"neetoCommons.toastr.success.copiedToClipboard\"),\n } = {}\n) => {\n try {\n if (navigator.clipboard && window.isSecureContext) {\n await navigator.clipboard.writeText(text);\n } else {\n const textArea = document.createElement(\"textarea\");\n textArea.value = text;\n\n textArea.style.top = \"0\";\n textArea.style.left = \"0\";\n textArea.style.position = \"fixed\";\n\n document.body.appendChild(textArea);\n textArea.focus();\n textArea.select();\n\n document.execCommand(\"copy\");\n document.body.removeChild(textArea);\n }\n\n showToastr && Toastr.success(message);\n } catch (error) {\n Toastr.error(error);\n }\n};\n\nexport const buildUrl = (route, params, options = {}) => {\n const placeHolders = [];\n const { toSnakeCase = true } = options;\n toPairs(params).forEach(([key, value]) => {\n if (!route.includes(`:${key}`)) return;\n placeHolders.push(key);\n route = route.replace(`:${key}`, encodeURIComponent(value));\n });\n\n const keyTransformer = toSnakeCase ? camelToSnakeCase : identity;\n const transformObjectKeys = params =>\n transformObjectDeep(\n params,\n (key, value) => [keyTransformer(key), value],\n object =>\n typeof object?.toJSON === \"function\" ? object.toJSON() : object\n );\n\n const queryParams = pipe(\n omit(placeHolders),\n transformObjectKeys,\n stringify\n )(params);\n\n return isEmpty(queryParams) ? route : `${route}?${queryParams}`;\n};\n\nexport const toLocale = (number, options = undefined) =>\n Number(number).toLocaleString(\n window.globalProps?.user?.locale ||\n navigator.language ||\n navigator.languages[0],\n options\n );\n\nexport const parseQueryParams = (search, options = {}) => {\n const { toCamelCase = true, ...qsOptions } = options;\n let params = parse(search, {\n ignoreQueryPrefix: true,\n ...qsOptions,\n });\n\n if (toCamelCase) {\n const pairedParams = toPairs(params);\n params = {};\n pairedParams.forEach(([key, value]) => {\n const camelCasedKey = toCamelCasedString(key);\n params[camelCasedKey] = value;\n });\n }\n\n return params;\n};\n\nexport const getQueryParams = options =>\n parseQueryParams(location.search, options);\n\nexport const joinHyphenCase = (...args) =>\n args.join(\" \").replace(/\\s+/g, \"-\").toLowerCase();\n\nexport const hyphenize = (value, fallbackString = \"\") => {\n if (typeof value === \"number\") return String(value);\n\n if (value && typeof value === \"string\" && value.replace) {\n return value\n .replace(/[\\s_]/g, \"-\")\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/-+/g, \"-\")\n .toLowerCase();\n }\n\n return fallbackString;\n};\n\nexport const debounce = (func, delay = 350) => {\n let timer;\n\n return (...args) => {\n clearTimeout(timer);\n timer = setTimeout(() => func.apply(this, args), delay);\n };\n};\n\nexport const getFromLocalStorage = key => {\n try {\n // eslint-disable-next-line @bigbinary/neeto/no-local-storage\n return JSON.parse(localStorage.getItem(key));\n } catch {\n return null;\n }\n};\n\nexport const setToLocalStorage = (key, value) =>\n // eslint-disable-next-line @bigbinary/neeto/no-local-storage\n localStorage.setItem(key, JSON.stringify(value));\n\n// eslint-disable-next-line @bigbinary/neeto/no-local-storage\nexport const removeFromLocalStorage = key => localStorage.removeItem(key);\n\nexport const showThumbsUpToastr = () =>\n Toastr.success(\"\", { icon: \"👍\", className: \"w-20\" });\n"],"mappings":"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"}
package/utils.d.ts CHANGED
@@ -102,6 +102,9 @@ export function copyToClipboard(text: string, configs?: {
102
102
  showToastr?: boolean;
103
103
  message?: string;
104
104
  }): void;
105
+ type buildUrlOptions = {
106
+ toSnakeCase?: boolean;
107
+ };
105
108
  /**
106
109
  *
107
110
  * The buildUrl function builds a URL by inflating a route-like template string
@@ -112,7 +115,7 @@ export function copyToClipboard(text: string, configs?: {
112
115
  *
113
116
  * placeholders with actual values. Any additional properties in the parameters
114
117
  *
115
- * will be attached as query parameters to the URL.
118
+ * will be transformed to snake case and attached as query parameters to the URL.
116
119
  *
117
120
  * @example
118
121
  *
@@ -125,9 +128,11 @@ export function copyToClipboard(text: string, configs?: {
125
128
  * page: 1,
126
129
  * per_page: 10,
127
130
  * }); // output "/products/123/variants/456/attributes?page=1&per_page=10&search=abc"
131
+ * buildUrl("/products", { searchTerm: "abc" }); // output "/products?search_term=abc"
132
+ * buildUrl("/products", { searchTerm: "abc" }, { toSnakeCase: false }); // output "/products?searchTerm=abc"
128
133
  * @endexample
129
134
  */
130
- export function buildUrl(route: string, params: object): string;
135
+ export function buildUrl(route: string, params: object, options?: buildUrlOptions): string;
131
136
  type DateTimeType = string | number | dayjs.Dayjs | Date | null | undefined;
132
137
  export const timeFormat: {
133
138
  fromNow: (time: DateTimeType) => string;
@@ -269,13 +274,13 @@ export type QueryParamsType = {
269
274
  *
270
275
  * API.
271
276
  *
272
- * This function will return an object containing all the query parameters in snake
277
+ * This function will return an object containing all the query parameters in camel
273
278
  *
274
279
  * case. It will return an empty object if no query parameters are present.
275
280
  *
276
- * You can also get the query parameters as camel cased when destructuring the
281
+ * You can set toCamelCase to false if you don't want to apply any transformation to the keys.
277
282
  *
278
- * return object.
283
+ * to false.
279
284
  *
280
285
  * More details on working:
281
286
  *