Ghost/ghost/update-check-service
Daniel Lockyer 2d1f9fff0c
Updated @tryghost/errors dependency
- there's a weird situation when we have mixed versions of the
  dependency because different libraries try to compare instances
- this brings the usage up to 1.2.21 so we can fix the build for now
2023-02-22 11:32:11 +01:00
..
lib Removed bluebird from misc packages (#15676) 2022-10-30 15:16:10 +00:00
test Cleaned up unused test utils 2022-08-18 11:55:49 +02:00
.eslintrc.js Added update check service initial commit 2021-06-02 18:17:56 +04:00
package.json Updated @tryghost/errors dependency 2023-02-22 11:32:11 +01:00
README.md Tidied up package README and LICENSE files 2022-07-26 15:22:10 +02:00

Update Check Service

Makes a request to updates.ghost.org to check for release & custom notifications. The service is provided in return for users opting in to anonymous usage data collection.

Usage

Check the UpdateCheckService's constructor JSDoc for the list of available parameters. This is how the service is initialized in Ghost:

const api = require('./api').v2;
const GhostMailer = require('./services/mail').GhostMailer;
const config = require('../shared/config');
const urlUtils = require('./../shared/url-utils');

const i18n = require('../shared/i18n');
const logging = require('../shared/logging');
const request = require('./lib/request');
const ghostVersion = require('./lib/ghost-version');
const UpdateCheckService = require('@tryghost/update-check-service');

const updateChecker = new UpdateCheckService({
    api: {
        settings: {
            read: api.settings.read,
            edit: api.settings.edit
        },
        posts: {
            browse: api.posts.browse
        },
        users: {
            browse: api.users.browse
        },
        notifications: {
            add: api.notifications.add
        }
    },
    config: {
        mail: config.get('mail'),
        env: config.get('env'),
        databaseType: config.get('database').client,
        checkEndpoint: config.get('updateCheck:url'),
        isPrivacyDisabled: config.isPrivacyDisabled('useUpdateCheck'),
        notificationGroups: config.get('notificationGroups'),
        siteUrl: urlUtils.urlFor('home', true),
        forceUpdate: config.get('updateCheck:forceUpdate'),
        ghostVersion: ghostVersion.original
    },
    i18n,
    logging,
    request,
    sendEmail: ghostMailer.send
});

// run the update check with 

updateChecker.check();