src/extensibility/Package.js
function installUpdate(path, nameHint) {
        var d = new $.Deferred();
        install(path, nameHint, true)
            .done(function (result) {
                if (result.installationStatus !== InstallationStatuses.INSTALLED) {
                    d.reject(result.errors);
                } else {
                    d.resolve(result);
                }
            })
            .fail(function (error) {
                d.reject(error);
            });
        return d.promise();
    }
function installUpdate(path, nameHint) {
        var d = new $.Deferred();
        install(path, nameHint, true)
            .done(function (result) {
                if (result.installationStatus !== InstallationStatuses.INSTALLED) {
                    d.reject(result.errors);
                } else {
                    d.resolve(result);
                }
            })
            .fail(function (error) {
                d.reject(error);
            });
        return d.promise();
    }
function installUpdate ( path , nameHint ) { var d = new $ . Deferred ( ) ; install ( path , nameHint , true ) . done ( function ( result ) { if ( result . installationStatus !== InstallationStatuses . INSTALLED ) { d . reject ( result . errors ) ; } else { d . resolve ( result ) ; } } ) . fail ( function ( error ) { d . reject ( error ) ; } ) ; return d . promise ( ) ; }
Install an extension update located at path.
This assumes that the installation was previously attempted
and an installationStatus of "ALREADY_INSTALLED", "NEEDS_UPDATE", "SAME_VERSION",
or "OLDER_VERSION" was the result.

This workflow ensures that there should not generally be validation errors
because the first pass at installation the extension looked at the metadata
and installed packages.

@param {string} path to package file
@param {?string} nameHint Hint for the extension folder's name (used in favor of
path's filename if present, and if no package metadata present).
@return {$.Promise} A promise that is resolved when the extension is successfully
installed or rejected if there is a problem.
Install an extension update located at path . This assumes that the installation was previously attempted and an installationStatus of ALREADY_INSTALLED NEEDS_UPDATE SAME_VERSION or OLDER_VERSION was the result .