Skip to content

convertPathToPattern not converting some\\@directory\\ correctly #452

@AriPerkkio

Description

@AriPerkkio

Environment

  • OS Version: Windows 11
  • Node.js Version: 20.15.0

Works fine on non-Windows, e.g. Mac. convertPathToPattern checks OS so reproduces only on Windows.

Actual behavior

const resolved = path.join(require.resolve("@vitest/coverage-v8"), "..");
const pattern = fg.convertPathToPattern(resolved) + "/**";
const files = fg.globSync(pattern);

//  resolved: 'C:\\Users\\Ari\\git\\fastglob\\node_modules\\@vitest\\coverage-v8\\dist',
//  pattern: 'C:/Users/Ari/git/fastglob/node_modules\\@vitest/coverage-v8/dist/**',
//                                                  ^^^
//  files: []

Expected behavior

//  resolved: 'C:\\Users\\Ari\\git\\fastglob\\node_modules\\@vitest\\coverage-v8\\dist',
//  pattern: 'C:/Users/Ari/git/fastglob/node_modules/@vitest/coverage-v8/dist/**',
//                                                  ^^
//  files: [
//    'C:/Users/Ari/git/fastglob/node_modules/@vitest/coverage-v8/dist/index.d.ts',
//    'C:/Users/Ari/git/fastglob/node_modules/@vitest/coverage-v8/dist/index.js',
//    'C:/Users/Ari/git/fastglob/node_modules/@vitest/coverage-v8/dist/provider.d.ts',
//    'C:/Users/Ari/git/fastglob/node_modules/@vitest/coverage-v8/dist/provider.js'
// ]

Steps to reproduce

  1. npm init
  2. npm i -D fast-glob @vitest/coverage-v8
  3. Save code sample to index.js
  4. node index.js

Code sample

const path = require("node:path");
const fg = require("fast-glob");

const resolved = path.join(require.resolve("@vitest/coverage-v8"), "..");
const pattern = fg.convertPathToPattern(resolved) + "/**";
const files = fg.globSync(pattern);

console.log({
  resolved,
  pattern,
  files,

  fixedPattern: pattern.replaceAll("\\@", "/@"),
  fixed: fg.globSync(pattern.replaceAll("\\@", "/@")),
});

image

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions