async importFromFile(file, importOptions = {}) {
        let importData;
        if (importOptions.data) {
            importData = importOptions.data;
        } else {
            // Step 1: Handle converting the file to usable data
            // Has to be completed outside of job to ensure file is processed before being deleted
            importData = await this.loadFile(file);
        }

        debug('importFromFile completed file load', importData);

        const env = config.get('env');
        if (!env?.startsWith('testing') && !importOptions.runningInJob) {
            return jobManager.addJob({
                job: () => this.importFromFile(file, Object.assign({}, importOptions, {
                    runningInJob: true,
                    data: importData
                })),
                offloaded: false
            });
        }

        let importResult;
        try {
            // Step 2: Let the importers pre-process the data
            importData = await this.preProcess(importData);

            // Step 3: Actually do the import
            // @TODO: It would be cool to have some sort of dry run flag here
            importResult = await this.doImport(importData, importOptions);

            // Step 4: Report on the import
            importResult = await this.generateReport(importResult);

            return importResult;
        } catch (err) {
            logging.error(err, 'Content import was unsuccessful');
            importResult = {data: {errors: [err]}};
        } finally {
            // Step 5: Cleanup any files
            await this.cleanUp();

            if (!env?.startsWith('testing')) {
                // Step 6: Send email
                const email = this.generateCompletionEmail(importResult, {
                    emailRecipient: importOptions.user.email,
                    importTag: importOptions.importTag
                });
                await ghostMailer.send({
                    to: importOptions.user.email,
                    subject: importResult?.data?.errors
                        ? 'Your content import was unsuccessful'
                        : 'Your content import has finished',
                    html: email
                });
            }
        }
    }
Import From File
The main method of the ImportManager, call this to kick everything off!
@param {File} file
@param {ImportOptions} importOptions to allow override of certain import features such as locking a user
@returns {Promise<Object.<string, ImportResult>>}