1.4.5 • Published 2 years ago

file-path-helper v1.4.5

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

File Path Helper

Helpful methods for handling file path.

Table of contents

File Methods

globPromise

This method returns Promise object.

Glob promise.

  • @param string pattern
  • @param GlobOptions options
  • @returns Promise.<Array<string>, Error>

Example

const { globPromise } = require('file-path-helper');

async function getFiles() {
  const files = await globPromise('*.*');
  return files;
}

replaceSeparator

Replace directory separator.

  • @param string path
  • @param Separator separator default: '/'
  • @returns string

trimDir

Append last slash to directory.

  • @param string dir
  • @param Separator separator default: '/'

setDir

Set directory part of path.

  • @param string path
  • @param string dir
  • @param Separator separator default: '/'
  • @returns string

Example

const { setDir } = require('file-path-helper');

const newPath = setDir('dir/old/file.txt', 'new');
// newPath = 'new/file.txt'

Set directory part of path.

getLastNumber

Get last number from path.

  • @param string path
  • @returns string

Example

const { getLastNumber } = require('file-path-helper');

const num = getLastNumber('my-favorite-13.txt');
// num = '13'

removeLastNumber

Remove last number from file name.

  • @param string file
  • @returns string

Example

const { removeLastNumber } = require('file-path-helper');

const file = removeLastNumber('my-favorite-13.txt');
// file = 'my-favorite.txt'

autoIncrease

This method returns Promise object.

If the same file exists, It's returns filename what increased number.

  • @param string path
  • @returns Promise<string> auto increased path.

Example

const { autoIncrease } = require('file-path-helper');

const file = await autoIncrease('dogs.txt');
// file = 'dogs (2).txt';

resolveOutputFile

Resolve output filename using templates such as {name}, {source} or {ext}.

  • @param string output
  • @param string source
  • @returns string

Example

const { resolveOutputFile } = require('file-path-helper');

const output = resolveOutputFile('{name}-fixed.{ext}', 'dogs.txt');
// output = 'dogs-fixed.txt'

bytesToSize

Converts bytes to human readable size. e.g. 10 MB 1.25 GB

  • @param number bytes
  • @param number decimals - default: 2
  • @returns string

Example

const { bytesToSize } = require('file-path-helper');

const fileSize = bytesToSize(2048);
// fileSize = '2 KB'

parseSize

Parses string that includes file size and operator.

interface Size {
  bytes: number;
  operator: string; // '>', '>=', '=' ...
}
  • @param string size - e.g 1kb 10.5 MB >1gb =< 10 kb
  • @returns Size

Example

const { parseSize } = require('file-path-helper');

const size = parseSize('> 1mb');
// size.bytes = 1048576
// size.operator = '>'

String Methods

truncate

Truncate string what given length.

  • @param string str
  • @param number length
  • @param string ellipsis - default: '…'
  • @returns string

Example

const { truncate } = require('file-path-helper');

const str = truncate('1234567890', 6);
// str = '12345…'

sanitize

Sanitize string for filename safe.

  • @param string str
  • @returns string replacer - default: ''

Example

const { sanitize } = require('file-path-helper');

const str = sanitize(' he*llo/_<wo:rld');
// str = 'hello_world'

Array Methods

naturalSort

Sorting array of alphanumerical strings naturally.

  • @param string[] arr
  • @returns string[]

Example

const arr = [
  'test 1.txt',
  'test 11.txt',
  'test 3.txt',
];
const sorted = naturalSort(arr);
// sorted = [
//   'test 1.txt',
//   'test 3.txt',
//   'test 11.txt',
// ];

filter

Filtering an array with Promise.

  • @param T[] arr - filtering target array.
  • @param function(T, number, T[]): Promise<boolean> cb - callback function for filtering. arguments is value, index, array.
  • @returns Promise<T[]>

Example

const arr = [1, 2, 3, 4, 5];
const doSomething = () => Promise.resolve();

const res = await filter(arr, async v => {
  await doSomething();
  return (v % 2) == 1;
});
// res = [1, 3, 5]

chunks

Split array into chunks.

  • @param T[] arr
  • @param number size
  • @returns T[][]

Example

const arr = [1, 2, 3, 4, 5, 6, 7];
const res = chunks(arr, 3);
// res = [[1, 2, 3], [4, 5, 6], [7]]

Date Methods

parseDate

Parsing the value to date. it's useful handling 'date'(not hours and minutes) purpose.

interface ParsedDate {
  date: Date;
  year: number;
  month: number;
  day: number;
  toDateString: () => string;
}
  • @param string|number|Date value
  • @returns ParsedDate

Example

const parsed = parseDate('feb 17, 1995 03:24:00');
// parsed = {
//   date: new Date('feb 17, 1995 03:24:00'), // Date object
//   year: 1995,
//   month: 2,
//   day: 17,
// }
// parsed.toDateString() // '1995-02-17' ISO date format

getDates

Returns array of date strings.

  • @param string value - date string. e.g. '2020-01-01' or '2020-01-01~2020-01-31'
  • @returns string[]

Example

const dates = getDates('2020-02-01~2020-02-05');
// dates = [
//   '2020-02-01',
//   '2020-02-02',
//   '2020-02-03',
//   '2020-02-04',
//   '2020-02-05',
// ]

diffDays

Returns difference between two dates.

  • @param string|number|Date a
  • @param string|number|Date b
  • @returns number

Example

const days = diffDays('2020-02-24', '2020-03-02');
// days = 7

License

MIT License

1.4.5

2 years ago

1.4.4

2 years ago

1.4.3

3 years ago

1.4.2

4 years ago

1.4.1

4 years ago

1.4.0

4 years ago

1.3.0

4 years ago

1.2.0

4 years ago

1.1.0

4 years ago

1.0.1

4 years ago

1.0.0

5 years ago