PHP 8.2.30
Preview: file-resolver.js Size: 1.39 KB
//proc/thread-self/root/home/byroehnu/.trash/node_modules11/adminjs/lib/utils/file-resolver.js

import path from 'path';

/**
 * resolve relative file path to absolute file path.
 * @param filePath relative file path
 * @param syntax syntax that match the stack
 */
export const relativeFilePathResolver = (filePath, syntax) => {
  const stack = (new Error().stack || '').split('\n');
  const target = stack.findIndex(s => syntax.test(s));
  // Node = 8 shows stack like that: '(/path/to/file.ts:77:27)
  const pathNode8 = stack[target + 1].match(/\((.*):[0-9]+:[0-9]+\)/);
  // Node >= 10 shows stack like that: 'at /path/to/file.ts:77:27
  const pathNode10 = stack[target + 1].match(/at (.*):[0-9]+:[0-9]+/);
  if (!pathNode8 && !pathNode10) {
    throw new Error('STACK does not have a file url. Check out if the node version >= 8');
  }
  const executionPath = pathNode8 && pathNode8[1] || pathNode10 && pathNode10[1];

  /**
  * decodeURIComponent used to decode parts of a path.
  *
  * Before: \D:\%D0%9D%D0%B8%D0%BA%D0%B8%D1%82%D0%B0\project\dist\components\photo
  * After: \D:\Никита\project\dist\components\photo
  */
  const resultPath = decodeURIComponent(path.join(path.dirname(executionPath), filePath).replace(/^file:/gi, ''));

  /**
  * If the separator is a backslash, remove the first one.
  * If you do not do this, the file will not be found
  *
  * Required for Windows
  */
  if (path.sep === '\\' && resultPath[0] === '\\') {
    return resultPath.slice(1);
  }
  return resultPath;
};

Directory Contents

Dirs: 2 × Files: 5

Name Size Perms Modified Actions
flat DIR
- drwxr-xr-x 2026-02-28 00:31:56
Edit Download
- drwxr-xr-x 2026-02-28 00:31:52
Edit Download
508 B lrw-r--r-- 2026-02-28 00:31:30
Edit Download
1.39 KB lrw-r--r-- 2026-02-28 00:31:30
Edit Download
164 B lrw-r--r-- 2026-02-28 00:31:44
Edit Download
404 B lrw-r--r-- 2026-02-28 00:31:50
Edit Download
2.51 KB lrw-r--r-- 2026-02-28 00:31:50
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).