@stryke/helpers 0.4.4 → 0.4.6

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/README.md CHANGED
@@ -22,7 +22,7 @@ This package is part of Storm Software's **đŸŒŠī¸ Stryke** monorepo. Stryke pac
22
22
 
23
23
  <h3 align="center">đŸ’ģ Visit <a href="https://stormsoftware.com" target="_blank">stormsoftware.com</a> to stay up to date with this developer</h3><br />
24
24
 
25
- [![Version](https://img.shields.io/badge/version-0.4.2-1fb2a6.svg?style=for-the-badge&color=1fb2a6)](https://prettier.io/)&nbsp;[![Nx](https://img.shields.io/badge/Nx-17.0.2-lightgrey?style=for-the-badge&logo=nx&logoWidth=20&&color=1fb2a6)](http://nx.dev/)&nbsp;[![NextJs](https://img.shields.io/badge/Next.js-14.0.2-lightgrey?style=for-the-badge&logo=nextdotjs&logoWidth=20&color=1fb2a6)](https://nextjs.org/)&nbsp;[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=for-the-badge&logo=commitlint&color=1fb2a6)](http://commitizen.github.io/cz-cli/)&nbsp;![Semantic-Release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=for-the-badge&color=1fb2a6)&nbsp;[![documented with Fumadocs](https://img.shields.io/badge/documented_with-fumadocs-success.svg?style=for-the-badge&logo=readthedocs&color=1fb2a6)](https://fumadocs.vercel.app/)&nbsp;![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/storm-software/stryke/cr.yml?style=for-the-badge&logo=github-actions&color=1fb2a6)
25
+ [![Version](https://img.shields.io/badge/version-0.4.4-1fb2a6.svg?style=for-the-badge&color=1fb2a6)](https://prettier.io/)&nbsp;[![Nx](https://img.shields.io/badge/Nx-17.0.2-lightgrey?style=for-the-badge&logo=nx&logoWidth=20&&color=1fb2a6)](http://nx.dev/)&nbsp;[![NextJs](https://img.shields.io/badge/Next.js-14.0.2-lightgrey?style=for-the-badge&logo=nextdotjs&logoWidth=20&color=1fb2a6)](https://nextjs.org/)&nbsp;[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=for-the-badge&logo=commitlint&color=1fb2a6)](http://commitizen.github.io/cz-cli/)&nbsp;![Semantic-Release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=for-the-badge&color=1fb2a6)&nbsp;[![documented with Fumadocs](https://img.shields.io/badge/documented_with-fumadocs-success.svg?style=for-the-badge&logo=readthedocs&color=1fb2a6)](https://fumadocs.vercel.app/)&nbsp;![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/storm-software/stryke/cr.yml?style=for-the-badge&logo=github-actions&color=1fb2a6)
26
26
 
27
27
  > [!IMPORTANT] This repository, and the apps, libraries, and tools contained
28
28
  > within, is still in it's initial development phase. As a result, bugs and
@@ -3,35 +3,34 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.deepMerge = void 0;
6
+ exports.deepMerge = deepMerge;
7
7
  var _isFunction = require("@stryke/type-checks/is-function");
8
8
  var _isMergeableObject = require("@stryke/type-checks/is-mergeable-object");
9
9
  var _propertyExists = require("@stryke/type-checks/property-exists");
10
10
  const b = e => Array.isArray(e) ? [] : {},
11
- s = (e, r) => r.clone !== !1 && r.isMergeableObject(e) ? deepMerge(b(e), e, r) : e,
12
- f = (e, r, n) => [...e, ...r].map(t => s(t, n)),
13
- l = (e, r) => {
11
+ o = (e, r) => r.clone !== !1 && r.isMergeableObject(e) ? deepMerge(b(e), e, r) : e,
12
+ g = (e, r, n) => [...e, ...r].map(a => o(a, n)),
13
+ u = (e, r) => {
14
14
  if (!r.customMerge) return deepMerge;
15
15
  const n = r.customMerge(e);
16
16
  return (0, _isFunction.isFunction)(n) ? n : deepMerge;
17
17
  },
18
- y = e => [...Object.keys(e), ...(Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(e).filter(r => Object.propertyIsEnumerable.call(e, r)) : [])],
19
- u = (e, r, n) => {
20
- const t = {};
21
- if (n.isMergeableObject(e)) for (const a of y(e)) t[a] = s(e[a], n);
22
- for (const a of y(r)) t[a] = (0, _propertyExists.propertyUnsafe)(e, a) && n.isMergeableObject(r[a]) ? l(a, n)(e[a], r[a], n) : s(r[a], n);
23
- return t;
18
+ s = e => [...Object.keys(e), ...(Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(e).filter(r => Object.propertyIsEnumerable.call(e, r)) : [])],
19
+ M = (e, r, n) => {
20
+ const a = {};
21
+ if (n.isMergeableObject(e)) for (const t of s(e)) a[t] = o(e[t], n);
22
+ for (const t of s(r)) a[t] = (0, _propertyExists.propertyUnsafe)(e, t) && n.isMergeableObject(r[t]) ? u(t, n)(e[t], r[t], n) : o(r[t], n);
23
+ return a;
24
24
  };
25
- const deepMerge = (e, r, n = {}) => {
25
+ function deepMerge(e, r, n) {
26
26
  if (!e || !r) return e || r;
27
- const t = n || {};
28
- t.arrayMerge = n.arrayMerge || f, t.isMergeableObject = t.isMergeableObject || _isMergeableObject.isMergeableObject, t.cloneUnlessOtherwiseSpecified = s;
29
- const a = Array.isArray(r),
30
- c = Array.isArray(e);
31
- return a === c ? a ? t.arrayMerge(e, r, t) : u(e, r, t) : s(r, t);
32
- };
33
- exports.deepMerge = deepMerge;
27
+ const a = n ?? {};
28
+ a.arrayMerge ??= g, a.isMergeableObject ??= _isMergeableObject.isMergeableObject, a.cloneUnlessOtherwiseSpecified ??= o;
29
+ const t = Array.isArray(r),
30
+ y = Array.isArray(e);
31
+ return t === y ? t ? a.arrayMerge(e, r, a) : M(e, r, a) : o(r, a);
32
+ }
34
33
  deepMerge.all = function (r, n) {
35
34
  if (!Array.isArray(r)) throw new TypeError("first argument should be an array");
36
- return r.reduce((t, a) => deepMerge(t, a, n), {});
35
+ return r.reduce((a, t) => deepMerge(a, t, n), {});
37
36
  };
@@ -1,3 +1,13 @@
1
+ export interface DeepMergeOptions {
2
+ clone?: boolean;
3
+ customMerge?: (key: string) => any;
4
+ isMergeableObject: (value: any) => boolean;
5
+ cloneUnlessOtherwiseSpecified: (value: any, options: {
6
+ clone?: boolean;
7
+ isMergeableObject: (value: any) => boolean;
8
+ }) => any;
9
+ arrayMerge: (target: any[], source: any[], options: any) => any;
10
+ }
1
11
  /**
2
12
  * Deep merge two objects
3
13
  *
@@ -6,7 +16,7 @@
6
16
  * @param options - The options object
7
17
  * @returns The merged object
8
18
  */
9
- export declare const deepMerge: {
10
- <X = any, Y = any, Z = X & Y>(target: X, source: Y, options?: any): Z;
11
- all(array: any[], options?: any): any;
12
- };
19
+ export declare function deepMerge<X = any | any[], Y = any | any[], Z = X & Y>(target: X, source: Y, options?: Partial<DeepMergeOptions>): Z;
20
+ export declare namespace deepMerge {
21
+ var all: (array: any[], options?: any) => any;
22
+ }
@@ -1 +1 @@
1
- import{isFunction as i}from"@stryke/type-checks/is-function";import{isMergeableObject as o}from"@stryke/type-checks/is-mergeable-object";import{propertyUnsafe as g}from"@stryke/type-checks/property-exists";const b=e=>Array.isArray(e)?[]:{},s=(e,r)=>r.clone!==!1&&r.isMergeableObject(e)?deepMerge(b(e),e,r):e,f=(e,r,n)=>[...e,...r].map(t=>s(t,n)),l=(e,r)=>{if(!r.customMerge)return deepMerge;const n=r.customMerge(e);return i(n)?n:deepMerge},y=e=>[...Object.keys(e),...Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(r=>Object.propertyIsEnumerable.call(e,r)):[]],u=(e,r,n)=>{const t={};if(n.isMergeableObject(e))for(const a of y(e))t[a]=s(e[a],n);for(const a of y(r))t[a]=g(e,a)&&n.isMergeableObject(r[a])?l(a,n)(e[a],r[a],n):s(r[a],n);return t};export const deepMerge=(e,r,n={})=>{if(!e||!r)return e||r;const t=n||{};t.arrayMerge=n.arrayMerge||f,t.isMergeableObject=t.isMergeableObject||o,t.cloneUnlessOtherwiseSpecified=s;const a=Array.isArray(r),c=Array.isArray(e);return a===c?a?t.arrayMerge(e,r,t):u(e,r,t):s(r,t)};deepMerge.all=function(r,n){if(!Array.isArray(r))throw new TypeError("first argument should be an array");return r.reduce((t,a)=>deepMerge(t,a,n),{})};
1
+ import{isFunction as c}from"@stryke/type-checks/is-function";import{isMergeableObject as i}from"@stryke/type-checks/is-mergeable-object";import{propertyUnsafe as l}from"@stryke/type-checks/property-exists";const b=e=>Array.isArray(e)?[]:{},o=(e,r)=>r.clone!==!1&&r.isMergeableObject(e)?deepMerge(b(e),e,r):e,g=(e,r,n)=>[...e,...r].map(a=>o(a,n)),u=(e,r)=>{if(!r.customMerge)return deepMerge;const n=r.customMerge(e);return c(n)?n:deepMerge},s=e=>[...Object.keys(e),...Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(r=>Object.propertyIsEnumerable.call(e,r)):[]],M=(e,r,n)=>{const a={};if(n.isMergeableObject(e))for(const t of s(e))a[t]=o(e[t],n);for(const t of s(r))a[t]=l(e,t)&&n.isMergeableObject(r[t])?u(t,n)(e[t],r[t],n):o(r[t],n);return a};export function deepMerge(e,r,n){if(!e||!r)return e||r;const a=n??{};a.arrayMerge??=g,a.isMergeableObject??=i,a.cloneUnlessOtherwiseSpecified??=o;const t=Array.isArray(r),y=Array.isArray(e);return t===y?t?a.arrayMerge(e,r,a):M(e,r,a):o(r,a)}deepMerge.all=function(r,n){if(!Array.isArray(r))throw new TypeError("first argument should be an array");return r.reduce((a,t)=>deepMerge(a,t,n),{})};
package/dist/is-equal.cjs CHANGED
@@ -8,7 +8,7 @@ var _isSet = require("@stryke/type-checks/is-set");
8
8
  var _isSetString = require("@stryke/type-checks/is-set-string");
9
9
  const l = typeof Map == "function",
10
10
  a = typeof Set == "function",
11
- c = typeof ArrayBuffer == "function" && !!ArrayBuffer.isView;
11
+ c = typeof ArrayBuffer == "function" && ArrayBuffer.isView !== void 0;
12
12
  function o(e, r) {
13
13
  if (e === r) return !0;
14
14
  if (e && r && typeof e == "object" && typeof r == "object") {
package/dist/is-equal.mjs CHANGED
@@ -1 +1 @@
1
- import{isSet as s}from"@stryke/type-checks/is-set";import{isSetString as u}from"@stryke/type-checks/is-set-string";const l=typeof Map=="function",a=typeof Set=="function",c=typeof ArrayBuffer=="function"&&!!ArrayBuffer.isView;function o(e,r){if(e===r)return!0;if(e&&r&&typeof e=="object"&&typeof r=="object"){if(e.constructor!==r.constructor)return!1;let n;if(Array.isArray(e)){if(n=e.length,n!=r.length)return!1;for(let t=n;t--!==0;)if(!o(e[t],r[t]))return!1;return!0}let i;if(l&&e instanceof Map&&r instanceof Map){if(e.size!==r.size)return!1;i=e.entries();let t;for(;!(t=i.next()).done;)if(!r.has(t.value[0]))return!1;for(i=e.entries();!(t=i.next()).done;)if(!o(t.value[1],r.get(t.value[0])))return!1;return!0}if(a&&e instanceof Set&&r instanceof Set){if(e.size!==r.size)return!1;i=e.entries();let t;for(;!(t=i.next()).done;)if(!r.has(t.value[0]))return!1;return!0}if(Array.isArray(e)&&Array.isArray(r)&&c&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(r)){if(n=e.length,n!=r.length)return!1;for(let t=n;t--!==0;)if(e[t]!==r[t])return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf&&typeof e.valueOf=="function"&&typeof r.valueOf=="function")return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString&&typeof e.toString=="function"&&typeof r.toString=="function")return e.toString()===r.toString();const f=Object.keys(e);if(n=f.length,n!==Object.keys(r).length)return!1;for(let t=n;t--!==0;)if(!s(t)||!u(f[t])||!Object.prototype.hasOwnProperty.call(r,f[t]))return!1;for(let t=n;t--!==0;)if(!(Array.isArray(f)&&(f[t]==="_owner"||f[t]==="__v"||f[t]==="__o")&&e.$$typeof)&&(!s(t)||!u(f[t])||!o(e[f[t]],r[f[t]])))return!1;return!0}return e!==e&&r!==r}export function isEqual(e,r){try{return o(e,r)}catch(n){if(/stack|recursion/i.test(n?.message||""))return console.warn("isEqual cannot handle circular refs"),!1;throw n}}
1
+ import{isSet as s}from"@stryke/type-checks/is-set";import{isSetString as u}from"@stryke/type-checks/is-set-string";const l=typeof Map=="function",a=typeof Set=="function",c=typeof ArrayBuffer=="function"&&ArrayBuffer.isView!==void 0;function o(e,r){if(e===r)return!0;if(e&&r&&typeof e=="object"&&typeof r=="object"){if(e.constructor!==r.constructor)return!1;let n;if(Array.isArray(e)){if(n=e.length,n!=r.length)return!1;for(let t=n;t--!==0;)if(!o(e[t],r[t]))return!1;return!0}let i;if(l&&e instanceof Map&&r instanceof Map){if(e.size!==r.size)return!1;i=e.entries();let t;for(;!(t=i.next()).done;)if(!r.has(t.value[0]))return!1;for(i=e.entries();!(t=i.next()).done;)if(!o(t.value[1],r.get(t.value[0])))return!1;return!0}if(a&&e instanceof Set&&r instanceof Set){if(e.size!==r.size)return!1;i=e.entries();let t;for(;!(t=i.next()).done;)if(!r.has(t.value[0]))return!1;return!0}if(Array.isArray(e)&&Array.isArray(r)&&c&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(r)){if(n=e.length,n!=r.length)return!1;for(let t=n;t--!==0;)if(e[t]!==r[t])return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf&&typeof e.valueOf=="function"&&typeof r.valueOf=="function")return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString&&typeof e.toString=="function"&&typeof r.toString=="function")return e.toString()===r.toString();const f=Object.keys(e);if(n=f.length,n!==Object.keys(r).length)return!1;for(let t=n;t--!==0;)if(!s(t)||!u(f[t])||!Object.prototype.hasOwnProperty.call(r,f[t]))return!1;for(let t=n;t--!==0;)if(!(Array.isArray(f)&&(f[t]==="_owner"||f[t]==="__v"||f[t]==="__o")&&e.$$typeof)&&(!s(t)||!u(f[t])||!o(e[f[t]],r[f[t]])))return!1;return!0}return e!==e&&r!==r}export function isEqual(e,r){try{return o(e,r)}catch(n){if(/stack|recursion/i.test(n?.message||""))return console.warn("isEqual cannot handle circular refs"),!1;throw n}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stryke/helpers",
3
- "version": "0.4.4",
3
+ "version": "0.4.6",
4
4
  "type": "module",
5
5
  "description": "A package containing miscellaneous helper functions that are used across many different Storm Software projects.",
6
6
  "repository": {
@@ -11,9 +11,9 @@
11
11
  "private": false,
12
12
  "publishConfig": { "access": "public" },
13
13
  "dependencies": {
14
- "@stryke/convert": ">=0.1.3",
15
- "@stryke/type-checks": ">=0.1.3",
16
- "@stryke/types": ">=0.7.2"
14
+ "@stryke/convert": "^0.1.4",
15
+ "@stryke/type-checks": "^0.3.0",
16
+ "@stryke/types": "^0.8.0"
17
17
  },
18
18
  "devDependencies": {},
19
19
  "sideEffects": false,