blob: 3b0d747b7f973d7b507272751800a0eb123c72e4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
# filenamify
> Convert a string to a valid safe filename
On Unix-like systems, `/` is reserved. On Windows, [`<>:"/\|?*`](http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29#naming_conventions) along with trailing periods are reserved.
## Install
```
$ npm install filenamify
```
## Usage
```js
const filenamify = require('filenamify');
filenamify('<foo/bar>');
//=> 'foo!bar'
filenamify('foo:"bar"', {replacement: '🐴'});
//=> 'foo🐴bar'
```
## API
### filenamify(string, options?)
Convert a string to a valid filename.
### filenamify.path(path, options?)
Convert the filename in a path a valid filename and return the augmented path.
#### options
Type: `object`
##### replacement
Type: `string`\
Default: `'!'`
String to use as replacement for reserved filename characters.
Cannot contain: `<` `>` `:` `"` `/` `\` `|` `?` `*`
##### maxLength
Type: `number`\
Default: `100`
Truncate the filename to the given length.
Systems generally allow up to 255 characters, but we default to 100 for usability reasons.
## Browser-only import
You can also import `filenamify/browser`, which only imports `filenamify` and not `filenamify.path`, which relies on `path` being available or polyfilled. Importing `filenamify` this way is therefore useful when it is shipped using `webpack` or similar tools, and if `filenamify.path` is not needed.
```js
const filenamify = require('filenamify/browser');
filenamify('<foo/bar>');
//=> 'foo!bar'
```
## Related
- [filenamify-cli](https://github.com/sindresorhus/filenamify-cli) - CLI for this module
- [filenamify-url](https://github.com/sindresorhus/filenamify-url) - Convert a URL to a valid filename
- [valid-filename](https://github.com/sindresorhus/valid-filename) - Check if a string is a valid filename
- [unused-filename](https://github.com/sindresorhus/unused-filename) - Get a unused filename by appending a number if it exists
- [slugify](https://github.com/sindresorhus/slugify) - Slugify a string
|