From c087a4f0a1cadbd592898f13411ab642b765c14c Mon Sep 17 00:00:00 2001 From: Alex Regan Date: Sat, 25 Nov 2017 21:16:26 -0700 Subject: [PATCH] fix: mv obj spread to index signature typing & use arguments only --- dist/lib.common.js | 2 +- dist/lib.common.js.map | 2 +- dist/lib.esm.js | 2 +- dist/lib.esm.js.map | 2 +- dist/lib.js | 2 +- dist/lib.js.map | 2 +- src/index.ts | 3 ++- 7 files changed, 8 insertions(+), 7 deletions(-) diff --git a/dist/lib.common.js b/dist/lib.common.js index e8e1867..20cad98 100644 --- a/dist/lib.common.js +++ b/dist/lib.common.js @@ -1,2 +1,2 @@ -"use strict";function mergeData(...e){let s,a,t={},c=arguments.length;for(;c--;)for(s of Object.keys(arguments[c]))switch(s){case"class":case"style":case"directives":Array.isArray(t[s])||(t[s]=[]),t[s]=t[s].concat(arguments[c][s]);break;case"staticClass":if(!arguments[c][s])break;void 0===t[s]&&(t[s]=""),t[s]&&(t[s]+=" "),t[s]+=arguments[c][s].trim();break;case"on":case"nativeOn":t[s]||(t[s]={});for(a of Object.keys(arguments[c][s]))t[s][a]?t[s][a]=[].concat(t[s][a],arguments[c][s][a]):t[s][a]=arguments[c][s][a];break;case"attrs":case"props":case"domProps":case"scopedSlots":case"staticStyle":case"hook":case"transition":t[s]||(t[s]={}),t[s]=Object.assign({},arguments[c][s],t[s]);break;case"slot":case"key":case"ref":case"tag":case"show":case"keepAlive":default:t[s]||(t[s]=arguments[c][s])}return t}Object.defineProperty(exports,"__esModule",{value:!0}),exports.mergeData=mergeData; +"use strict";function mergeData(){let e,s,a={},t=arguments.length;for(;t--;)for(e of Object.keys(arguments[t]))switch(e){case"class":case"style":case"directives":Array.isArray(a[e])||(a[e]=[]),a[e]=a[e].concat(arguments[t][e]);break;case"staticClass":if(!arguments[t][e])break;void 0===a[e]&&(a[e]=""),a[e]&&(a[e]+=" "),a[e]+=arguments[t][e].trim();break;case"on":case"nativeOn":a[e]||(a[e]={});for(s of Object.keys(arguments[t][e]))a[e][s]?a[e][s]=[].concat(a[e][s],arguments[t][e][s]):a[e][s]=arguments[t][e][s];break;case"attrs":case"props":case"domProps":case"scopedSlots":case"staticStyle":case"hook":case"transition":a[e]||(a[e]={}),a[e]=Object.assign({},arguments[t][e],a[e]);break;case"slot":case"key":case"ref":case"tag":case"show":case"keepAlive":default:a[e]||(a[e]=arguments[t][e])}return a}Object.defineProperty(exports,"__esModule",{value:!0}),exports.mergeData=mergeData; //# sourceMappingURL=lib.common.js.map diff --git a/dist/lib.common.js.map b/dist/lib.common.js.map index 9cddfc4..00a9700 100644 --- a/dist/lib.common.js.map +++ b/dist/lib.common.js.map @@ -1 +1 @@ -{"version":3,"file":"lib.common.js","sources":["../src/index.ts"],"sourcesContent":["import { VNodeData } from \"vue\"\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nfunction mergeData(...vNodeData: VNodeData[]): VNodeData {\n\tlet mergeTarget: VNodeData & { [key: string]: any } = {},\n\t\ti: number = arguments.length,\n\t\tprop: string,\n\t\tevent: string\n\n\t// Allow for variadic argument length.\n\twhile (i--) {\n\t\t// Iterate through the data properties and execute merge strategies\n\t\t// Object.keys eliminates need for hasOwnProperty call\n\t\tfor (prop of Object.keys(arguments[i])) {\n\t\t\tswitch (prop) {\n\t\t\t\t// Array merge strategy (array concatenation)\n\t\t\t\tcase \"class\":\n\t\t\t\tcase \"style\":\n\t\t\t\tcase \"directives\":\n\t\t\t\t\tif (!Array.isArray(mergeTarget[prop])) {\n\t\t\t\t\t\tmergeTarget[prop] = []\n\t\t\t\t\t}\n\t\t\t\t\t// Repackaging in an array allows Vue runtime\n\t\t\t\t\t// to merge class/style bindings regardless of type.\n\t\t\t\t\tmergeTarget[prop] = mergeTarget[prop].concat(arguments[i][prop])\n\t\t\t\t\tbreak\n\t\t\t\t// Space delimited string concatenation strategy\n\t\t\t\tcase \"staticClass\":\n\t\t\t\t\tif (!arguments[i][prop]) {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tif (mergeTarget[prop] === undefined) {\n\t\t\t\t\t\tmergeTarget[prop] = \"\"\n\t\t\t\t\t}\n\t\t\t\t\tif (mergeTarget[prop]) {\n\t\t\t\t\t\t// Not an empty string, so concatenate\n\t\t\t\t\t\tmergeTarget[prop] += \" \"\n\t\t\t\t\t}\n\t\t\t\t\tmergeTarget[prop] += arguments[i][prop].trim()\n\t\t\t\t\tbreak\n\t\t\t\t// Object, the properties of which to merge via array merge strategy (array concatenation).\n\t\t\t\t// Callback merge strategy merges callbacks to the beginning of the array,\n\t\t\t\t// so that the last defined callback will be invoked first.\n\t\t\t\t// This is done since to mimic how Object.assign merging\n\t\t\t\t// uses the last given value to assign.\n\t\t\t\tcase \"on\":\n\t\t\t\tcase \"nativeOn\":\n\t\t\t\t\tif (!mergeTarget[prop]) {\n\t\t\t\t\t\tmergeTarget[prop] = {}\n\t\t\t\t\t}\n\t\t\t\t\tfor (event of Object.keys(arguments[i][prop])) {\n\t\t\t\t\t\t// Concat function to array of functions if callback present.\n\t\t\t\t\t\tif (mergeTarget[prop][event]) {\n\t\t\t\t\t\t\t// Insert current iteration data in beginning of merged array.\n\t\t\t\t\t\t\tmergeTarget[prop][event] = [].concat(mergeTarget[prop][event], arguments[i][prop][event])\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Straight assign.\n\t\t\t\t\t\t\tmergeTarget[prop][event] = arguments[i][prop][event]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t// Object merge strategy\n\t\t\t\tcase \"attrs\":\n\t\t\t\tcase \"props\":\n\t\t\t\tcase \"domProps\":\n\t\t\t\tcase \"scopedSlots\":\n\t\t\t\tcase \"staticStyle\":\n\t\t\t\tcase \"hook\":\n\t\t\t\tcase \"transition\":\n\t\t\t\t\tif (!mergeTarget[prop]) {\n\t\t\t\t\t\tmergeTarget[prop] = {}\n\t\t\t\t\t}\n\t\t\t\t\tmergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n\t\t\t\t\tbreak\n\t\t\t\t// Reassignment strategy (no merge)\n\t\t\t\tcase \"slot\":\n\t\t\t\tcase \"key\":\n\t\t\t\tcase \"ref\":\n\t\t\t\tcase \"tag\":\n\t\t\t\tcase \"show\":\n\t\t\t\tcase \"keepAlive\":\n\t\t\t\tdefault:\n\t\t\t\t\tif (!mergeTarget[prop]) {\n\t\t\t\t\t\tmergeTarget[prop] = arguments[i][prop]\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn mergeTarget\n}\n\nexport { mergeData }\n"],"names":["vNodeData","prop","event","mergeTarget","i","arguments","length","Object","keys","Array","isArray","concat","undefined","trim"],"mappings":"aAOA,sBAAsBA,GACrB,IAECC,EACAC,EAHGC,KACHC,EAAYC,UAAUC,OAKvB,KAAOF,KAGN,IAAKH,KAAQM,OAAOC,KAAKH,UAAUD,IAClC,OAAQH,GAEP,IAAK,QACL,IAAK,QACL,IAAK,aACCQ,MAAMC,QAAQP,EAAYF,MAC9BE,EAAYF,OAIbE,EAAYF,GAAQE,EAAYF,GAAMU,OAAON,UAAUD,GAAGH,IAC1D,MAED,IAAK,cACJ,IAAKI,UAAUD,GAAGH,GACjB,WAEyBW,IAAtBT,EAAYF,KACfE,EAAYF,GAAQ,IAEjBE,EAAYF,KAEfE,EAAYF,IAAS,KAEtBE,EAAYF,IAASI,UAAUD,GAAGH,GAAMY,OACxC,MAMD,IAAK,KACL,IAAK,WACCV,EAAYF,KAChBE,EAAYF,OAEb,IAAKC,KAASK,OAAOC,KAAKH,UAAUD,GAAGH,IAElCE,EAAYF,GAAMC,GAErBC,EAAYF,GAAMC,MAAYS,OAAOR,EAAYF,GAAMC,GAAQG,UAAUD,GAAGH,GAAMC,IAGlFC,EAAYF,GAAMC,GAASG,UAAUD,GAAGH,GAAMC,GAGhD,MAED,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,cACL,IAAK,cACL,IAAK,OACL,IAAK,aACCC,EAAYF,KAChBE,EAAYF,OAEbE,EAAYF,oBAAaI,UAAUD,GAAGH,GAAUE,EAAYF,IAC5D,MAED,IAAK,OACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,OACL,IAAK,YACL,QACME,EAAYF,KAChBE,EAAYF,GAAQI,UAAUD,GAAGH,IAMtC,OAAOE"} \ No newline at end of file +{"version":3,"file":"lib.common.js","sources":["../src/index.ts"],"sourcesContent":["import { VNodeData } from \"vue\"\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nfunction mergeData(...vNodeData: VNodeData[]): VNodeData\nfunction mergeData(): VNodeData {\n\tlet mergeTarget: VNodeData & { [key: string]: any } = {},\n\t\ti: number = arguments.length,\n\t\tprop: string,\n\t\tevent: string\n\n\t// Allow for variadic argument length.\n\twhile (i--) {\n\t\t// Iterate through the data properties and execute merge strategies\n\t\t// Object.keys eliminates need for hasOwnProperty call\n\t\tfor (prop of Object.keys(arguments[i])) {\n\t\t\tswitch (prop) {\n\t\t\t\t// Array merge strategy (array concatenation)\n\t\t\t\tcase \"class\":\n\t\t\t\tcase \"style\":\n\t\t\t\tcase \"directives\":\n\t\t\t\t\tif (!Array.isArray(mergeTarget[prop])) {\n\t\t\t\t\t\tmergeTarget[prop] = []\n\t\t\t\t\t}\n\t\t\t\t\t// Repackaging in an array allows Vue runtime\n\t\t\t\t\t// to merge class/style bindings regardless of type.\n\t\t\t\t\tmergeTarget[prop] = mergeTarget[prop].concat(arguments[i][prop])\n\t\t\t\t\tbreak\n\t\t\t\t// Space delimited string concatenation strategy\n\t\t\t\tcase \"staticClass\":\n\t\t\t\t\tif (!arguments[i][prop]) {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tif (mergeTarget[prop] === undefined) {\n\t\t\t\t\t\tmergeTarget[prop] = \"\"\n\t\t\t\t\t}\n\t\t\t\t\tif (mergeTarget[prop]) {\n\t\t\t\t\t\t// Not an empty string, so concatenate\n\t\t\t\t\t\tmergeTarget[prop] += \" \"\n\t\t\t\t\t}\n\t\t\t\t\tmergeTarget[prop] += arguments[i][prop].trim()\n\t\t\t\t\tbreak\n\t\t\t\t// Object, the properties of which to merge via array merge strategy (array concatenation).\n\t\t\t\t// Callback merge strategy merges callbacks to the beginning of the array,\n\t\t\t\t// so that the last defined callback will be invoked first.\n\t\t\t\t// This is done since to mimic how Object.assign merging\n\t\t\t\t// uses the last given value to assign.\n\t\t\t\tcase \"on\":\n\t\t\t\tcase \"nativeOn\":\n\t\t\t\t\tif (!mergeTarget[prop]) {\n\t\t\t\t\t\tmergeTarget[prop] = {}\n\t\t\t\t\t}\n\t\t\t\t\tfor (event of Object.keys(arguments[i][prop])) {\n\t\t\t\t\t\t// Concat function to array of functions if callback present.\n\t\t\t\t\t\tif (mergeTarget[prop][event]) {\n\t\t\t\t\t\t\t// Insert current iteration data in beginning of merged array.\n\t\t\t\t\t\t\tmergeTarget[prop][event] = [].concat(mergeTarget[prop][event], arguments[i][prop][event])\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Straight assign.\n\t\t\t\t\t\t\tmergeTarget[prop][event] = arguments[i][prop][event]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t// Object merge strategy\n\t\t\t\tcase \"attrs\":\n\t\t\t\tcase \"props\":\n\t\t\t\tcase \"domProps\":\n\t\t\t\tcase \"scopedSlots\":\n\t\t\t\tcase \"staticStyle\":\n\t\t\t\tcase \"hook\":\n\t\t\t\tcase \"transition\":\n\t\t\t\t\tif (!mergeTarget[prop]) {\n\t\t\t\t\t\tmergeTarget[prop] = {}\n\t\t\t\t\t}\n\t\t\t\t\tmergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n\t\t\t\t\tbreak\n\t\t\t\t// Reassignment strategy (no merge)\n\t\t\t\tcase \"slot\":\n\t\t\t\tcase \"key\":\n\t\t\t\tcase \"ref\":\n\t\t\t\tcase \"tag\":\n\t\t\t\tcase \"show\":\n\t\t\t\tcase \"keepAlive\":\n\t\t\t\tdefault:\n\t\t\t\t\tif (!mergeTarget[prop]) {\n\t\t\t\t\t\tmergeTarget[prop] = arguments[i][prop]\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn mergeTarget\n}\n\nexport { mergeData }\n"],"names":["prop","event","mergeTarget","i","arguments","length","Object","keys","Array","isArray","concat","undefined","trim"],"mappings":"aAQA,qBACC,IAECA,EACAC,EAHGC,KACHC,EAAYC,UAAUC,OAKvB,KAAOF,KAGN,IAAKH,KAAQM,OAAOC,KAAKH,UAAUD,IAClC,OAAQH,GAEP,IAAK,QACL,IAAK,QACL,IAAK,aACCQ,MAAMC,QAAQP,EAAYF,MAC9BE,EAAYF,OAIbE,EAAYF,GAAQE,EAAYF,GAAMU,OAAON,UAAUD,GAAGH,IAC1D,MAED,IAAK,cACJ,IAAKI,UAAUD,GAAGH,GACjB,WAEyBW,IAAtBT,EAAYF,KACfE,EAAYF,GAAQ,IAEjBE,EAAYF,KAEfE,EAAYF,IAAS,KAEtBE,EAAYF,IAASI,UAAUD,GAAGH,GAAMY,OACxC,MAMD,IAAK,KACL,IAAK,WACCV,EAAYF,KAChBE,EAAYF,OAEb,IAAKC,KAASK,OAAOC,KAAKH,UAAUD,GAAGH,IAElCE,EAAYF,GAAMC,GAErBC,EAAYF,GAAMC,MAAYS,OAAOR,EAAYF,GAAMC,GAAQG,UAAUD,GAAGH,GAAMC,IAGlFC,EAAYF,GAAMC,GAASG,UAAUD,GAAGH,GAAMC,GAGhD,MAED,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,cACL,IAAK,cACL,IAAK,OACL,IAAK,aACCC,EAAYF,KAChBE,EAAYF,OAEbE,EAAYF,oBAAaI,UAAUD,GAAGH,GAAUE,EAAYF,IAC5D,MAED,IAAK,OACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,OACL,IAAK,YACL,QACME,EAAYF,KAChBE,EAAYF,GAAQI,UAAUD,GAAGH,IAMtC,OAAOE"} \ No newline at end of file diff --git a/dist/lib.esm.js b/dist/lib.esm.js index 1e825b8..b768c4d 100644 --- a/dist/lib.esm.js +++ b/dist/lib.esm.js @@ -1,2 +1,2 @@ -function mergeData(...e){let a,s,c={},t=arguments.length;for(;t--;)for(a of Object.keys(arguments[t]))switch(a){case"class":case"style":case"directives":Array.isArray(c[a])||(c[a]=[]),c[a]=c[a].concat(arguments[t][a]);break;case"staticClass":if(!arguments[t][a])break;void 0===c[a]&&(c[a]=""),c[a]&&(c[a]+=" "),c[a]+=arguments[t][a].trim();break;case"on":case"nativeOn":c[a]||(c[a]={});for(s of Object.keys(arguments[t][a]))c[a][s]?c[a][s]=[].concat(c[a][s],arguments[t][a][s]):c[a][s]=arguments[t][a][s];break;case"attrs":case"props":case"domProps":case"scopedSlots":case"staticStyle":case"hook":case"transition":c[a]||(c[a]={}),c[a]=Object.assign({},arguments[t][a],c[a]);break;case"slot":case"key":case"ref":case"tag":case"show":case"keepAlive":default:c[a]||(c[a]=arguments[t][a])}return c}export{mergeData}; +function mergeData(){let e,a,s={},c=arguments.length;for(;c--;)for(e of Object.keys(arguments[c]))switch(e){case"class":case"style":case"directives":Array.isArray(s[e])||(s[e]=[]),s[e]=s[e].concat(arguments[c][e]);break;case"staticClass":if(!arguments[c][e])break;void 0===s[e]&&(s[e]=""),s[e]&&(s[e]+=" "),s[e]+=arguments[c][e].trim();break;case"on":case"nativeOn":s[e]||(s[e]={});for(a of Object.keys(arguments[c][e]))s[e][a]?s[e][a]=[].concat(s[e][a],arguments[c][e][a]):s[e][a]=arguments[c][e][a];break;case"attrs":case"props":case"domProps":case"scopedSlots":case"staticStyle":case"hook":case"transition":s[e]||(s[e]={}),s[e]=Object.assign({},arguments[c][e],s[e]);break;case"slot":case"key":case"ref":case"tag":case"show":case"keepAlive":default:s[e]||(s[e]=arguments[c][e])}return s}export{mergeData}; //# sourceMappingURL=lib.esm.js.map diff --git a/dist/lib.esm.js.map b/dist/lib.esm.js.map index f31b6a1..7e09cf7 100644 --- a/dist/lib.esm.js.map +++ b/dist/lib.esm.js.map @@ -1 +1 @@ -{"version":3,"file":"lib.esm.js","sources":["../src/index.ts"],"sourcesContent":["import { VNodeData } from \"vue\"\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nfunction mergeData(...vNodeData: VNodeData[]): VNodeData {\n\tlet mergeTarget: VNodeData & { [key: string]: any } = {},\n\t\ti: number = arguments.length,\n\t\tprop: string,\n\t\tevent: string\n\n\t// Allow for variadic argument length.\n\twhile (i--) {\n\t\t// Iterate through the data properties and execute merge strategies\n\t\t// Object.keys eliminates need for hasOwnProperty call\n\t\tfor (prop of Object.keys(arguments[i])) {\n\t\t\tswitch (prop) {\n\t\t\t\t// Array merge strategy (array concatenation)\n\t\t\t\tcase \"class\":\n\t\t\t\tcase \"style\":\n\t\t\t\tcase \"directives\":\n\t\t\t\t\tif (!Array.isArray(mergeTarget[prop])) {\n\t\t\t\t\t\tmergeTarget[prop] = []\n\t\t\t\t\t}\n\t\t\t\t\t// Repackaging in an array allows Vue runtime\n\t\t\t\t\t// to merge class/style bindings regardless of type.\n\t\t\t\t\tmergeTarget[prop] = mergeTarget[prop].concat(arguments[i][prop])\n\t\t\t\t\tbreak\n\t\t\t\t// Space delimited string concatenation strategy\n\t\t\t\tcase \"staticClass\":\n\t\t\t\t\tif (!arguments[i][prop]) {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tif (mergeTarget[prop] === undefined) {\n\t\t\t\t\t\tmergeTarget[prop] = \"\"\n\t\t\t\t\t}\n\t\t\t\t\tif (mergeTarget[prop]) {\n\t\t\t\t\t\t// Not an empty string, so concatenate\n\t\t\t\t\t\tmergeTarget[prop] += \" \"\n\t\t\t\t\t}\n\t\t\t\t\tmergeTarget[prop] += arguments[i][prop].trim()\n\t\t\t\t\tbreak\n\t\t\t\t// Object, the properties of which to merge via array merge strategy (array concatenation).\n\t\t\t\t// Callback merge strategy merges callbacks to the beginning of the array,\n\t\t\t\t// so that the last defined callback will be invoked first.\n\t\t\t\t// This is done since to mimic how Object.assign merging\n\t\t\t\t// uses the last given value to assign.\n\t\t\t\tcase \"on\":\n\t\t\t\tcase \"nativeOn\":\n\t\t\t\t\tif (!mergeTarget[prop]) {\n\t\t\t\t\t\tmergeTarget[prop] = {}\n\t\t\t\t\t}\n\t\t\t\t\tfor (event of Object.keys(arguments[i][prop])) {\n\t\t\t\t\t\t// Concat function to array of functions if callback present.\n\t\t\t\t\t\tif (mergeTarget[prop][event]) {\n\t\t\t\t\t\t\t// Insert current iteration data in beginning of merged array.\n\t\t\t\t\t\t\tmergeTarget[prop][event] = [].concat(mergeTarget[prop][event], arguments[i][prop][event])\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Straight assign.\n\t\t\t\t\t\t\tmergeTarget[prop][event] = arguments[i][prop][event]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t// Object merge strategy\n\t\t\t\tcase \"attrs\":\n\t\t\t\tcase \"props\":\n\t\t\t\tcase \"domProps\":\n\t\t\t\tcase \"scopedSlots\":\n\t\t\t\tcase \"staticStyle\":\n\t\t\t\tcase \"hook\":\n\t\t\t\tcase \"transition\":\n\t\t\t\t\tif (!mergeTarget[prop]) {\n\t\t\t\t\t\tmergeTarget[prop] = {}\n\t\t\t\t\t}\n\t\t\t\t\tmergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n\t\t\t\t\tbreak\n\t\t\t\t// Reassignment strategy (no merge)\n\t\t\t\tcase \"slot\":\n\t\t\t\tcase \"key\":\n\t\t\t\tcase \"ref\":\n\t\t\t\tcase \"tag\":\n\t\t\t\tcase \"show\":\n\t\t\t\tcase \"keepAlive\":\n\t\t\t\tdefault:\n\t\t\t\t\tif (!mergeTarget[prop]) {\n\t\t\t\t\t\tmergeTarget[prop] = arguments[i][prop]\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn mergeTarget\n}\n\nexport { mergeData }\n"],"names":["vNodeData","prop","event","mergeTarget","i","arguments","length","Object","keys","Array","isArray","concat","undefined","trim"],"mappings":"AAOA,sBAAsBA,GACrB,IAECC,EACAC,EAHGC,KACHC,EAAYC,UAAUC,OAKvB,KAAOF,KAGN,IAAKH,KAAQM,OAAOC,KAAKH,UAAUD,IAClC,OAAQH,GAEP,IAAK,QACL,IAAK,QACL,IAAK,aACCQ,MAAMC,QAAQP,EAAYF,MAC9BE,EAAYF,OAIbE,EAAYF,GAAQE,EAAYF,GAAMU,OAAON,UAAUD,GAAGH,IAC1D,MAED,IAAK,cACJ,IAAKI,UAAUD,GAAGH,GACjB,WAEyBW,IAAtBT,EAAYF,KACfE,EAAYF,GAAQ,IAEjBE,EAAYF,KAEfE,EAAYF,IAAS,KAEtBE,EAAYF,IAASI,UAAUD,GAAGH,GAAMY,OACxC,MAMD,IAAK,KACL,IAAK,WACCV,EAAYF,KAChBE,EAAYF,OAEb,IAAKC,KAASK,OAAOC,KAAKH,UAAUD,GAAGH,IAElCE,EAAYF,GAAMC,GAErBC,EAAYF,GAAMC,MAAYS,OAAOR,EAAYF,GAAMC,GAAQG,UAAUD,GAAGH,GAAMC,IAGlFC,EAAYF,GAAMC,GAASG,UAAUD,GAAGH,GAAMC,GAGhD,MAED,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,cACL,IAAK,cACL,IAAK,OACL,IAAK,aACCC,EAAYF,KAChBE,EAAYF,OAEbE,EAAYF,oBAAaI,UAAUD,GAAGH,GAAUE,EAAYF,IAC5D,MAED,IAAK,OACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,OACL,IAAK,YACL,QACME,EAAYF,KAChBE,EAAYF,GAAQI,UAAUD,GAAGH,IAMtC,OAAOE"} \ No newline at end of file +{"version":3,"file":"lib.esm.js","sources":["../src/index.ts"],"sourcesContent":["import { VNodeData } from \"vue\"\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nfunction mergeData(...vNodeData: VNodeData[]): VNodeData\nfunction mergeData(): VNodeData {\n\tlet mergeTarget: VNodeData & { [key: string]: any } = {},\n\t\ti: number = arguments.length,\n\t\tprop: string,\n\t\tevent: string\n\n\t// Allow for variadic argument length.\n\twhile (i--) {\n\t\t// Iterate through the data properties and execute merge strategies\n\t\t// Object.keys eliminates need for hasOwnProperty call\n\t\tfor (prop of Object.keys(arguments[i])) {\n\t\t\tswitch (prop) {\n\t\t\t\t// Array merge strategy (array concatenation)\n\t\t\t\tcase \"class\":\n\t\t\t\tcase \"style\":\n\t\t\t\tcase \"directives\":\n\t\t\t\t\tif (!Array.isArray(mergeTarget[prop])) {\n\t\t\t\t\t\tmergeTarget[prop] = []\n\t\t\t\t\t}\n\t\t\t\t\t// Repackaging in an array allows Vue runtime\n\t\t\t\t\t// to merge class/style bindings regardless of type.\n\t\t\t\t\tmergeTarget[prop] = mergeTarget[prop].concat(arguments[i][prop])\n\t\t\t\t\tbreak\n\t\t\t\t// Space delimited string concatenation strategy\n\t\t\t\tcase \"staticClass\":\n\t\t\t\t\tif (!arguments[i][prop]) {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tif (mergeTarget[prop] === undefined) {\n\t\t\t\t\t\tmergeTarget[prop] = \"\"\n\t\t\t\t\t}\n\t\t\t\t\tif (mergeTarget[prop]) {\n\t\t\t\t\t\t// Not an empty string, so concatenate\n\t\t\t\t\t\tmergeTarget[prop] += \" \"\n\t\t\t\t\t}\n\t\t\t\t\tmergeTarget[prop] += arguments[i][prop].trim()\n\t\t\t\t\tbreak\n\t\t\t\t// Object, the properties of which to merge via array merge strategy (array concatenation).\n\t\t\t\t// Callback merge strategy merges callbacks to the beginning of the array,\n\t\t\t\t// so that the last defined callback will be invoked first.\n\t\t\t\t// This is done since to mimic how Object.assign merging\n\t\t\t\t// uses the last given value to assign.\n\t\t\t\tcase \"on\":\n\t\t\t\tcase \"nativeOn\":\n\t\t\t\t\tif (!mergeTarget[prop]) {\n\t\t\t\t\t\tmergeTarget[prop] = {}\n\t\t\t\t\t}\n\t\t\t\t\tfor (event of Object.keys(arguments[i][prop])) {\n\t\t\t\t\t\t// Concat function to array of functions if callback present.\n\t\t\t\t\t\tif (mergeTarget[prop][event]) {\n\t\t\t\t\t\t\t// Insert current iteration data in beginning of merged array.\n\t\t\t\t\t\t\tmergeTarget[prop][event] = [].concat(mergeTarget[prop][event], arguments[i][prop][event])\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Straight assign.\n\t\t\t\t\t\t\tmergeTarget[prop][event] = arguments[i][prop][event]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t// Object merge strategy\n\t\t\t\tcase \"attrs\":\n\t\t\t\tcase \"props\":\n\t\t\t\tcase \"domProps\":\n\t\t\t\tcase \"scopedSlots\":\n\t\t\t\tcase \"staticStyle\":\n\t\t\t\tcase \"hook\":\n\t\t\t\tcase \"transition\":\n\t\t\t\t\tif (!mergeTarget[prop]) {\n\t\t\t\t\t\tmergeTarget[prop] = {}\n\t\t\t\t\t}\n\t\t\t\t\tmergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n\t\t\t\t\tbreak\n\t\t\t\t// Reassignment strategy (no merge)\n\t\t\t\tcase \"slot\":\n\t\t\t\tcase \"key\":\n\t\t\t\tcase \"ref\":\n\t\t\t\tcase \"tag\":\n\t\t\t\tcase \"show\":\n\t\t\t\tcase \"keepAlive\":\n\t\t\t\tdefault:\n\t\t\t\t\tif (!mergeTarget[prop]) {\n\t\t\t\t\t\tmergeTarget[prop] = arguments[i][prop]\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn mergeTarget\n}\n\nexport { mergeData }\n"],"names":["prop","event","mergeTarget","i","arguments","length","Object","keys","Array","isArray","concat","undefined","trim"],"mappings":"AAQA,qBACC,IAECA,EACAC,EAHGC,KACHC,EAAYC,UAAUC,OAKvB,KAAOF,KAGN,IAAKH,KAAQM,OAAOC,KAAKH,UAAUD,IAClC,OAAQH,GAEP,IAAK,QACL,IAAK,QACL,IAAK,aACCQ,MAAMC,QAAQP,EAAYF,MAC9BE,EAAYF,OAIbE,EAAYF,GAAQE,EAAYF,GAAMU,OAAON,UAAUD,GAAGH,IAC1D,MAED,IAAK,cACJ,IAAKI,UAAUD,GAAGH,GACjB,WAEyBW,IAAtBT,EAAYF,KACfE,EAAYF,GAAQ,IAEjBE,EAAYF,KAEfE,EAAYF,IAAS,KAEtBE,EAAYF,IAASI,UAAUD,GAAGH,GAAMY,OACxC,MAMD,IAAK,KACL,IAAK,WACCV,EAAYF,KAChBE,EAAYF,OAEb,IAAKC,KAASK,OAAOC,KAAKH,UAAUD,GAAGH,IAElCE,EAAYF,GAAMC,GAErBC,EAAYF,GAAMC,MAAYS,OAAOR,EAAYF,GAAMC,GAAQG,UAAUD,GAAGH,GAAMC,IAGlFC,EAAYF,GAAMC,GAASG,UAAUD,GAAGH,GAAMC,GAGhD,MAED,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,cACL,IAAK,cACL,IAAK,OACL,IAAK,aACCC,EAAYF,KAChBE,EAAYF,OAEbE,EAAYF,oBAAaI,UAAUD,GAAGH,GAAUE,EAAYF,IAC5D,MAED,IAAK,OACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,OACL,IAAK,YACL,QACME,EAAYF,KAChBE,EAAYF,GAAQI,UAAUD,GAAGH,IAMtC,OAAOE"} \ No newline at end of file diff --git a/dist/lib.js b/dist/lib.js index aa4f815..967c0a2 100644 --- a/dist/lib.js +++ b/dist/lib.js @@ -1,2 +1,2 @@ -var mergeData=function(e){"use strict";return e.mergeData=function(...e){let a,s,c={},t=arguments.length;for(;t--;)for(a of Object.keys(arguments[t]))switch(a){case"class":case"style":case"directives":Array.isArray(c[a])||(c[a]=[]),c[a]=c[a].concat(arguments[t][a]);break;case"staticClass":if(!arguments[t][a])break;void 0===c[a]&&(c[a]=""),c[a]&&(c[a]+=" "),c[a]+=arguments[t][a].trim();break;case"on":case"nativeOn":c[a]||(c[a]={});for(s of Object.keys(arguments[t][a]))c[a][s]?c[a][s]=[].concat(c[a][s],arguments[t][a][s]):c[a][s]=arguments[t][a][s];break;case"attrs":case"props":case"domProps":case"scopedSlots":case"staticStyle":case"hook":case"transition":c[a]||(c[a]={}),c[a]=Object.assign({},arguments[t][a],c[a]);break;case"slot":case"key":case"ref":case"tag":case"show":case"keepAlive":default:c[a]||(c[a]=arguments[t][a])}return c},e}({}); +var mergeData=function(e){"use strict";return e.mergeData=function(){let e,a,s={},c=arguments.length;for(;c--;)for(e of Object.keys(arguments[c]))switch(e){case"class":case"style":case"directives":Array.isArray(s[e])||(s[e]=[]),s[e]=s[e].concat(arguments[c][e]);break;case"staticClass":if(!arguments[c][e])break;void 0===s[e]&&(s[e]=""),s[e]&&(s[e]+=" "),s[e]+=arguments[c][e].trim();break;case"on":case"nativeOn":s[e]||(s[e]={});for(a of Object.keys(arguments[c][e]))s[e][a]?s[e][a]=[].concat(s[e][a],arguments[c][e][a]):s[e][a]=arguments[c][e][a];break;case"attrs":case"props":case"domProps":case"scopedSlots":case"staticStyle":case"hook":case"transition":s[e]||(s[e]={}),s[e]=Object.assign({},arguments[c][e],s[e]);break;case"slot":case"key":case"ref":case"tag":case"show":case"keepAlive":default:s[e]||(s[e]=arguments[c][e])}return s},e}({}); //# sourceMappingURL=lib.js.map diff --git a/dist/lib.js.map b/dist/lib.js.map index 083b715..8a4b977 100644 --- a/dist/lib.js.map +++ b/dist/lib.js.map @@ -1 +1 @@ -{"version":3,"file":"lib.js","sources":["../src/index.ts"],"sourcesContent":["import { VNodeData } from \"vue\"\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nfunction mergeData(...vNodeData: VNodeData[]): VNodeData {\n\tlet mergeTarget: VNodeData & { [key: string]: any } = {},\n\t\ti: number = arguments.length,\n\t\tprop: string,\n\t\tevent: string\n\n\t// Allow for variadic argument length.\n\twhile (i--) {\n\t\t// Iterate through the data properties and execute merge strategies\n\t\t// Object.keys eliminates need for hasOwnProperty call\n\t\tfor (prop of Object.keys(arguments[i])) {\n\t\t\tswitch (prop) {\n\t\t\t\t// Array merge strategy (array concatenation)\n\t\t\t\tcase \"class\":\n\t\t\t\tcase \"style\":\n\t\t\t\tcase \"directives\":\n\t\t\t\t\tif (!Array.isArray(mergeTarget[prop])) {\n\t\t\t\t\t\tmergeTarget[prop] = []\n\t\t\t\t\t}\n\t\t\t\t\t// Repackaging in an array allows Vue runtime\n\t\t\t\t\t// to merge class/style bindings regardless of type.\n\t\t\t\t\tmergeTarget[prop] = mergeTarget[prop].concat(arguments[i][prop])\n\t\t\t\t\tbreak\n\t\t\t\t// Space delimited string concatenation strategy\n\t\t\t\tcase \"staticClass\":\n\t\t\t\t\tif (!arguments[i][prop]) {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tif (mergeTarget[prop] === undefined) {\n\t\t\t\t\t\tmergeTarget[prop] = \"\"\n\t\t\t\t\t}\n\t\t\t\t\tif (mergeTarget[prop]) {\n\t\t\t\t\t\t// Not an empty string, so concatenate\n\t\t\t\t\t\tmergeTarget[prop] += \" \"\n\t\t\t\t\t}\n\t\t\t\t\tmergeTarget[prop] += arguments[i][prop].trim()\n\t\t\t\t\tbreak\n\t\t\t\t// Object, the properties of which to merge via array merge strategy (array concatenation).\n\t\t\t\t// Callback merge strategy merges callbacks to the beginning of the array,\n\t\t\t\t// so that the last defined callback will be invoked first.\n\t\t\t\t// This is done since to mimic how Object.assign merging\n\t\t\t\t// uses the last given value to assign.\n\t\t\t\tcase \"on\":\n\t\t\t\tcase \"nativeOn\":\n\t\t\t\t\tif (!mergeTarget[prop]) {\n\t\t\t\t\t\tmergeTarget[prop] = {}\n\t\t\t\t\t}\n\t\t\t\t\tfor (event of Object.keys(arguments[i][prop])) {\n\t\t\t\t\t\t// Concat function to array of functions if callback present.\n\t\t\t\t\t\tif (mergeTarget[prop][event]) {\n\t\t\t\t\t\t\t// Insert current iteration data in beginning of merged array.\n\t\t\t\t\t\t\tmergeTarget[prop][event] = [].concat(mergeTarget[prop][event], arguments[i][prop][event])\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Straight assign.\n\t\t\t\t\t\t\tmergeTarget[prop][event] = arguments[i][prop][event]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t// Object merge strategy\n\t\t\t\tcase \"attrs\":\n\t\t\t\tcase \"props\":\n\t\t\t\tcase \"domProps\":\n\t\t\t\tcase \"scopedSlots\":\n\t\t\t\tcase \"staticStyle\":\n\t\t\t\tcase \"hook\":\n\t\t\t\tcase \"transition\":\n\t\t\t\t\tif (!mergeTarget[prop]) {\n\t\t\t\t\t\tmergeTarget[prop] = {}\n\t\t\t\t\t}\n\t\t\t\t\tmergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n\t\t\t\t\tbreak\n\t\t\t\t// Reassignment strategy (no merge)\n\t\t\t\tcase \"slot\":\n\t\t\t\tcase \"key\":\n\t\t\t\tcase \"ref\":\n\t\t\t\tcase \"tag\":\n\t\t\t\tcase \"show\":\n\t\t\t\tcase \"keepAlive\":\n\t\t\t\tdefault:\n\t\t\t\t\tif (!mergeTarget[prop]) {\n\t\t\t\t\t\tmergeTarget[prop] = arguments[i][prop]\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn mergeTarget\n}\n\nexport { mergeData }\n"],"names":["vNodeData","prop","event","mergeTarget","i","arguments","length","Object","keys","Array","isArray","concat","undefined","trim"],"mappings":"0DAOA,YAAsBA,GACrB,IAECC,EACAC,EAHGC,KACHC,EAAYC,UAAUC,OAKvB,KAAOF,KAGN,IAAKH,KAAQM,OAAOC,KAAKH,UAAUD,IAClC,OAAQH,GAEP,IAAK,QACL,IAAK,QACL,IAAK,aACCQ,MAAMC,QAAQP,EAAYF,MAC9BE,EAAYF,OAIbE,EAAYF,GAAQE,EAAYF,GAAMU,OAAON,UAAUD,GAAGH,IAC1D,MAED,IAAK,cACJ,IAAKI,UAAUD,GAAGH,GACjB,WAEyBW,IAAtBT,EAAYF,KACfE,EAAYF,GAAQ,IAEjBE,EAAYF,KAEfE,EAAYF,IAAS,KAEtBE,EAAYF,IAASI,UAAUD,GAAGH,GAAMY,OACxC,MAMD,IAAK,KACL,IAAK,WACCV,EAAYF,KAChBE,EAAYF,OAEb,IAAKC,KAASK,OAAOC,KAAKH,UAAUD,GAAGH,IAElCE,EAAYF,GAAMC,GAErBC,EAAYF,GAAMC,MAAYS,OAAOR,EAAYF,GAAMC,GAAQG,UAAUD,GAAGH,GAAMC,IAGlFC,EAAYF,GAAMC,GAASG,UAAUD,GAAGH,GAAMC,GAGhD,MAED,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,cACL,IAAK,cACL,IAAK,OACL,IAAK,aACCC,EAAYF,KAChBE,EAAYF,OAEbE,EAAYF,oBAAaI,UAAUD,GAAGH,GAAUE,EAAYF,IAC5D,MAED,IAAK,OACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,OACL,IAAK,YACL,QACME,EAAYF,KAChBE,EAAYF,GAAQI,UAAUD,GAAGH,IAMtC,OAAOE"} \ No newline at end of file +{"version":3,"file":"lib.js","sources":["../src/index.ts"],"sourcesContent":["import { VNodeData } from \"vue\"\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nfunction mergeData(...vNodeData: VNodeData[]): VNodeData\nfunction mergeData(): VNodeData {\n\tlet mergeTarget: VNodeData & { [key: string]: any } = {},\n\t\ti: number = arguments.length,\n\t\tprop: string,\n\t\tevent: string\n\n\t// Allow for variadic argument length.\n\twhile (i--) {\n\t\t// Iterate through the data properties and execute merge strategies\n\t\t// Object.keys eliminates need for hasOwnProperty call\n\t\tfor (prop of Object.keys(arguments[i])) {\n\t\t\tswitch (prop) {\n\t\t\t\t// Array merge strategy (array concatenation)\n\t\t\t\tcase \"class\":\n\t\t\t\tcase \"style\":\n\t\t\t\tcase \"directives\":\n\t\t\t\t\tif (!Array.isArray(mergeTarget[prop])) {\n\t\t\t\t\t\tmergeTarget[prop] = []\n\t\t\t\t\t}\n\t\t\t\t\t// Repackaging in an array allows Vue runtime\n\t\t\t\t\t// to merge class/style bindings regardless of type.\n\t\t\t\t\tmergeTarget[prop] = mergeTarget[prop].concat(arguments[i][prop])\n\t\t\t\t\tbreak\n\t\t\t\t// Space delimited string concatenation strategy\n\t\t\t\tcase \"staticClass\":\n\t\t\t\t\tif (!arguments[i][prop]) {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tif (mergeTarget[prop] === undefined) {\n\t\t\t\t\t\tmergeTarget[prop] = \"\"\n\t\t\t\t\t}\n\t\t\t\t\tif (mergeTarget[prop]) {\n\t\t\t\t\t\t// Not an empty string, so concatenate\n\t\t\t\t\t\tmergeTarget[prop] += \" \"\n\t\t\t\t\t}\n\t\t\t\t\tmergeTarget[prop] += arguments[i][prop].trim()\n\t\t\t\t\tbreak\n\t\t\t\t// Object, the properties of which to merge via array merge strategy (array concatenation).\n\t\t\t\t// Callback merge strategy merges callbacks to the beginning of the array,\n\t\t\t\t// so that the last defined callback will be invoked first.\n\t\t\t\t// This is done since to mimic how Object.assign merging\n\t\t\t\t// uses the last given value to assign.\n\t\t\t\tcase \"on\":\n\t\t\t\tcase \"nativeOn\":\n\t\t\t\t\tif (!mergeTarget[prop]) {\n\t\t\t\t\t\tmergeTarget[prop] = {}\n\t\t\t\t\t}\n\t\t\t\t\tfor (event of Object.keys(arguments[i][prop])) {\n\t\t\t\t\t\t// Concat function to array of functions if callback present.\n\t\t\t\t\t\tif (mergeTarget[prop][event]) {\n\t\t\t\t\t\t\t// Insert current iteration data in beginning of merged array.\n\t\t\t\t\t\t\tmergeTarget[prop][event] = [].concat(mergeTarget[prop][event], arguments[i][prop][event])\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Straight assign.\n\t\t\t\t\t\t\tmergeTarget[prop][event] = arguments[i][prop][event]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t// Object merge strategy\n\t\t\t\tcase \"attrs\":\n\t\t\t\tcase \"props\":\n\t\t\t\tcase \"domProps\":\n\t\t\t\tcase \"scopedSlots\":\n\t\t\t\tcase \"staticStyle\":\n\t\t\t\tcase \"hook\":\n\t\t\t\tcase \"transition\":\n\t\t\t\t\tif (!mergeTarget[prop]) {\n\t\t\t\t\t\tmergeTarget[prop] = {}\n\t\t\t\t\t}\n\t\t\t\t\tmergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n\t\t\t\t\tbreak\n\t\t\t\t// Reassignment strategy (no merge)\n\t\t\t\tcase \"slot\":\n\t\t\t\tcase \"key\":\n\t\t\t\tcase \"ref\":\n\t\t\t\tcase \"tag\":\n\t\t\t\tcase \"show\":\n\t\t\t\tcase \"keepAlive\":\n\t\t\t\tdefault:\n\t\t\t\t\tif (!mergeTarget[prop]) {\n\t\t\t\t\t\tmergeTarget[prop] = arguments[i][prop]\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn mergeTarget\n}\n\nexport { mergeData }\n"],"names":["prop","event","mergeTarget","i","arguments","length","Object","keys","Array","isArray","concat","undefined","trim"],"mappings":"0DAQA,WACC,IAECA,EACAC,EAHGC,KACHC,EAAYC,UAAUC,OAKvB,KAAOF,KAGN,IAAKH,KAAQM,OAAOC,KAAKH,UAAUD,IAClC,OAAQH,GAEP,IAAK,QACL,IAAK,QACL,IAAK,aACCQ,MAAMC,QAAQP,EAAYF,MAC9BE,EAAYF,OAIbE,EAAYF,GAAQE,EAAYF,GAAMU,OAAON,UAAUD,GAAGH,IAC1D,MAED,IAAK,cACJ,IAAKI,UAAUD,GAAGH,GACjB,WAEyBW,IAAtBT,EAAYF,KACfE,EAAYF,GAAQ,IAEjBE,EAAYF,KAEfE,EAAYF,IAAS,KAEtBE,EAAYF,IAASI,UAAUD,GAAGH,GAAMY,OACxC,MAMD,IAAK,KACL,IAAK,WACCV,EAAYF,KAChBE,EAAYF,OAEb,IAAKC,KAASK,OAAOC,KAAKH,UAAUD,GAAGH,IAElCE,EAAYF,GAAMC,GAErBC,EAAYF,GAAMC,MAAYS,OAAOR,EAAYF,GAAMC,GAAQG,UAAUD,GAAGH,GAAMC,IAGlFC,EAAYF,GAAMC,GAASG,UAAUD,GAAGH,GAAMC,GAGhD,MAED,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,cACL,IAAK,cACL,IAAK,OACL,IAAK,aACCC,EAAYF,KAChBE,EAAYF,OAEbE,EAAYF,oBAAaI,UAAUD,GAAGH,GAAUE,EAAYF,IAC5D,MAED,IAAK,OACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,OACL,IAAK,YACL,QACME,EAAYF,KAChBE,EAAYF,GAAQI,UAAUD,GAAGH,IAMtC,OAAOE"} \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 9f7f14b..4c6846b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -5,7 +5,8 @@ import { VNodeData } from "vue" * Merges arguments left to right, preferring the right argument. * Returns new VNodeData object. */ -function mergeData(...vNodeData: VNodeData[]): VNodeData { +function mergeData(...vNodeData: VNodeData[]): VNodeData +function mergeData(): VNodeData { let mergeTarget: VNodeData & { [key: string]: any } = {}, i: number = arguments.length, prop: string,