@stryke/helpers 0.2.1 → 0.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.
@@ -4,187 +4,83 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.deepCopy = deepCopy;
7
- var _typeDetect = _interopRequireDefault(require("type-detect"));
8
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
- const m = typeof Buffer < "u",
10
- S = m ? Buffer.isBuffer.bind(Buffer) : function (r) {
11
- return !1;
12
- },
13
- I = m ? Buffer.from.bind(Buffer) : function (r) {
14
- return r;
15
- };
16
- function U(n, r) {
17
- switch (r) {
18
- case "ArrayBuffer":
19
- return n.slice(0);
20
- case "Boolean":
21
- return !!n.valueOf();
22
- case "Buffer":
23
- return I(n);
24
- case "DataView":
25
- return new DataView(n.buffer);
26
- case "Date":
27
- return new Date(n.getTime());
28
- case "Number":
29
- return Number(n);
30
- case "RegExp":
31
- return new RegExp(n.source, n.flags);
32
- case "String":
33
- return String(n);
34
- case "Float32Array":
35
- return new Float32Array(n);
36
- case "Float64Array":
37
- return new Float64Array(n);
38
- case "Int16Array":
39
- return new Int16Array(n);
40
- case "Int32Array":
41
- return new Int32Array(n);
42
- case "Int8Array":
43
- return new Int8Array(n);
44
- case "Uint16Array":
45
- return new Uint16Array(n);
46
- case "Uint32Array":
47
- return new Uint32Array(n);
48
- case "Uint8Array":
49
- return new Uint8Array(n);
50
- case "Uint8ClampedArray":
51
- return new Uint8ClampedArray(n);
52
- case "Array Iterator":
53
- return n;
54
- case "Map Iterator":
55
- return n;
56
- case "Promise":
57
- return n;
58
- case "Set Iterator":
59
- return n;
60
- case "String Iterator":
61
- return n;
62
- case "function":
63
- return n;
64
- case "global":
65
- return n;
66
- case "WeakMap":
67
- return n;
68
- case "WeakSet":
69
- return n;
70
- case "boolean":
71
- return n;
72
- case "null":
73
- return n;
74
- case "number":
75
- return n;
76
- case "string":
77
- return n;
78
- case "symbol":
79
- return n;
80
- case "undefined":
81
- return n;
82
- case a:
83
- return [];
84
- case c:
85
- return [];
86
- case i:
87
- return new Map();
88
- case u:
89
- return {};
90
- case f:
91
- return new Set();
92
- default:
93
- return n;
94
- }
7
+ function A(r) {
8
+ const t = new ArrayBuffer(r.byteLength);
9
+ return new Uint8Array(t).set(new Uint8Array(r)), t;
95
10
  }
96
- function w(n, r, e = null) {
97
- if (e && r === "Object") {
98
- const t = e(n, r);
99
- if (t !== void 0) return t;
100
- }
101
- return U(n, r);
11
+ function C(r) {
12
+ const t = A(r.buffer);
13
+ return new DataView(t, r.byteOffset, r.byteLength);
102
14
  }
103
- const a = "Arguments",
104
- c = "Array",
105
- u = "Object",
106
- i = "Map",
107
- f = "Set",
108
- M = new Set([a, c, i, u, f]);
109
- function g(n) {
110
- return M.has(n);
15
+ function g(r) {
16
+ return new Date(r.getTime());
111
17
  }
112
- function O(n, r) {
113
- switch (r) {
114
- case a:
115
- case c:
116
- return Object.keys(n);
117
- case u:
118
- return [].concat(Object.keys(n), Object.getOwnPropertySymbols(n));
119
- case i:
120
- case f:
121
- return [...n.keys()];
122
- default:
123
- return [];
124
- }
18
+ function d(r) {
19
+ const t = new Map();
20
+ for (const [n, o] of r.entries()) t.set(deepCopy(n), deepCopy(o));
21
+ return t;
125
22
  }
126
- function V(n, r, e) {
127
- switch (e) {
128
- case a:
129
- case c:
130
- case u:
131
- return n[r];
132
- case i:
133
- return n.get(r);
134
- case f:
135
- return r;
136
- default:
137
- }
138
- }
139
- function B(n, r, e, t) {
140
- switch (t) {
141
- case a:
142
- case c:
143
- case u:
144
- {
145
- n[r] = e;
146
- break;
147
- }
148
- case i:
149
- {
150
- n.set(r, e);
151
- break;
152
- }
153
- case f:
154
- {
155
- n.add(e);
156
- break;
157
- }
158
- default:
159
- }
160
- return n;
161
- }
162
- function A(n) {
163
- return S(n) ? "Buffer" : (0, _typeDetect.default)(n);
23
+ const u = {
24
+ "[object Float32Array]": Float32Array,
25
+ "[object Float64Array]": Float64Array,
26
+ "[object Int8Array]": Int8Array,
27
+ "[object Int16Array]": Int16Array,
28
+ "[object Int32Array]": Int32Array,
29
+ "[object Uint8Array]": Uint8Array,
30
+ "[object Uint16Array]": Uint16Array,
31
+ "[object Uint32Array]": Uint32Array,
32
+ "[object Uint8ClampedArray]": Uint8ClampedArray
33
+ },
34
+ j = {
35
+ "[object Date]": g,
36
+ "[object ArrayBuffer]": A,
37
+ "[object DataView]": C,
38
+ "[object Float32Array]": e,
39
+ "[object Float64Array]": e,
40
+ "[object Int8Array]": e,
41
+ "[object Int16Array]": e,
42
+ "[object Int32Array]": e,
43
+ "[object Uint8Array]": e,
44
+ "[object Uint8ClampedArray]": e,
45
+ "[object Uint16Array]": e,
46
+ "[object Uint32Array]": e,
47
+ "[object BigInt64Array]": e,
48
+ "[object BigUint64Array]": e,
49
+ "[object RegExp]": cloneRegExp,
50
+ "[object Map]": d
51
+ };
52
+ function e(r) {
53
+ try {
54
+ u["[object BigInt64Array]"] = BigInt64Array, u["[object BigUint64Array]"] = BigUint64Array;
55
+ } catch {}
56
+ const t = A(r.buffer),
57
+ n = u[Object.prototype.toString.call(r)];
58
+ if (!n) throw new Error("Unsupported typed array type in `cloneTypedArray`.");
59
+ return new n(t).subarray(r.byteOffset, r.byteOffset + r.length);
164
60
  }
165
- function l(n, r, e, t, y) {
166
- const s = A(n),
167
- p = w(n, s);
168
- if (!g(s)) return p;
169
- const C = O(n, s);
170
- for (const k of C) {
171
- const o = V(n, k, s);
172
- if (t.has(o)) B(r, k, e.get(o), s);else {
173
- const d = A(o),
174
- b = w(o, d);
175
- g(d) && (e.set(o, b), t.add(o)), B(r, k, l(o, b, e, t, y), s);
61
+ function b(r, t, n, o, y) {
62
+ const a = detectType(r),
63
+ i = copy(r, a);
64
+ if (!isCollection(a)) return i;
65
+ const f = getKeys(r, a);
66
+ for (const s of f) {
67
+ const c = getValue(r, s, a);
68
+ if (o.has(c)) setValue(t, s, n.get(c), a);else {
69
+ const p = detectType(c),
70
+ l = copy(c, p);
71
+ isCollection(p) && (n.set(c, l), o.add(c)), setValue(t, s, b(c, l, n, o, y), a);
176
72
  }
177
73
  }
178
- return r;
74
+ return t;
179
75
  }
180
- function deepCopy(n, r) {
76
+ function deepCopy(r, t) {
181
77
  const {
182
- customizer: e = null
183
- } = r ?? {},
184
- t = A(n);
185
- if (!g(t)) return w(n, t, e);
186
- const y = w(n, t, e),
187
- s = new WeakMap([[n, y]]),
188
- p = new WeakSet([n]);
189
- return l(n, y, s, p, e);
78
+ customizer: n = null
79
+ } = t ?? {},
80
+ o = detectType(r);
81
+ if (!isCollection(o)) return copy(r, o, n);
82
+ const y = copy(r, o, n),
83
+ a = new WeakMap([[r, y]]),
84
+ i = new WeakSet([r]);
85
+ return b(r, y, a, i, n);
190
86
  }
@@ -1,4 +1,3 @@
1
- type Customizer = (value: unknown, type: string) => unknown;
2
1
  export type Options = {
3
2
  customizer?: Customizer;
4
3
  };
@@ -10,4 +9,3 @@ export type Options = {
10
9
  * @returns Returns the copied value.
11
10
  */
12
11
  export declare function deepCopy<T extends Record<string, any>>(value: T, options?: Options): T;
13
- export {};
@@ -1 +1 @@
1
- import R from"type-detect";const m=typeof Buffer<"u",S=m?Buffer.isBuffer.bind(Buffer):function(r){return!1},I=m?Buffer.from.bind(Buffer):function(r){return r};function U(n,r){switch(r){case"ArrayBuffer":return n.slice(0);case"Boolean":return!!n.valueOf();case"Buffer":return I(n);case"DataView":return new DataView(n.buffer);case"Date":return new Date(n.getTime());case"Number":return Number(n);case"RegExp":return new RegExp(n.source,n.flags);case"String":return String(n);case"Float32Array":return new Float32Array(n);case"Float64Array":return new Float64Array(n);case"Int16Array":return new Int16Array(n);case"Int32Array":return new Int32Array(n);case"Int8Array":return new Int8Array(n);case"Uint16Array":return new Uint16Array(n);case"Uint32Array":return new Uint32Array(n);case"Uint8Array":return new Uint8Array(n);case"Uint8ClampedArray":return new Uint8ClampedArray(n);case"Array Iterator":return n;case"Map Iterator":return n;case"Promise":return n;case"Set Iterator":return n;case"String Iterator":return n;case"function":return n;case"global":return n;case"WeakMap":return n;case"WeakSet":return n;case"boolean":return n;case"null":return n;case"number":return n;case"string":return n;case"symbol":return n;case"undefined":return n;case a:return[];case c:return[];case i:return new Map;case u:return{};case f:return new Set;default:return n}}function w(n,r,e=null){if(e&&r==="Object"){const t=e(n,r);if(t!==void 0)return t}return U(n,r)}const a="Arguments",c="Array",u="Object",i="Map",f="Set",M=new Set([a,c,i,u,f]);function g(n){return M.has(n)}function O(n,r){switch(r){case a:case c:return Object.keys(n);case u:return[].concat(Object.keys(n),Object.getOwnPropertySymbols(n));case i:case f:return[...n.keys()];default:return[]}}function V(n,r,e){switch(e){case a:case c:case u:return n[r];case i:return n.get(r);case f:return r;default:}}function B(n,r,e,t){switch(t){case a:case c:case u:{n[r]=e;break}case i:{n.set(r,e);break}case f:{n.add(e);break}default:}return n}function A(n){return S(n)?"Buffer":R(n)}function l(n,r,e,t,y){const s=A(n),p=w(n,s);if(!g(s))return p;const C=O(n,s);for(const k of C){const o=V(n,k,s);if(t.has(o))B(r,k,e.get(o),s);else{const d=A(o),b=w(o,d);g(d)&&(e.set(o,b),t.add(o)),B(r,k,l(o,b,e,t,y),s)}}return r}export function deepCopy(n,r){const{customizer:e=null}=r??{},t=A(n);if(!g(t))return w(n,t,e);const y=w(n,t,e),s=new WeakMap([[n,y]]),p=new WeakSet([n]);return l(n,y,s,p,e)}
1
+ function A(r){const t=new ArrayBuffer(r.byteLength);return new Uint8Array(t).set(new Uint8Array(r)),t}function C(r){const t=A(r.buffer);return new DataView(t,r.byteOffset,r.byteLength)}function g(r){return new Date(r.getTime())}function d(r){const t=new Map;for(const[n,o]of r.entries())t.set(deepCopy(n),deepCopy(o));return t}const u={"[object Float32Array]":Float32Array,"[object Float64Array]":Float64Array,"[object Int8Array]":Int8Array,"[object Int16Array]":Int16Array,"[object Int32Array]":Int32Array,"[object Uint8Array]":Uint8Array,"[object Uint16Array]":Uint16Array,"[object Uint32Array]":Uint32Array,"[object Uint8ClampedArray]":Uint8ClampedArray},j={"[object Date]":g,"[object ArrayBuffer]":A,"[object DataView]":C,"[object Float32Array]":e,"[object Float64Array]":e,"[object Int8Array]":e,"[object Int16Array]":e,"[object Int32Array]":e,"[object Uint8Array]":e,"[object Uint8ClampedArray]":e,"[object Uint16Array]":e,"[object Uint32Array]":e,"[object BigInt64Array]":e,"[object BigUint64Array]":e,"[object RegExp]":cloneRegExp,"[object Map]":d};function e(r){try{u["[object BigInt64Array]"]=BigInt64Array,u["[object BigUint64Array]"]=BigUint64Array}catch{}const t=A(r.buffer),n=u[Object.prototype.toString.call(r)];if(!n)throw new Error("Unsupported typed array type in `cloneTypedArray`.");return new n(t).subarray(r.byteOffset,r.byteOffset+r.length)}function b(r,t,n,o,y){const a=detectType(r),i=copy(r,a);if(!isCollection(a))return i;const f=getKeys(r,a);for(const s of f){const c=getValue(r,s,a);if(o.has(c))setValue(t,s,n.get(c),a);else{const p=detectType(c),l=copy(c,p);isCollection(p)&&(n.set(c,l),o.add(c)),setValue(t,s,b(c,l,n,o,y),a)}}return t}export function deepCopy(r,t){const{customizer:n=null}=t??{},o=detectType(r);if(!isCollection(o))return copy(r,o,n);const y=copy(r,o,n),a=new WeakMap([[r,y]]),i=new WeakSet([r]);return b(r,y,a,i,n)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stryke/helpers",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
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": {
@@ -10,7 +10,7 @@
10
10
  },
11
11
  "private": false,
12
12
  "publishConfig": { "access": "public" },
13
- "dependencies": { "type-detect": "^4.1.0", "@stryke/types": ">=0.1.3" },
13
+ "dependencies": { "@stryke/types": ">=0.1.3" },
14
14
  "devDependencies": {},
15
15
  "sideEffects": false,
16
16
  "files": ["dist/**/*"],