ACIL FM
Dark
Refresh
Current DIR:
/lib/node_modules/npm/node_modules/libnpmdiff/lib
/
lib
node_modules
npm
node_modules
libnpmdiff
lib
Upload
Zip Selected
Delete Selected
Pilih semua
Nama
Ukuran
Permission
Aksi
format-diff.js
2.48 MB
chmod
View
DL
Edit
Rename
Delete
index.js
1.23 MB
chmod
View
DL
Edit
Rename
Delete
should-print-patch.js
516 B
chmod
View
DL
Edit
Rename
Delete
tarball.js
1.07 MB
chmod
View
DL
Edit
Rename
Delete
untar.js
2.33 MB
chmod
View
DL
Edit
Rename
Delete
Edit file: /lib/node_modules/npm/node_modules/libnpmdiff/lib/untar.js
const tar = require('tar') const minimatch = require('minimatch') const normalizeMatch = str => str .replace(/\\+/g, '/') .replace(/^\.\/|^\./, '') // files and refs are mutating params // filterFiles, item, prefix and opts are read-only options const untar = ({ files, refs }, { filterFiles, item, prefix }) => { tar.list({ filter: (path, entry) => { const fileMatch = () => (!filterFiles.length || filterFiles.some(f => { const pattern = normalizeMatch(f) return minimatch( normalizeMatch(path), `{package/,}${pattern}`, { matchBase: pattern.startsWith('*') } ) })) // expands usage of simple path filters, e.g: lib or src/ const folderMatch = () => filterFiles.some(f => normalizeMatch(path).startsWith(normalizeMatch(f)) || normalizeMatch(path).startsWith(`package/${normalizeMatch(f)}`)) if ( entry.type === 'File' && (fileMatch() || folderMatch()) ) { const key = path.replace(/^[^/]+\/?/, '') files.add(key) // should skip reading file when using --name-only option let content try { entry.setEncoding('utf8') content = entry.concat() } catch (e) { /* istanbul ignore next */ throw Object.assign( new Error('failed to read files'), { code: 'EDIFFUNTAR' } ) } refs.set(`${prefix}${key}`, { content, mode: `100${entry.mode.toString(8)}`, }) return true } }, }) .on('error', /* istanbul ignore next */ e => { throw e }) .end(item) } const readTarballs = async (tarballs, opts = {}) => { const files = new Set() const refs = new Map() const arr = [].concat(tarballs) const filterFiles = opts.diffFiles || [] for (const i of arr) { untar({ files, refs, }, { item: i.item, prefix: i.prefix, filterFiles, }) } // await to read all content from included files const allRefs = [...refs.values()] const contents = await Promise.all(allRefs.map(async ref => ref.content)) contents.forEach((content, index) => { allRefs[index].content = content }) return { files, refs, } } module.exports = readTarballs
Simpan
Batal
Isi Zip:
Unzip
Create
Buat Folder
Buat File
Terminal / Execute
Run
Chmod Bulk
All File
All Folder
All File dan Folder
Apply