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