Bläddra i källkod

Should not merge arrays as objects.

NaotoshiFujita 3 år sedan
förälder
incheckning
9096b40d11

+ 7 - 1
dist/js/splide.cjs.js

@@ -145,7 +145,13 @@ function assign(object, ...sources) {
 
 function merge(object, source) {
   forOwn(source, (value, key) => {
-    object[key] = isObject(value) ? merge(isObject(object[key]) ? object[key] : {}, value) : value;
+    if (isArray(value)) {
+      object[key] = value.slice();
+    } else if (isObject(value)) {
+      object[key] = merge(isObject(object[key]) ? object[key] : {}, value);
+    } else {
+      object[key] = value;
+    }
   });
   return object;
 }

+ 7 - 1
dist/js/splide.esm.js

@@ -141,7 +141,13 @@ function assign(object, ...sources) {
 
 function merge(object, source) {
   forOwn(source, (value, key) => {
-    object[key] = isObject(value) ? merge(isObject(object[key]) ? object[key] : {}, value) : value;
+    if (isArray(value)) {
+      object[key] = value.slice();
+    } else if (isObject(value)) {
+      object[key] = merge(isObject(object[key]) ? object[key] : {}, value);
+    } else {
+      object[key] = value;
+    }
   });
   return object;
 }

+ 7 - 1
dist/js/splide.js

@@ -166,7 +166,13 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
 
   function merge(object, source) {
     forOwn(source, function (value, key) {
-      object[key] = isObject(value) ? merge(isObject(object[key]) ? object[key] : {}, value) : value;
+      if (isArray(value)) {
+        object[key] = value.slice();
+      } else if (isObject(value)) {
+        object[key] = merge(isObject(object[key]) ? object[key] : {}, value);
+      } else {
+        object[key] = value;
+      }
     });
     return object;
   }

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/js/splide.js.map


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/js/splide.min.js


BIN
dist/js/splide.min.js.gz


+ 1 - 7
dist/types/utils/dom/create/create.d.ts

@@ -1,9 +1,3 @@
-/**
- * Creates a HTML element.
- *
- * @param tag    - A tag name.
- * @param attrs  - Optional. An object with attributes to apply the created element to, or a string with classes.
- * @param parent - Optional. A parent element where the created element is appended.
- */
 export declare function create<K extends keyof HTMLElementTagNameMap>(tag: K, attrs?: Record<string, string | number | boolean> | string | string[], parent?: HTMLElement): HTMLElementTagNameMap[K];
+export declare function create(tag: string, attrs?: Record<string, string | number | boolean> | string | string[], parent?: HTMLElement): HTMLElement;
 //# sourceMappingURL=../../../../../src/js/utils/dom/create/create.d.ts.map

+ 1 - 1
dist/types/utils/dom/create/create.d.ts.map

@@ -1 +1 @@
-{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["create.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,qBAAqB,EAC1D,GAAG,EAAE,CAAC,EACN,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,MAAM,GAAG,MAAM,EAAE,EACrE,MAAM,CAAC,EAAE,WAAW,GACnB,qBAAqB,CAAE,CAAC,CAAE,CAgB5B"}
+{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["create.ts"],"names":[],"mappings":"AAMA,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,qBAAqB,EAC1D,GAAG,EAAE,CAAC,EACN,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,MAAM,GAAG,MAAM,EAAE,EACrE,MAAM,CAAC,EAAE,WAAW,GACnB,qBAAqB,CAAE,CAAC,CAAE,CAAC;AAE9B,wBAAgB,MAAM,CACpB,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,MAAM,GAAG,MAAM,EAAE,EACrE,MAAM,CAAC,EAAE,WAAW,GACnB,WAAW,CAAC"}

+ 1 - 0
dist/types/utils/object/merge/merge.d.ts

@@ -12,6 +12,7 @@ export declare type Merge<T extends object, U extends object> = Omit<T, keyof U>
 declare type Cast<T, U> = T extends U ? T : U;
 /**
  * Recursively merges source properties to the object.
+ * Be aware that this method does not merge arrays. They are just duplicated by `slice()`.
  *
  * @param object - An object to merge properties to.
  * @param source - A source object to merge properties from.

+ 1 - 1
dist/types/utils/object/merge/merge.d.ts.map

@@ -1 +1 @@
-{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["merge.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,oBAAY,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG;KACvE,CAAC,IAAI,CAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAE,GAAI,CAAC,CAAE,CAAC,CAAE,SAAS,MAAM,GACjD,CAAC,CAAE,CAAC,CAAE,SAAS,GAAG,EAAE,GAClB,CAAC,CAAE,CAAC,CAAE,SAAS,GAAG,EAAE,GAClB,KAAK,CAAC,CAAC,CAAE,CAAC,CAAE,CAAE,MAAM,CAAE,GAAG,CAAC,CAAE,CAAC,CAAE,CAAE,MAAM,CAAE,CAAC,GAC1C,CAAC,CAAE,CAAC,CAAE,GACR,CAAC,CAAE,CAAC,CAAE,SAAS,MAAM,GACnB,KAAK,CAAC,CAAC,CAAE,CAAC,CAAE,EAAE,CAAC,CAAE,CAAC,CAAE,CAAC,SAAS,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,KAAK,GAC/D,CAAC,CAAE,CAAC,CAAE,GACV,CAAC,CAAE,CAAC,CAAE;CACX,GAAG,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAErB,aAAK,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEtC;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAM7F"}
+{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["merge.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,oBAAY,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG;KACvE,CAAC,IAAI,CAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAE,GAAI,CAAC,CAAE,CAAC,CAAE,SAAS,MAAM,GACjD,CAAC,CAAE,CAAC,CAAE,SAAS,GAAG,EAAE,GAClB,CAAC,CAAE,CAAC,CAAE,SAAS,GAAG,EAAE,GAClB,KAAK,CAAC,CAAC,CAAE,CAAC,CAAE,CAAE,MAAM,CAAE,GAAG,CAAC,CAAE,CAAC,CAAE,CAAE,MAAM,CAAE,CAAC,GAC1C,CAAC,CAAE,CAAC,CAAE,GACR,CAAC,CAAE,CAAC,CAAE,SAAS,MAAM,GACnB,KAAK,CAAC,CAAC,CAAE,CAAC,CAAE,EAAE,CAAC,CAAE,CAAC,CAAE,CAAC,SAAS,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,KAAK,GAC/D,CAAC,CAAE,CAAC,CAAE,GACV,CAAC,CAAE,CAAC,CAAE;CACX,GAAG,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAErB,aAAK,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEtC;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAY7F"}

+ 12 - 0
src/js/utils/dom/create/create.ts

@@ -4,6 +4,18 @@ import { append } from '../append/append';
 import { setAttribute } from '../setAttribute/setAttribute';
 
 
+export function create<K extends keyof HTMLElementTagNameMap>(
+  tag: K,
+  attrs?: Record<string, string | number | boolean> | string | string[],
+  parent?: HTMLElement
+): HTMLElementTagNameMap[ K ];
+
+export function create(
+  tag: string,
+  attrs?: Record<string, string | number | boolean> | string | string[],
+  parent?: HTMLElement
+): HTMLElement;
+
 /**
  * Creates a HTML element.
  *

+ 9 - 2
src/js/utils/object/merge/merge.ts

@@ -1,4 +1,4 @@
-import { isObject } from '../../type/type';
+import { isArray, isObject } from '../../type/type';
 import { forOwn } from '../forOwn/forOwn';
 
 
@@ -26,6 +26,7 @@ type Cast<T, U> = T extends U ? T : U;
 
 /**
  * Recursively merges source properties to the object.
+ * Be aware that this method does not merge arrays. They are just duplicated by `slice()`.
  *
  * @param object - An object to merge properties to.
  * @param source - A source object to merge properties from.
@@ -34,7 +35,13 @@ type Cast<T, U> = T extends U ? T : U;
  */
 export function merge<T extends object, U extends object>( object: T, source: U ): Merge<T, U> {
   forOwn( source, ( value, key ) => {
-    object[ key ] = isObject( value ) ? merge( isObject( object[ key ] ) ? object[ key ] : {}, value ) : value;
+    if ( isArray( value ) ) {
+      object[ key ] = value.slice();
+    } else if ( isObject( value ) ) {
+      object[ key ] = merge( isObject( object[ key ] ) ? object[ key ] : {}, value );
+    } else {
+      object[ key ] = value;
+    }
   } );
 
   return object as Merge<T, U>;

Vissa filer visades inte eftersom för många filer har ändrats