New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

file-path-maker

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

file-path-maker

organize incoming files in a predictably growing hierarchy

latest
Source
npmnpm
Version
1.0.0
Version published
Maintainers
1
Created
Source

workflow Jest coverage

file-path-maker is an npm module for organizing a steady flow of incoming files in a predictably growing tree of directories.

Description

Suppose an information system have to store about N files per day (hour, second etc.) in arbitrary directories under a common root. Once written, files are never modified, but their retention time is limited to T years (months etc.) after which all expired content must be deleted or compressed, moved to other media and so on.

The obvious solution for this is to have one directory per year, subdivided by month etc. Leaf directories correspond to the smallest time unit in use. They should contain the greatest number of files comfortable to work with at once. The exact choice depends on the flow rate, the retention time and the file system capabilities.

To implement such logic, file-path-maker provides the FilePathMaker class with the single API method called make that calculates paths like ${root}/${prefix}/${yyyy}/${mm}/${dd}/.../${file}.${ext} while creating necessary directories on the fly.

Installation

npm install file-path-maker

Usage

const {FilePathMaker} = require ('file-path-maker')

const fpm = new FilePathMaker ({
     root   :  '/var/filestore',
  // mode   :  0o777, 
  // format :  {year: 'numeric', month: '2-digit', day: '2-digit'},
})

const {
  rel,   //                `daily/${yyyy}/${mm}/${dd}/docs/file.ext`
  dir,   // `/var/filestore/daily/${yyyy}/${mm}/${dd}/docs`
  abs,   // `/var/filestore/daily/${yyyy}/${mm}/${dd}/docs/file.ext`
} = fpm.make ('docs/file.ext', 'daily')

Constructor Options

NameDescription
rootThe absolute path of a directory containing all make results
modeThe newly created directories mode, see fs.mkdir
format Intl.DateTimeFormat constructor options

The make method

parameters

NameDescriptionNote
pathThe path to append lastMandatory
prefixThe string to place between the root and the date based partOptional

result properties

NameDescriptionNote
absThe absolute generated pathpath.sep as delimiter
relThe generated path relative to root'/' as delimiter
dirThe absolute directory name of the generated pathguaranteed to exist

Limitations

file-path-maker never checks for existing files nor path uniqueness. Subsequent make ('1.txt') calls may very well give identical results, so writing different content by those path will lead to data loss. It's up to the application to implement necessary checks, locking, using globally unique names and so on.

The make () method is synchronous and uses fs.mkdirSync internally. Potentially, this may lead to some performance issues.

FAQs

Package last updated on 27 Feb 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts