diff options
author | Feng Yu <F3n67u@outlook.com> | 2022-05-21 23:31:31 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-21 16:31:31 +0100 |
commit | 5cb257958e64dfaaf702c2145521686f8f9ff582 (patch) | |
tree | 27963fe65091de4fc5259abb0b0e0570804e25d7 | |
parent | 26846a05e2ac232742e6a0bfaa7baac5e86a015b (diff) | |
download | node-new-5cb257958e64dfaaf702c2145521686f8f9ff582.tar.gz |
tools: refactor update-authors.js to ESM
PR-URL: https://github.com/nodejs/node/pull/43098
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
-rw-r--r-- | .github/workflows/authors.yml | 4 | ||||
-rw-r--r-- | AUTHORS | 2 | ||||
-rwxr-xr-x | tools/update-authors.mjs (renamed from tools/update-authors.js) | 26 |
3 files changed, 14 insertions, 18 deletions
diff --git a/.github/workflows/authors.yml b/.github/workflows/authors.yml index ffd169df9b..01504ed227 100644 --- a/.github/workflows/authors.yml +++ b/.github/workflows/authors.yml @@ -15,7 +15,7 @@ jobs: with: fetch-depth: '0' # This is required to actually get all the authors persist-credentials: false - - run: tools/update-authors.js # Run the AUTHORS tool + - run: tools/update-authors.mjs # Run the AUTHORS tool - uses: gr2m/create-or-update-pull-request-action@v1 # Create a PR or update the Action's existing PR env: GITHUB_TOKEN: ${{ secrets.GH_USER_TOKEN }} @@ -24,7 +24,7 @@ jobs: body: > Here are some new additions to the AUTHORS file. This is an automatically generated PR by the - `authors.yml` GitHub Action, which runs `tools/update-authors.js`. + `authors.yml` GitHub Action, which runs `tools/update-authors.mjs`. branch: actions/authors-update # Custom branch *just* for this Action. commit-message: 'meta: update AUTHORS' labels: meta @@ -3460,4 +3460,4 @@ William Marlow <william.marlow@ibm.com> Keyhan Vakil <60900335+airtable-keyhanvakil@users.noreply.github.com> Feng Yu <F3n67u@outlook.com> -# Generated by tools/update-authors.js +# Generated by tools/update-authors.mjs diff --git a/tools/update-authors.js b/tools/update-authors.mjs index 5d8a5e7b36..971fe160e3 100755 --- a/tools/update-authors.js +++ b/tools/update-authors.mjs @@ -1,11 +1,9 @@ #!/usr/bin/env node -// Usage: tools/update-author.js [--dry] +// Usage: tools/update-author.mjs [--dry] // Passing --dry will redirect output to stdout rather than write to 'AUTHORS'. -'use strict'; -const { spawn } = require('child_process'); -const path = require('path'); -const fs = require('fs'); -const readline = require('readline'); +import { spawn } from 'node:child_process'; +import fs from 'node:fs'; +import readline from 'node:readline'; class CaseIndifferentMap { _map = new Map(); @@ -33,7 +31,7 @@ output.write('# Authors ordered by first contribution.\n\n'); const mailmap = new CaseIndifferentMap(); { - const lines = fs.readFileSync(path.resolve(__dirname, '../', '.mailmap'), + const lines = fs.readFileSync(new URL('../.mailmap', import.meta.url), { encoding: 'utf8' }).split('\n'); for (let line of lines) { line = line.trim(); @@ -55,7 +53,7 @@ const mailmap = new CaseIndifferentMap(); const previousAuthors = new CaseIndifferentMap(); { - const lines = fs.readFileSync(path.resolve(__dirname, '../', 'AUTHORS'), + const lines = fs.readFileSync(new URL('../AUTHORS', import.meta.url), { encoding: 'utf8' }).split('\n'); for (let line of lines) { line = line.trim(); @@ -85,9 +83,9 @@ const seen = new Set(); // by GitHub now. const authorRe = /(^Author:|^Co-authored-by:)\s+(?<author>[^<]+)\s+(?<email><[^>]+>)/i; -rl.on('line', (line) => { +for await (const line of rl) { const match = line.match(authorRe); - if (!match) return; + if (!match) continue; let { author, email } = match.groups; const emailLower = email.toLowerCase(); @@ -99,7 +97,7 @@ rl.on('line', (line) => { } if (seen.has(email)) { - return; + continue; } seen.add(email); @@ -109,8 +107,6 @@ rl.on('line', (line) => { console.warn('Author name already in AUTHORS file. Possible duplicate:'); console.warn(` ${author} ${email}`); } -}); +} -rl.on('close', () => { - output.end('\n# Generated by tools/update-authors.js\n'); -}); +output.end('\n# Generated by tools/update-authors.mjs\n'); |