2
2
mirror of https://github.com/Llewellynvdm/nativefier.git synced 2024-06-18 03:42:20 +00:00
nativefier/src/utils/sanitizeFilename.ts
2021-01-16 08:40:04 -05:00

28 lines
836 B
TypeScript

import * as log from 'loglevel';
import { DEFAULT_APP_NAME } from '../constants';
// eslint-disable-next-line @typescript-eslint/no-var-requires
const sanitize = require('sanitize-filename');
export function sanitizeFilename(
platform: string,
filenameToSanitize: string,
): string {
let result: string = sanitize(filenameToSanitize);
// remove all non ascii / file-problematic chars, or use default app name
/* eslint-disable no-control-regex */
result =
result.replace(/[^\x00-\x7F]/g, '').replace(/[/,;.\\]/g, '') ||
DEFAULT_APP_NAME;
/* eslint-enable no-control-regex */
// spaces will cause problems with Ubuntu when pinned to the dock
if (platform === 'linux') {
result = result.replace(/\s/g, '');
}
log.debug(`Sanitized filename for ${filenameToSanitize} : ${result}`);
return result;
}