first commit
This commit is contained in:
49
app_vue/node_modules/@vue/cli-shared-utils/lib/object.js
generated
vendored
Normal file
49
app_vue/node_modules/@vue/cli-shared-utils/lib/object.js
generated
vendored
Normal file
@ -0,0 +1,49 @@
|
||||
exports.set = function (target, path, value) {
|
||||
const fields = path.split('.')
|
||||
let obj = target
|
||||
const l = fields.length
|
||||
for (let i = 0; i < l - 1; i++) {
|
||||
const key = fields[i]
|
||||
if (!obj[key]) {
|
||||
obj[key] = {}
|
||||
}
|
||||
obj = obj[key]
|
||||
}
|
||||
obj[fields[l - 1]] = value
|
||||
}
|
||||
|
||||
exports.get = function (target, path) {
|
||||
const fields = path.split('.')
|
||||
let obj = target
|
||||
const l = fields.length
|
||||
for (let i = 0; i < l - 1; i++) {
|
||||
const key = fields[i]
|
||||
if (!obj[key]) {
|
||||
return undefined
|
||||
}
|
||||
obj = obj[key]
|
||||
}
|
||||
return obj[fields[l - 1]]
|
||||
}
|
||||
|
||||
exports.unset = function (target, path) {
|
||||
const fields = path.split('.')
|
||||
let obj = target
|
||||
const l = fields.length
|
||||
const objs = []
|
||||
for (let i = 0; i < l - 1; i++) {
|
||||
const key = fields[i]
|
||||
if (!obj[key]) {
|
||||
return
|
||||
}
|
||||
objs.unshift({ parent: obj, key, value: obj[key] })
|
||||
obj = obj[key]
|
||||
}
|
||||
delete obj[fields[l - 1]]
|
||||
// Clear empty objects
|
||||
for (const { parent, key, value } of objs) {
|
||||
if (!Object.keys(value).length) {
|
||||
delete parent[key]
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user