[*] Fix: Resolve Windows regression caused by upgrading glob (#6227)

This commit is contained in:
Bob Ippolito
2024-05-31 12:26:17 -07:00
committed by GitHub
parent d14cc077a6
commit 0885fb2bbc
11 changed files with 35 additions and 11 deletions

View File

@ -3,6 +3,7 @@
**/dist/**
**/build/**
**/npm/**
!scripts/npm/**
**/.output/**
**/.browser-profiles/**
**/__tests__/integration/fixtures/**

View File

@ -17,8 +17,8 @@ import {selectAll} from '../keyboardShortcuts/index.mjs';
function findAsset(pattern) {
const prefix = 'packages/lexical-playground/build';
const resolvedPattern = `${prefix}/assets/${pattern}`;
for (const fn of glob.sync(resolvedPattern)) {
return fn.slice(prefix.length);
for (const fn of glob.sync(resolvedPattern, {windowsPathsNoEscape: true})) {
return fn.replaceAll('\\', '/').slice(prefix.length);
}
throw new Error(`Missing asset at ${resolvedPattern}`);
}

View File

@ -36,9 +36,13 @@ module.exports = async function (context, options) {
loadContent: () => {
fs.mkdirSync(options.targetDir, {recursive: true});
const oldTargets = new Set(
glob.sync(path.resolve(options.targetDir, '*.md')),
glob.sync(path.resolve(options.targetDir, '*.md'), {
windowsPathsNoEscape: true,
}),
);
for (const srcPath of glob.sync(`${options.baseDir}/*/README.md`)) {
for (const srcPath of glob.sync(`${options.baseDir}/*/README.md`, {
windowsPathsNoEscape: true,
})) {
const jsonPath = path.resolve(path.dirname(srcPath), 'package.json');
if (!fs.existsSync(jsonPath)) {
continue;

View File

@ -27,5 +27,7 @@ describe('prepare-release tests', () => {
}
});
['examples', 'scripts/__tests__/integration/fixtures']
.flatMap((packagesDir) => glob.sync(`${packagesDir}/*/package.json`))
.flatMap((packagesDir) =>
glob.sync(`${packagesDir}/*/package.json`, {windowsPathsNoEscape: true}),
)
.forEach((exampleJsonPath) => describeExample(exampleJsonPath));

View File

@ -38,7 +38,11 @@ describe('public package.json audits (`npm run update-packages` to fix most issu
});
}
it('has *.flow types', () => {
expect(glob.sync(pkg.resolve('flow', '*.flow'))).not.toEqual([]);
expect(
glob.sync(pkg.resolve('flow', '*.flow'), {
windowsPathsNoEscape: true,
}),
).not.toEqual([]);
});
it('uses the expected directory/npm naming convention', () => {
expect(npmName.replace(/^@/, '').replace('/', '-')).toBe(
@ -118,7 +122,11 @@ describe('www public package audits (`npm run update-packages` to fix most issue
const wwwEntrypoint = `${npmToWwwName(npmName)}.js`;
describe(npmName, () => {
it('has *.flow types', () => {
expect(glob.sync(pkg.resolve('flow', '*.flow'))).not.toEqual([]);
expect(
glob.sync(pkg.resolve('flow', '*.flow'), {
windowsPathsNoEscape: true,
}),
).not.toEqual([]);
});
// Only worry about the entrypoint stub if it has a single module export
if (pkg.getExportedNpmModuleNames().every((name) => name === npmName)) {

View File

@ -31,7 +31,9 @@ function preparePackage(pkg) {
fs.removeSync(pkg.resolve('npm'));
fs.ensureDirSync(pkg.resolve('npm'));
fs.copySync(pkg.resolve('dist'), pkg.resolve('npm'));
const flowSources = glob.sync(pkg.resolve('flow', '*.flow'));
const flowSources = glob.sync(pkg.resolve('flow', '*.flow'), {
windowsPathsNoEscape: true,
});
if (flowSources.length === 0) {
console.error(
`Missing Flow type definitions for package ${pkg.getDirectoryName()}`,

View File

@ -19,7 +19,10 @@ async function main() {
throw new Error('USAGE: node ./scripts/override-react --version=beta');
}
const packages = ['react', 'react-dom'];
['package.json', ...glob.sync('./packages/*/package.json')].forEach((fn) => {
[
'package.json',
...glob.sync('./packages/*/package.json', {windowsPathsNoEscape: true}),
].forEach((fn) => {
const json = fs.readJsonSync(fn);
const isRoot = fn === 'package.json';
let didUpdate = isRoot;

View File

@ -129,5 +129,6 @@ exports.packagesManager = new PackagesManager(
path.dirname(path.dirname(__dirname)),
'packages/*/package.json',
),
{windowsPathsNoEscape: true},
),
);

View File

@ -60,6 +60,7 @@ async function updateTsconfig({
testPaths.push([`${pkg.getNpmName()}/src`, [resolveRelative('src')]]);
for (const fn of glob.sync(
pkg.resolve('src', '__tests__', 'utils', '*.{ts,tsx,mjs,jsx}'),
{windowsPathsNoEscape: true},
)) {
testPaths.push([
`${pkg.getNpmName()}/src/__tests__/utils`,

View File

@ -29,7 +29,7 @@ const diagnosticsHost = {
*/
function validateTscTypes() {
const dtsFilesPattern = './.ts-temp/packages/{lexical,lexical-*}/**/*.d.ts';
const dtsFiles = glob.sync(dtsFilesPattern);
const dtsFiles = glob.sync(dtsFilesPattern, {windowsPathsNoEscape: true});
if (dtsFiles.length === 0) {
console.error(
`Missing ${dtsFilesPattern}, \`npm run build-prod\` or \`npm run build-release\` first`,

View File

@ -22,7 +22,9 @@ const transformFlowFileContents = require('./transformFlowFileContents');
// for each package so they can easily be copied to www.
async function rewriteImports() {
for (const pkg of packagesManager.getPackages()) {
for (const flowFile of glob.sync(pkg.resolve('flow', '*.flow'))) {
for (const flowFile of glob.sync(pkg.resolve('flow', '*.flow'), {
windowsPathsNoEscape: true,
})) {
const data = fs.readFileSync(flowFile, 'utf8');
const result = await transformFlowFileContents(data);
fs.writeFileSync(