klaw-sync

WebJar for klaw-sync

Лицензия

Лицензия

MIT
Группа

Группа

org.webjars.npm
Идентификатор

Идентификатор

klaw-sync
Последняя версия

Последняя версия

6.0.0
Дата

Дата

Тип

Тип

jar
Описание

Описание

klaw-sync
WebJar for klaw-sync
Ссылка на сайт

Ссылка на сайт

https://www.webjars.org
Система контроля версий

Система контроля версий

https://github.com/manidlou/node-klaw-sync

Скачать klaw-sync

Как подключить последнюю версию

<!-- https://jarcasting.com/artifacts/org.webjars.npm/klaw-sync/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>klaw-sync</artifactId>
    <version>6.0.0</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/klaw-sync/
implementation 'org.webjars.npm:klaw-sync:6.0.0'
// https://jarcasting.com/artifacts/org.webjars.npm/klaw-sync/
implementation ("org.webjars.npm:klaw-sync:6.0.0")
'org.webjars.npm:klaw-sync:jar:6.0.0'
<dependency org="org.webjars.npm" name="klaw-sync" rev="6.0.0">
  <artifact name="klaw-sync" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='klaw-sync', version='6.0.0')
)
libraryDependencies += "org.webjars.npm" % "klaw-sync" % "6.0.0"
[org.webjars.npm/klaw-sync "6.0.0"]

Зависимости

compile (1)

Идентификатор библиотеки Тип Версия
org.webjars.npm : graceful-fs jar [4.1.11,5)

Модули Проекта

Данный проект не имеет модулей.

node-klaw-sync

npm Package Build Status windows Build status JavaScript Style Guide Known Vulnerabilities

klaw-sync is a Node.js recursive and fast file system walker, which is the synchronous counterpart of klaw. It lists all files and directories inside a directory recursively and returns an array of objects that each object has two properties: path and stats. path is the full path of the file or directory and stats is an instance of fs.Stats.

Install

npm i klaw-sync

Usage

klawSync(directory[, options])

  • directory <String>
  • options <Object> (optional)
    • nodir <Boolean> default: undefined
      • return only files (ignore directories).
    • nofile <Boolean> default: undefined
      • return only directories (ignore files).
    • depthLimit: <Number> default: -1
      • the number of times to recurse before stopping. -1 for unlimited.
    • fs: <Object> default: graceful-fs
      • custom fs, useful when mocking fs object.
    • filter <Function> default: undefined
      • function that gets one argument fn({path: '', stats: {}}) and returns true to include or false to exclude the item.
    • traverseAll <Boolean> default: undefined
      • traverse all subdirectories, regardless of filter option. This can be useful when you have a filter function and still want to traverse all subdirectories even if your filter function doesn't pass for some directories.
  • Return: <Array<Object>> [{path: '', stats: {}}]

Examples

const klawSync = require('klaw-sync')

const paths = klawSync('/some/dir')
// paths = [{path: '/some/dir/dir1', stats: {}}, {path: '/some/dir/file1', stats: {}}]

catch error

const klawSync = require('klaw-sync')

let paths
try {
  paths = klawSync('/some/dir')
} catch (er) {
  console.error(er)
}
console.dir(paths)

files only

const klawSync = require('klaw-sync')

const files = klawSync('/some/dir', {nodir: true})
// files = [{path: '/some/dir/file1', stats: {}}, {path: '/some/dir/file2', stats: {}}]

directories only

const klawSync = require('klaw-sync')

const dirs = klawSync('/some/dir', {nofile: true})
// dirs = [{path: '/some/dir/dir1', stats: {}}, {path: '/some/dir/dir2', stats: {}}]

ignore hidden directories

const path = require('path')
const klawSync = require('klaw-sync')

const filterFn = item => {
  const basename = path.basename(item.path)
  return basename === '.' || basename[0] !== '.'
}

const paths = klawSync('/some/dir', { filter: filterFn})

filter based on stats

Here traverseAll option is required since we still want to read all subdirectories even if they don't pass the filter function, to see if their contents do pass the filter function.

const klawSync = require('klaw-sync')

const refTime = new Date(2017, 3, 24).getTime()
const filterFn = item => item.stats.mtime.getTime() > refTime

const paths = klawSync('/some/dir', { traverseAll: true, filter: filterFn })

Run tests

lint: npm run lint

unit test: npm run unit

lint & unit: npm test

benchmark: npm run benchmark

Performance compare to other similar modules

Running some benchmark tests on these modules:

(as of Jan 25, 2017) klaw-sync is the fastest module!

results (tested on Ubuntu 18.04, Intel(R) Core(TM) i7-2630QM CPU @ 2.00GHz, 8 CPUs, 8g RAM, node v10.9.0)
Running benchmark tests..

root dir length: 1110
walk-sync x 80.71 ops/sec ±1.42% (72 runs sampled)
klaw-sync x 160 ops/sec ±1.17% (79 runs sampled)
Fastest is klaw-sync

root dir length: 11110
walk-sync x 7.55 ops/sec ±3.39% (23 runs sampled)
klaw-sync x 14.95 ops/sec ±0.27% (40 runs sampled)
Fastest is klaw-sync

root dir length: 111110
walk-sync x 0.63 ops/sec ±6.92% (6 runs sampled)
klaw-sync x 1.22 ops/sec ±0.96% (7 runs sampled)
Fastest is klaw-sync

License

Licensed under MIT

Версии библиотеки

Версия
6.0.0