You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

29 lines
664 B

const updateScripts = ({ content, originalContent = {} }) => {
const newScripts = content.scripts
if (!newScripts) {
return originalContent
}
// validate scripts content being appended
const hasInvalidScripts = () =>
Object.entries(newScripts)
.some(([key, value]) =>
typeof key !== 'string' || typeof value !== 'string')
if (hasInvalidScripts()) {
throw Object.assign(
new TypeError(
'package.json scripts should be a key-value pair of strings.'),
{ code: 'ESCRIPTSINVALID' }
)
}
return {
...originalContent,
scripts: {
...newScripts,
},
}
}
module.exports = updateScripts