๐ 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 toModern 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 moduleimport
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
, andLPT9
. 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.
Install it by running
npm i "@igor.dvlpr/windev"
function isWindowsDevice(name: string) => boolean
Checks whether the given directory or file name is a legacy Windows device.
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