@npmcli/template-oss 3.1.1 → 3.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18,7 +18,7 @@ module.exports = [{
18
18
  options.config.repoFiles,
19
19
  options
20
20
  ),
21
- when: ({ config: c }) => c.isForce || (c.needsUpdate && c.applyRepo),
21
+ when: ({ config: c }) => c.applyRepo && c.needsUpdate,
22
22
  name: 'apply-repo',
23
23
  }, {
24
24
  run: (options) => run(
@@ -26,6 +26,6 @@ module.exports = [{
26
26
  options.config.moduleFiles,
27
27
  options
28
28
  ),
29
- when: ({ config: c }) => c.isForce || (c.needsUpdate && c.applyModule),
29
+ when: ({ config: c }) => c.applyModule && c.needsUpdate,
30
30
  name: 'apply-module',
31
31
  }]
@@ -0,0 +1,26 @@
1
+ const log = require('proc-log')
2
+ const PackageJson = require('@npmcli/package-json')
3
+
4
+ const run = async ({ config: c }) => {
5
+ const {
6
+ moduleDir: dir,
7
+ __CONFIG_KEY__: key,
8
+ __VERSION__: version,
9
+ } = c
10
+
11
+ log.verbose('apply-version', dir)
12
+
13
+ const pkg = await PackageJson.load(dir)
14
+ if (!pkg.content[key]) {
15
+ pkg.content[key] = { version }
16
+ } else {
17
+ pkg.content[key].version = version
18
+ }
19
+ await pkg.save()
20
+ }
21
+
22
+ module.exports = {
23
+ run,
24
+ when: ({ config: c }) => c.needsUpdate && !c.isDogFood,
25
+ name: 'apply-version',
26
+ }
@@ -2,4 +2,5 @@ const run = require('../index.js')
2
2
 
3
3
  module.exports = (root, content) => run(root, content, [
4
4
  require('./apply-files.js'),
5
+ require('./apply-version.js'),
5
6
  ])
package/lib/config.js CHANGED
@@ -56,6 +56,7 @@ const getConfig = async ({
56
56
  const isRoot = root === path
57
57
  const isLatest = version === LATEST_VERSION
58
58
  const isDogFood = pkg.name === NAME
59
+ const isForce = process.argv.includes('--force')
59
60
 
60
61
  // this is written to ci yml files so it needs to always use posix
61
62
  const pkgRelPath = makePosix(relative(root, path))
@@ -111,16 +112,17 @@ const getConfig = async ({
111
112
  pkgName: pkg.name,
112
113
  pkgNameFs: pkg.name.replace(/\//g, '-').replace(/@/g, ''),
113
114
  pkgRelPath: pkgRelPath,
114
- // force changes if we are dogfooding this repo or with force argv
115
- // XXX: setup proper cli arg parsing
116
- isForce: isDogFood || process.argv.includes('--force'),
115
+ // booleans to control application of updates
116
+ isForce,
117
+ isDogFood,
117
118
  isLatest,
118
- needsUpdate: !isLatest,
119
+ // needs update if we are dogfooding this repo, with force argv, or its
120
+ // behind the current version
121
+ needsUpdate: isForce || isDogFood || !isLatest,
119
122
  // templateoss specific values
120
123
  __NAME__: NAME,
121
124
  __CONFIG_KEY__: CONFIG_KEY,
122
125
  __VERSION__: LATEST_VERSION,
123
- __DOGFOOD__: isDogFood,
124
126
  }
125
127
 
126
128
  // merge the rest of base and pkg content to make the
@@ -12,5 +12,5 @@ jobs:
12
12
  steps:
13
13
  {{> setupGit}}
14
14
  {{> setupNode}}
15
- - run: npm i --package-lock
15
+ - run: npm i --ignore-scripts --package-lock
16
16
  - run: npm audit
@@ -28,7 +28,7 @@ jobs:
28
28
  steps:
29
29
  {{> setupGit}}
30
30
  {{> setupNode}}
31
- - run: npm i
31
+ - run: npm i --ignore-scripts
32
32
  - run: npm run lint {{~#if isWorkspace}} -w {{pkgName}}{{/if}}
33
33
 
34
34
  test:
@@ -55,5 +55,5 @@ jobs:
55
55
  steps:
56
56
  {{> setupGit}}
57
57
  {{> setupNode useMatrix=true}}
58
- - run: npm i
58
+ - run: npm i --ignore-scripts
59
59
  - run: npm test --ignore-scripts {{~#if isWorkspace}} -w {{pkgName}}{{/if}}
@@ -5,6 +5,7 @@ const localConfigs = readdir(__dirname)
5
5
  .map((file) => `./${file}`)
6
6
 
7
7
  module.exports = {
8
+ root: true,
8
9
  extends: [
9
10
  '@npmcli',
10
11
  ...localConfigs,
@@ -53,6 +53,7 @@ const workspaceModule = {
53
53
  rm: [
54
54
  '.npmrc',
55
55
  '.eslintrc.!(js|local.*)',
56
+ 'SECURITY.md',
56
57
  ],
57
58
  }
58
59
 
@@ -20,7 +20,7 @@
20
20
  "node": {{{json engines}}}
21
21
  },
22
22
  {{{json __CONFIG_KEY__}}}: {
23
- "version": {{#if __DOGFOOD__}}{{{del}}}{{else}}{{{json __VERSION__}}}{{/if}}
23
+ "version": {{#if isDogFood}}{{{del}}}{{else}}{{{json __VERSION__}}}{{/if}}
24
24
  },
25
25
  "templateVersion": {{{del}}},
26
26
  "standard": {{{del}}}
@@ -5,6 +5,7 @@ on:
5
5
 
6
6
  # https://docs.github.com/en/rest/overview/permissions-required-for-github-apps
7
7
  permissions:
8
+ actions: write
8
9
  contents: write
9
10
 
10
11
  jobs:
@@ -25,7 +26,7 @@ jobs:
25
26
  GITHUB_TOKEN: $\{{ secrets.GITHUB_TOKEN }}
26
27
  run: |
27
28
  gh pr checkout $\{{ github.event.pull_request.number }}
28
- npm install --no-scripts
29
+ npm install --ignore-scripts
29
30
  npm run template-oss-apply
30
31
  git add .
31
32
  git commit -am "chore: postinstall for dependabot template-oss PR"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@npmcli/template-oss",
3
- "version": "3.1.1",
3
+ "version": "3.2.1",
4
4
  "description": "templated files used in npm CLI team oss projects",
5
5
  "main": "lib/content/index.js",
6
6
  "bin": {