fix(core): do not replace legacy package mentions in binary files (#16547)

This commit is contained in:
Jason Jean 2023-04-25 15:31:25 -04:00 committed by GitHub
parent b374bd342c
commit cba3c48e6c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 55 additions and 35 deletions

View File

@ -2,43 +2,10 @@ import { readFileSync, readdirSync, statSync } from 'fs';
import * as path from 'path';
import type { Tree } from 'nx/src/generators/tree';
import { requireNx } from '../../nx';
import { isBinaryPath } from '../utils/binary-extensions';
const { logger } = requireNx();
const binaryExts = new Set([
// // Image types originally from https://github.com/sindresorhus/image-type/blob/5541b6a/index.js
'.jpg',
'.jpeg',
'.png',
'.gif',
'.webp',
'.flif',
'.cr2',
'.tif',
'.bmp',
'.jxr',
'.psd',
'.ico',
'.bpg',
'.jp2',
'.jpm',
'.jpx',
'.heic',
'.cur',
'.tgz',
// Java files
'.jar',
'.keystore',
// Font files
'.ttf',
'.otf',
'.woff',
'.woff2',
'.eot',
]);
/**
* Generates a folder of files based on provided templates.
*
@ -84,7 +51,7 @@ export function generateFiles(
substitutions
);
if (binaryExts.has(path.extname(filePath))) {
if (isBinaryPath(filePath)) {
newContent = readFileSync(filePath);
} else {
const template = readFileSync(filePath, 'utf-8');

View File

@ -0,0 +1,48 @@
import { extname } from 'path';
const binaryExtensions = new Set([
// // Image types originally from https://github.com/sindresorhus/image-type/blob/5541b6a/index.js
'.jpg',
'.jpeg',
'.png',
'.gif',
'.webp',
'.flif',
'.cr2',
'.tif',
'.bmp',
'.jxr',
'.psd',
'.ico',
'.bpg',
'.jp2',
'.jpm',
'.jpx',
'.heic',
'.cur',
'.avif',
'.dcm',
// Compressed files
'.tgz',
'.gz',
'.zip',
// Documents
'.pdf',
// Java files
'.jar',
'.keystore',
// Font files
'.ttf',
'.otf',
'.woff',
'.woff2',
'.eot',
]);
export function isBinaryPath(path: string): boolean {
return binaryExtensions.has(extname(path));
}

View File

@ -4,6 +4,7 @@ import { requireNx } from '../../nx';
import { NX_VERSION } from './package-json';
import { visitNotIgnoredFiles } from '../generators/visit-not-ignored-files';
import { basename } from 'path';
import { isBinaryPath } from './binary-extensions';
const {
getProjects,
@ -148,6 +149,10 @@ function replaceMentions(
newPackageName: string
) {
visitNotIgnoredFiles(tree, '.', (path) => {
if (isBinaryPath(path)) {
return;
}
const ignoredFiles = [
'yarn.lock',
'package-lock.json',