马宇豪
2024-07-16 f591c27b57e2418c9495bc02ae8cfff84d35bc18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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