Fixed conflict resolution problems

This commit is contained in:
airjp73 2018-02-06 11:13:28 -05:00
parent 965091c8d4
commit 6dce24cc53

View File

@ -44,18 +44,29 @@ if (typeof storeData !== 'function') {
//if file is user/index.js
//it should save as user
if (name === 'index')
var isIndex = (name === 'index')
if (isIndex)
namePath.pop()
let module = getModuleNamespace(storeData, namePath)
name = namePath.pop()
//use Object.assign to deal with cases where there's a 'myModule.js' and
//a 'myModule' folder containing state/getters/actions/mutations
module[name] = module[name] || {}
module[name] = Object.assign(module[name], getModule(filename))
var fileModule = getModule(filename)
if (!isIndex) {
module[name] = Object.assign({}, fileModule, module[name])
module[name].namespaced = true
continue
}
var appendedMods = []
if (module[name].appends) {
fileModule.appends = module[name].appends
for (let append of module[name].appends) {
appendedMods[append] = module[name][append]
}
}
module[name] = Object.assign(module[name], fileModule, appendedMods)
}
}
@ -97,5 +108,7 @@ function getModuleNamespace (storeData, namePath, forAppend = false) {
function appendModule(module, filename, name) {
const file = files(filename)
module.appends = module.appends || []
module.appends.push(name)
module[name] = file.default || file
}