inline `getModuleDependencies`
parent
6d88a5c31c
commit
a1e085d0cd
File diff suppressed because it is too large
Load Diff
|
@ -30,6 +30,7 @@
|
||||||
"builtin-modules": "3.2.0",
|
"builtin-modules": "3.2.0",
|
||||||
"chokidar": "3.5.1",
|
"chokidar": "3.5.1",
|
||||||
"debounce": "1.2.0",
|
"debounce": "1.2.0",
|
||||||
|
"detective": "5.2.0",
|
||||||
"dlv": "1.1.3",
|
"dlv": "1.1.3",
|
||||||
"dset": "2.0.1",
|
"dset": "2.0.1",
|
||||||
"enhanced-resolve": "5.8.0",
|
"enhanced-resolve": "5.8.0",
|
||||||
|
@ -44,10 +45,10 @@
|
||||||
"postcss-load-config": "3.0.1",
|
"postcss-load-config": "3.0.1",
|
||||||
"postcss-selector-parser": "6.0.2",
|
"postcss-selector-parser": "6.0.2",
|
||||||
"prettier": "2.3.0",
|
"prettier": "2.3.0",
|
||||||
|
"resolve": "1.20.0",
|
||||||
"rimraf": "3.0.2",
|
"rimraf": "3.0.2",
|
||||||
"semver": "7.3.2",
|
"semver": "7.3.2",
|
||||||
"stack-trace": "0.0.10",
|
"stack-trace": "0.0.10",
|
||||||
"tailwindcss": "2.0.3",
|
|
||||||
"terser": "4.6.12",
|
"terser": "4.6.12",
|
||||||
"typescript": "4.2.4",
|
"typescript": "4.2.4",
|
||||||
"vscode-languageserver": "7.0.0",
|
"vscode-languageserver": "7.0.0",
|
||||||
|
|
|
@ -1,7 +1,45 @@
|
||||||
import _getModuleDependencies from 'tailwindcss/lib/lib/getModuleDependencies'
|
import fs from 'fs'
|
||||||
|
import path from 'path'
|
||||||
|
import resolve from 'resolve'
|
||||||
|
import detective from 'detective'
|
||||||
|
|
||||||
export function getModuleDependencies(modulePath: string): string[] {
|
export function getModuleDependencies(modulePath: string): string[] {
|
||||||
return _getModuleDependencies(modulePath)
|
return _getModuleDependencies(modulePath)
|
||||||
.map(({ file }) => file)
|
.map(({ file }) => file)
|
||||||
.filter((file) => file !== modulePath)
|
.filter((file) => file !== modulePath)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function createModule(file) {
|
||||||
|
const source = fs.readFileSync(file, 'utf-8')
|
||||||
|
const requires = detective(source)
|
||||||
|
|
||||||
|
return { file, requires }
|
||||||
|
}
|
||||||
|
|
||||||
|
function _getModuleDependencies(entryFile) {
|
||||||
|
const rootModule = createModule(entryFile)
|
||||||
|
const modules = [rootModule]
|
||||||
|
|
||||||
|
// Iterate over the modules, even when new
|
||||||
|
// ones are being added
|
||||||
|
for (const mdl of modules) {
|
||||||
|
mdl.requires
|
||||||
|
.filter((dep) => {
|
||||||
|
// Only track local modules, not node_modules
|
||||||
|
return dep.startsWith('./') || dep.startsWith('../')
|
||||||
|
})
|
||||||
|
.forEach((dep) => {
|
||||||
|
try {
|
||||||
|
const basedir = path.dirname(mdl.file)
|
||||||
|
const depPath = resolve.sync(dep, { basedir })
|
||||||
|
const depModule = createModule(depPath)
|
||||||
|
|
||||||
|
modules.push(depModule)
|
||||||
|
} catch (_err) {
|
||||||
|
// eslint-disable-next-line no-empty
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
return modules
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue