UNPKG

@servable/tools

Version:

Servable tools is a utility that builds a protocol's manifest and documents it.

19 lines (18 loc) 646 B
import fs from 'fs' import path from 'path' import { createRequire } from 'module' /** * Get's the file path to a module folder. * @param {string} moduleEntry * @param {string} fromFile */ export default (moduleEntry) => { const packageName = moduleEntry.includes('/') ? moduleEntry.startsWith('@') ? moduleEntry.split('/').slice(0, 2).join('/') : moduleEntry.split('/')[0] : moduleEntry; const require = createRequire(import.meta.url); const lookupPaths = require.resolve.paths(moduleEntry).map((p) => path.join(p, packageName)); return lookupPaths.find((p) => fs.existsSync(p)); };