mirror of
https://github.com/cypress-io/cypress.git
synced 2026-02-09 08:40:32 -06:00
45 lines
1.0 KiB
TypeScript
45 lines
1.0 KiB
TypeScript
import _ from 'lodash'
|
|
import mockfs from 'mock-fs'
|
|
import path from 'path'
|
|
|
|
export const getFsPath = (pathStr: string) => {
|
|
return _.get(getFs(), _.compact(pathStr.split(path.sep)))
|
|
}
|
|
|
|
export const getFs = () => {
|
|
const cwd = process.cwd().split(path.sep).slice(1)
|
|
|
|
const recurse = (dir, d) => {
|
|
if (_.isString(dir)) {
|
|
return dir
|
|
}
|
|
|
|
return _.extend({}, ..._.map(dir, (val, key) => {
|
|
let nextDepth = null
|
|
|
|
if (d !== null) {
|
|
if (d === -1) {
|
|
nextDepth = d + 1
|
|
} else if (!(d > cwd.length) && key === cwd[d]) {
|
|
key = 'foo'
|
|
nextDepth = d + 1
|
|
|
|
if (d === cwd.length - 1) {
|
|
return { '[cwd]': recurse(val._items, nextDepth) }
|
|
}
|
|
|
|
return recurse(val._items, nextDepth)
|
|
} else {
|
|
nextDepth = null
|
|
}
|
|
}
|
|
|
|
return {
|
|
[key]: recurse(val._content ? val._content.toString() : val._items, nextDepth),
|
|
}
|
|
}))
|
|
}
|
|
|
|
return recurse({ root: mockfs.getMockRoot() }, -1).root
|
|
}
|