synp
Version:
Convert yarn.lock to package-lock.json and vice versa
31 lines (26 loc) • 921 B
JavaScript
const lockfile = require('@yarnpkg/lockfile')
const eol = require('eol')
const { nmtree } = require('../../util/nmtree')
const { buildYarnTree, buildNpmTree } = require('./tree')
module.exports = {
convertYarnToNpmV1 (yarnLock, name, version, packageDir) {
const yarnLockNormalized = eol.lf(yarnLock)
const yarnObject = lockfile.parse(yarnLockNormalized).object
const nodeModulesTree = nmtree(packageDir)
const dependencies = buildNpmTree(nodeModulesTree, yarnObject)
return JSON.stringify({
name,
version,
lockfileVersion: 1,
requires: true,
dependencies
}, null, 2)
},
convertNpmV1ToYarn (packageLockFileString, packageDir) {
const packageLock = JSON.parse(packageLockFileString)
const nodeModulesTree = nmtree(packageDir)
const yarnTree = buildYarnTree(nodeModulesTree, packageLock)
return lockfile.stringify(yarnTree)
}
}