@igor.dvlpr/my-file-path
v1.0.1
Published
🌟 An npm module that strongly types file paths! 🥊
Downloads
7
Maintainers
Readme
My file path
🌟 An npm module that strongly types file paths! 🥊
🕵🏼 Usage
Install it by executing:
npm i "@igor.dvlpr/my-file-path"
🤹🏼 API
The module exposes a generic type and 3 generic functions.
Type
type FilePath<ext extends string>
Use this type for compile-time safety.
index.ts
type JsonFile = FilePath<'json'>
const filePathJson: JsonFile = 'abc.json' // works in the IDE
const filePathTxt: JsonFile = 'abc.txt' // will not work in the IDE
Functions
isMyFilePath
function isMyFilePath<Ext extends string>(
filePath: string,
extension: Ext
): boolean
Checks whether the provided filepath conforms with the provided file extension.
Generic parameter:
Ext
- the file extension to use with the generic, without a leading dot.
Function parameters:
filePath
- the filepath to check.
extension
- the file extension to perform the check with.
Will not throw
.
Returns a boolean
.
createMyFilePath
function createMyFilePath<Ext extends string>(
filePath: string,
extension: Ext
): FilePath<Ext>
Checks whether the provided filepath conforms with the provided file extension and returns it if true. Otherwise it returns an empty string.
Generic parameter:
Ext
- the file extension to use with the generic, without a leading dot.
Function parameters:
filePath
- the filepath to check.
extension
- the file extension to perform the check with.
Will not throw
.
Returns a FilePath<Ext>
.
assertMyFilePath
function assertMyFilePath<Ext extends string>(
filePath: string,
extension: Ext,
errorMessage?: string
): void
Asserts whether the provided filepath conforms with the provided file extension.
Generic parameter:
Ext
- the file extension to use with the generic, without a leading dot.
Function parameters:
filePath
- the filepath to check.
extension
- the file extension to perform the check with.
errorMessage
- the error message to throw.
Will throw
if the filepath doesn't conform the provided extension.
Returns a void
.
🪪 License
Licensed under the MIT license which is available here, MIT license.
🧬 Related
🎍 Provides a universal way of formatting file-paths in Unix-like and Windows operating systems as an alternative to the built-in path.normalize(). 🧬
🧲 Provides ways of properly checking if a path exists inside a given array of files/directories both on Windows and UNIX-like operating systems. 🗺
🧰 Provides ways of testing whether a given value can be a valid file/directory name. 🏜
🧠 Zep is a zero-dependency, efficient debounce module. ⏰
🔱 Odin is an Object wrapper that allows you to create objects and set their attributes - all at once! 🔺