Designing a toy dependency injection library
In your injector you're exposing the dependencies object, in a way that all could access.

You should consider to hide it instead, so people will use just the API as it should be.

This happened because you choose to define your component just with a plain object approach. 

If you want to write a lib or an utility, it is better to use one of the module pattern.

For example wrapping your code in a function if you mean to use it within a browser:

!function () {
    const dependencies = {};

    const injector = {
      // my code here
    };

    return injector;
 }()


Or with the node modules if you use in node:

const dependencies = {}

const injector = {
    // your code here..
}

export default injector


So you could expose just the API function you want.

This helps the developer to better understand how you design the lib to be used.