2 changed files with 37 additions and 0 deletions
@ -0,0 +1,34 @@ |
|||
const path = require('path'); |
|||
const fs = require('fs-extra'); |
|||
|
|||
const extractDep = (dsl) => { |
|||
const mergedDependencies = {}; |
|||
const {cells = []} = dsl; |
|||
cells.filter(cell => cell.shape !== 'edge').forEach(cell => { |
|||
const {dependencies} = cell.data || {}; |
|||
try { |
|||
const json = JSON.parse(dependencies); |
|||
Object.keys(json).forEach(key => mergedDependencies[key] = json[key]); |
|||
} catch(err) { |
|||
console.log('extract dependencies failed, the error is:', err.message); |
|||
} |
|||
}); |
|||
return mergedDependencies; |
|||
} |
|||
|
|||
const setup = async (dsl, projectRootPath) => { |
|||
const pkgPath = path.join(projectRootPath, './package.json'); |
|||
const pkgFile = await fs.readFile(pkgPath); |
|||
const pkgJson = JSON.parse(pkgFile); |
|||
const dslDependencies = extractDep(dsl); |
|||
if(!pkgJson.dependencies) { |
|||
pkgJson.dependencies = dslDependencies; |
|||
} else { |
|||
Object.keys(dslDependencies).forEach(key => { |
|||
pkgJson.dependencies[key] = dslDependencies[key]; |
|||
}); |
|||
} |
|||
await fs.writeFile(pkgPath, JSON.stringify(pkgJson, null, 2)); |
|||
}; |
|||
|
|||
module.exports = setup; |
Loading…
Reference in new issue