Skip to content

Commit

Permalink
fix(core): do not replace legacy package mentions in binary files (#1…
Browse files Browse the repository at this point in the history
  • Loading branch information
FrozenPandaz authored Apr 25, 2023
1 parent b374bd3 commit cba3c48
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 35 deletions.
37 changes: 2 additions & 35 deletions packages/devkit/src/generators/generate-files.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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.
*
Expand Down Expand Up @@ -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');
Expand Down
48 changes: 48 additions & 0 deletions packages/devkit/src/utils/binary-extensions.ts
Original file line number Diff line number Diff line change
@@ -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));
}
5 changes: 5 additions & 0 deletions packages/devkit/src/utils/replace-package.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -148,6 +149,10 @@ function replaceMentions(
newPackageName: string
) {
visitNotIgnoredFiles(tree, '.', (path) => {
if (isBinaryPath(path)) {
return;
}

const ignoredFiles = [
'yarn.lock',
'package-lock.json',
Expand Down

1 comment on commit cba3c48

@vercel
Copy link

@vercel vercel bot commented on cba3c48 Apr 25, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Successfully deployed to the following URLs:

nx-dev – ./

nx-dev-nrwl.vercel.app
nx-five.vercel.app
nx-dev-git-master-nrwl.vercel.app
nx.dev

Please sign in to comment.