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