Skip to content

๐Ÿƒ Provides ways of checking whether a path is a legacy Windows device. ๐Ÿ’พ

License

Notifications You must be signed in to change notification settings

igorskyflyer/npm-windev

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

50 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

\\.\WinDev

๐Ÿƒ Provides ways of checking whether a path is a legacy Windows device. ๐Ÿ’พ


๐Ÿ’ƒ Since v.1.1.0 this package provides both a CommonJS module and an ES module, thanks to Modern Module.

What do you need to do to use one or the other?

Nothing. If you need a CommonJS module require it, if you need an ES module import it instead. Simple, right?


When creating files or folders on Windows there are some rules about naming them, one of which is that te usage of legacy Windows devices' names as the folder/file name is prohibited, i.e.:

โ€œDo not use the following reserved names for the name of a file:

CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9. Also avoid these names followed immediately by an extension; for example, NUL.txt is not recommended.โ€

source: Microsot Docs


Be aware that there are some edge-cases that this module also handles, examples #4 and #7 illustrate that. Technically the provided strings in those two examples are not legacy devices but you are still not allowed to create files/directories with those names.


Usage

Install it by running

npm i "@igor.dvlpr/windev"

API

function isWindowsDevice(name: string) => boolean

Checks whether the given directory or file name is a legacy Windows device.


Examples


const { isWindowsDevice } = require('@igor.dvlpr/windev')

console.log(isWindowsDevice()) // prints false
console.log(isWindowsDevice('')) // prints false
console.log(isWindowsDevice('con')) // prints true
console.log(isWindowsDevice('con.txt')) // prints true
console.log(isWindowsDevice('cOm3')) // prints true
console.log(isWindowsDevice('COM7 ')) // prints true
console.log(isWindowsDevice(' COM2 .txt.al')) // prints true
console.log(isWindowsDevice('CONnection')) // prints false