49 lines
870 B
JavaScript
49 lines
870 B
JavaScript
import path from 'path'
|
|
import { readFileSync, writeFileSync } from './util'
|
|
import { merge } from 'lodash'
|
|
|
|
function load () {
|
|
try {
|
|
return JSON.parse(readFileSync(resolve('./deps.json')))
|
|
} catch (e) {
|
|
return {}
|
|
}
|
|
}
|
|
|
|
function save (deps) {
|
|
writeFileSync(resolve('./deps.json'), JSON.stringify(deps, null, ' '))
|
|
}
|
|
|
|
function resolve (file) {
|
|
return path.resolve(__dirname, file)
|
|
}
|
|
|
|
export function get (file) {
|
|
let deps = load()
|
|
return deps[file]
|
|
}
|
|
|
|
export function add (data) {
|
|
let deps = load()
|
|
save(merge(deps, data))
|
|
}
|
|
|
|
export function remove (data) {
|
|
let deps = load()
|
|
Object.keys(data).forEach(key => {
|
|
if (deps[key]) {
|
|
delete deps[key][data[key]]
|
|
}
|
|
})
|
|
save(deps)
|
|
}
|
|
|
|
export function removeFile (file) {
|
|
let deps = load()
|
|
delete deps[file]
|
|
|
|
Object.keys(deps).forEach(key => {
|
|
delete deps[key][file]
|
|
})
|
|
}
|