11import { describe , expect , it , afterEach , jest } from '@jest/globals' ;
2- import fs from 'fs-extra ' ;
2+ import fs from 'fs' ;
33import path from 'path' ;
44import { addGitObserver , clearGitObservers } from 'workspace-tools' ;
55import { generateChangeFiles } from '../__fixtures__/changeFiles' ;
@@ -15,6 +15,7 @@ import type { PackageJson } from '../types/PackageInfo';
1515import { getParsedOptions } from '../options/getOptions' ;
1616import { getPackageInfos } from '../monorepo/getPackageInfos' ;
1717import { validate } from '../validation/validate' ;
18+ import { readJson } from '../object/readJson' ;
1819
1920// Spawning actual npm to run commands against a fake registry is extremely slow, so mock it for
2021// this test (packagePublish covers the more complete npm registry scenario).
@@ -172,7 +173,7 @@ describe('publish command (e2e)', () => {
172173 const anotherRepo = repositoryFactory ! . cloneRepository ( ) ;
173174 // inject a checkin
174175 const packageJsonFile = anotherRepo . pathTo ( 'package.json' ) ;
175- const contents = fs . readJSONSync ( packageJsonFile , 'utf-8' ) as PackageJson ;
176+ const contents = readJson < PackageJson > ( packageJsonFile ) ;
176177 delete contents . dependencies ?. baz ;
177178 anotherRepo . commitChange ( 'package.json' , JSON . stringify ( contents , null , 2 ) ) ;
178179 anotherRepo . push ( ) ;
@@ -374,7 +375,7 @@ describe('publish command (e2e)', () => {
374375 hooks : {
375376 prepublish : ( packagePath : string ) => {
376377 const packageJsonPath = path . join ( packagePath , 'package.json' ) ;
377- const packageJson = fs . readJSONSync ( packageJsonPath ) as ExtraPackageJson ;
378+ const packageJson = readJson < ExtraPackageJson > ( packageJsonPath ) ;
378379 if ( packageJson . onPublish ) {
379380 Object . assign ( packageJson , packageJson . onPublish ) ;
380381 delete packageJson . onPublish ;
@@ -400,7 +401,7 @@ describe('publish command (e2e)', () => {
400401
401402 // All git results should still have previous information
402403 expect ( repo . getCurrentTags ( ) ) . toEqual ( [ 'foo_v1.1.0' ] ) ;
403- const fooPackageJson = fs . readJSONSync ( repo . pathTo ( 'packages/foo/package.json' ) ) as ExtraPackageJson ;
404+ const fooPackageJson = readJson < ExtraPackageJson > ( repo . pathTo ( 'packages/foo/package.json' ) ) ;
404405 expect ( fooPackageJson . main ) . toBe ( 'src/index.ts' ) ;
405406 expect ( fooPackageJson . onPublish ?. main ) . toBe ( 'lib/index.js' ) ;
406407 } ) ;
@@ -416,7 +417,7 @@ describe('publish command (e2e)', () => {
416417 hooks : {
417418 postpublish : packagePath => {
418419 const packageJsonPath = path . join ( packagePath , 'package.json' ) ;
419- const packageJson = fs . readJSONSync ( packageJsonPath ) as ExtraPackageJson ;
420+ const packageJson = readJson < ExtraPackageJson > ( packageJsonPath ) ;
420421 if ( packageJson . afterPublish ) {
421422 notified = packageJson . afterPublish . notify ;
422423 }
@@ -429,7 +430,7 @@ describe('publish command (e2e)', () => {
429430
430431 await publish ( options , packageInfos ) ;
431432
432- const fooPackageJson = fs . readJSONSync ( repo . pathTo ( 'packages/foo/package.json' ) ) as ExtraPackageJson ;
433+ const fooPackageJson = readJson < ExtraPackageJson > ( repo . pathTo ( 'packages/foo/package.json' ) ) ;
433434 expect ( fooPackageJson . main ) . toBe ( 'src/index.ts' ) ;
434435 expect ( notified ) . toBe ( fooPackageJson . afterPublish ?. notify ) ;
435436 } ) ;
@@ -671,7 +672,7 @@ describe('publish command (e2e)', () => {
671672 await simulateWait ( 100 ) ;
672673 const packageName = path . basename ( packagePath ) ;
673674 const packageJsonPath = path . join ( packagePath , 'package.json' ) ;
674- const packageJson = fs . readJSONSync ( packageJsonPath ) as ExtraPackageJsonFixture ;
675+ const packageJson = readJson < ExtraPackageJsonFixture > ( packageJsonPath ) ;
675676 if ( packageJson . afterPublish ) {
676677 afterPublishStrings . push ( {
677678 packageName,
@@ -693,7 +694,7 @@ describe('publish command (e2e)', () => {
693694 expect ( maxConcurrency ) . toBe ( concurrency ) ;
694695
695696 for ( const pkg of packagesToPublish ) {
696- const packageJson = fs . readJSONSync ( repo . pathTo ( `packages/${ pkg } /package.json` ) ) as ExtraPackageJsonFixture ;
697+ const packageJson = readJson < ExtraPackageJsonFixture > ( repo . pathTo ( `packages/${ pkg } /package.json` ) ) ;
697698 if ( packageJson . afterPublish ) {
698699 // Verify that all postpublish hooks were called
699700 expect ( afterPublishStrings ) . toContainEqual ( {
0 commit comments