mirror of https://github.com/jiahaog/Nativefier
27 lines
814 B
JavaScript
27 lines
814 B
JavaScript
import log from 'loglevel';
|
|
import { sanitizeFilename } from '../../utils';
|
|
import { inferTitle } from '../../infer';
|
|
import { DEFAULT_APP_NAME } from '../../constants';
|
|
|
|
function tryToInferName({ name, targetUrl }) {
|
|
// .length also checks if its the commanderJS function or a string
|
|
if (name && name.length > 0) {
|
|
return Promise.resolve(name);
|
|
}
|
|
|
|
return inferTitle(targetUrl)
|
|
.then((pageTitle) => pageTitle || DEFAULT_APP_NAME)
|
|
.catch((error) => {
|
|
log.warn(
|
|
`Unable to automatically determine app name, falling back to '${DEFAULT_APP_NAME}'. Reason: ${error}`,
|
|
);
|
|
return DEFAULT_APP_NAME;
|
|
});
|
|
}
|
|
|
|
export default function({ platform, name, targetUrl }) {
|
|
return tryToInferName({ name, targetUrl }).then((result) =>
|
|
sanitizeFilename(platform, result),
|
|
);
|
|
}
|