codekingpro/portable-devtools
115k
1const updateScripts = ({ content, originalContent = {} }) => {
2 const newScripts = content.scripts
3
4 if (!newScripts) {
5 return originalContent
6 }
7
8 // validate scripts content being appended
9 const hasInvalidScripts = () =>
10 Object.entries(newScripts)
11 .some(([key, value]) =>
12 typeof key !== 'string' || typeof value !== 'string')
13 if (hasInvalidScripts()) {
14 throw Object.assign(
15 new TypeError(
16 'package.json scripts should be a key-value pair of strings.'),
17 { code: 'ESCRIPTSINVALID' }
18 )
19 }
20
21 return {
22 ...originalContent,
23 scripts: {
24 ...newScripts,
25 },
26 }
27}
28
29module.exports = updateScripts
30 