github
bunsenstraat 3 years ago
parent 648393d924
commit d7dcddb219
  1. 48
      apps/remix-ide/src/app/files/fileProvider.js
  2. 6
      libs/remix-ui/file-explorer/src/lib/file-explorer.tsx

@ -91,6 +91,7 @@ class FileProvider {
path = this.getPathFromUrl(path) || path // ensure we actually use the normalized path from here
var unprefixedpath = this.removePrefix(path)
try {
console.log('getting', this.addSlash(unprefixedpath))
const content = await window.remixFileSystem.readFile(this.addSlash(unprefixedpath), 'utf8')
if (cb) cb(null, content)
return content
@ -207,35 +208,34 @@ class FileProvider {
* @param {Function} visitFolder is a function called for each visited folders
*/
async _copyFolderToJsonInternal (path, visitFile, visitFolder) {
/* visitFile = visitFile || (() => { })
visitFile = visitFile || (() => { })
visitFolder = visitFolder || (() => { })
return new Promise((resolve, reject) => {
const json = {}
path = this.removePrefix(path)
if (window.remixFileSystem.exists(this.addSlash(path))) {
try {
const items = await window.remixFileSystem.readdir(this.addSlash(path))
visitFolder({ path })
if (items.length !== 0) {
for (const item of items) {
const file = {}
const curPath = `${path}${path.endsWith('/') ? '' : '/'}${item}`
if (await window.remixFileSystem.statExtended(curPath).isDirectory()) {
file.children = await this._copyFolderToJsonInternal(curPath, visitFile, visitFolder)
} else {
file.content = window.remixFileSystem.readFileSync(curPath, 'utf8')
visitFile({ path: curPath, content: file.content })
}
json[curPath] = file
const json = {}
path = this.removePrefix(path)
if (await window.remixFileSystem.exists(this.addSlash(path))) {
try {
const items = await window.remixFileSystem.readdir(this.addSlash(path))
visitFolder({ path })
if (items.length !== 0) {
for (const item of items) {
const file = {}
const curPath = `${path}${path.endsWith('/') ? '' : '/'}${item}`
if ((await window.remixFileSystem.statExtended(this.addSlash(curPath))).isDirectory()) {
file.children = await this._copyFolderToJsonInternal(curPath, visitFile, visitFolder)
} else {
file.content = await window.remixFileSystem.readFile(this.addSlash(curPath), 'utf8')
visitFile({ path: curPath, content: file.content })
}
json[curPath] = file
}
} catch (e) {
console.log(e)
return reject(e)
}
} catch (e) {
console.log(e)
throw new Error(e)
}
return resolve(json)
}) */
}
return json
}
/**

@ -1060,13 +1060,13 @@ export const FileExplorer = (props: FileExplorerProps) => {
export default FileExplorer
async function packageFiles (filesProvider, directory, callback) {
const isFile = filesProvider.isFile(directory)
const isFile = await filesProvider.isFile(directory)
const ret = {}
console.log(isFile)
if (isFile) {
try {
filesProvider.get(directory, (error, content) => {
if (error) throw new Error('An error ocurred while getting file content. ' + directory)
if (error) throw new Error('An error ocurred while getting file content. ' + error)
if (/^\s+$/.test(content) || !content.length) {
content = '// this line is added to create a gist. Empty file is not allowed.'
}

Loading…
Cancel
Save