diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 2f4320bf..1e47eb1d 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -9,7 +9,7 @@ jobs: strategy: fail-fast: false matrix: - node: [18, 20, 21] + node: [14, 16, 18, 20, 21] steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - uses: actions/setup-node@v4 @@ -29,7 +29,7 @@ jobs: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 - run: npm ci - run: npm run system-test system_test: @@ -38,7 +38,7 @@ jobs: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 - run: npm ci - run: npm run system-test lint: @@ -47,7 +47,7 @@ jobs: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 - run: npm ci - run: npm run lint license_check: @@ -56,6 +56,6 @@ jobs: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 - run: npm ci - run: npm run license-check diff --git a/package-lock.json b/package-lock.json index 254659aa..23b15bbb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,7 +21,7 @@ "json5": "^2.1.3", "meow": "^9.0.0", "ncp": "^2.0.0", - "prettier": "3.1.1", + "prettier": "3.2.5", "rimraf": "3.0.2", "write-file-atomic": "^4.0.0" }, @@ -38,7 +38,6 @@ "@types/mocha": "^10.0.0", "@types/ncp": "^2.0.4", "@types/node": "20.11.30", - "@types/prettier": "^2.1.1", "@types/rimraf": "^3.0.0", "@types/sinon": "^17.0.0", "@types/tmp": "^0.2.0", @@ -620,12 +619,6 @@ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==" }, - "node_modules/@types/prettier": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", - "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", - "dev": true - }, "node_modules/@types/responselike": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", @@ -3391,9 +3384,9 @@ } }, "node_modules/prettier": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", - "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", "bin": { "prettier": "bin/prettier.cjs" }, diff --git a/package.json b/package.json index 95dbedb1..f0680d6b 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "fix": "eslint --fix '**/*.ts'" }, "engines": { - "node": ">=18" + "node": ">=14" }, "keywords": ["typescript", "linter", "formatter", "google"], "author": "Google Inc.", @@ -50,7 +50,7 @@ "json5": "^2.1.3", "meow": "^9.0.0", "ncp": "^2.0.0", - "prettier": "3.1.1", + "prettier": "3.2.5", "rimraf": "3.0.2", "write-file-atomic": "^4.0.0" }, @@ -64,7 +64,6 @@ "@types/mocha": "^10.0.0", "@types/ncp": "^2.0.4", "@types/node": "20.11.30", - "@types/prettier": "^2.1.1", "@types/rimraf": "^3.0.0", "@types/sinon": "^17.0.0", "@types/tmp": "^0.2.0", diff --git a/src/init.ts b/src/init.ts index 98e75f78..710cc535 100644 --- a/src/init.ts +++ b/src/init.ts @@ -19,12 +19,12 @@ import * as inquirer from 'inquirer'; import * as path from 'path'; import {ncp} from 'ncp'; import * as util from 'util'; +import * as writeFileAtomic from 'write-file-atomic'; import { getPkgManagerCommand, readFilep as read, readJsonp as readJson, - writeFileAtomicp as write, Bag, DefaultPackage, } from './util'; @@ -168,7 +168,7 @@ async function writePackageJson( ): Promise { options.logger.log('Writing package.json...'); if (!options.dryRun) { - await write('./package.json', formatJson(packageJson)); + await writeFileAtomic('./package.json', formatJson(packageJson)); } const preview = { scripts: packageJson.scripts, @@ -216,7 +216,7 @@ async function generateConfigFile( if (writeFile) { options.logger.log(`Writing ${filename}...`); if (!options.dryRun) { - await write(filename, contents); + await writeFileAtomic(filename, contents); } options.logger.log(contents); } diff --git a/src/util.ts b/src/util.ts index 28c19287..dc44df18 100644 --- a/src/util.ts +++ b/src/util.ts @@ -19,12 +19,10 @@ import * as path from 'path'; import * as rimraf from 'rimraf'; import {promisify} from 'util'; import * as ncp from 'ncp'; -import * as writeFileAtomic from 'write-file-atomic'; import * as JSON5 from 'json5'; export const readFilep = promisify(fs.readFile); export const rimrafp = promisify(rimraf); -export const writeFileAtomicp = promisify(writeFileAtomic); export const ncpp = promisify(ncp.ncp); export interface Bag {