• Robert Knight's avatar
    Make construction method for objects in `Injector` explicit · 947a2acc
    Robert Knight authored
    Previously a heuristic based on function naming was used to determine
    whether `Injector` should construct objects with `new` or not. This is
    brittle because compiler transforms may alter function names (eg. terser
    removes them by default).
    
    This commit re-works the API so that the caller explicitly indicates how
    the object should be created (the "provider" to use). As a convenience
    if a function is passed it is assumed to be a class.
    
    ```
    // Register a class.
    register("anObject", SomeClass);
    register("anObject", { class: SomeClass });
    
    // Register a factory.
    register("anObject", { factory: makeMeAnObject });
    
    // Register a plain value.
    register("anObject", { value: "foobar" });
    ```
    947a2acc
Name
Last commit
Last update
.github Loading commit data...
bin Loading commit data...
docs Loading commit data...
embedding-examples Loading commit data...
images Loading commit data...
scripts Loading commit data...
src Loading commit data...
.babelrc Loading commit data...
.dockerignore Loading commit data...
.eslintignore Loading commit data...
.eslintrc Loading commit data...
.gitignore Loading commit data...
.npmignore Loading commit data...
.npmrc Loading commit data...
.prettierignore Loading commit data...
.prettierrc Loading commit data...
.python-version Loading commit data...
.travis.yml Loading commit data...
CODE_OF_CONDUCT Loading commit data...
Dockerfile Loading commit data...
Jenkinsfile Loading commit data...
LICENSE Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
gulpfile.js Loading commit data...
package.json Loading commit data...
requirements-dev.in Loading commit data...
tox.ini Loading commit data...
yarn.lock Loading commit data...