All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
18.2.2 (2024-01-05)
Note: Version bump only for package ogre-tools
18.2.1 (2024-01-04)
Note: Version bump only for package ogre-tools
18.2.0 (2024-01-04)
- Introduce mechanism to purge all instances but not overrides (6b98501)
- Revert "chore: Add work in progress unit tests for early overriding injection tokens" (83b6ad7)
18.1.0 (2023-11-27)
- Expose typing for instantiation parameter of computedInjectMany (e87d092)
18.0.2 (2023-11-14)
Note: Version bump only for package ogre-tools
18.0.1 (2023-10-26)
- Fix bad imports and remove dead comment (088ecb0)
18.0.0 (2023-10-23)
- Illegal attempts to inject singletons with an instantiation parameter now throw. Adapt by either:
- Changing design to not use instantiation parameters for singletons
- Making the singletons keyed singletons instead
- Having singletons receive what they need as a dependency, instead of instantiation parameter
- Expose typing of getKeyedSingletonCompositeKey (2e94d50)
- Introduce DeepMap, being like Map, but with composite keys instead of singular ones (7ef8e99)
- Make ComputedInjectMany support instantiation parameters (fc6aefa)
- Make keys of keyedSingleton able to be composed of multiple reference values (ad6c067)
- Make singletons throw if instantiation parameter is provided (96215f2)
17.10.0 (2023-10-19)
- Introduce proper typing for pipelineBreak (6a78b40)
- Introduce safePipeline which is like pipeline, but considers "undefined" as pipelineBreak (db82b7c)
17.9.0 (2023-10-17)
- Introduce early-override to permit override of injectable before registered (6e7f5ea)
- Introduce way to get return-value of first of many functions that matches an input-value (c939461)
17.8.0 (2023-10-09)
- Make public a way to break/abort flow of a pipeline (30b58d9)
17.7.0 (2023-09-12)
- Make linkable throw when a glob in .linkable.json leads to no package.json (be952b6)
17.6.0 (2023-09-06)
- Introduce the injectable bunch, ie. a registrable object of multiple injectables (e115dde)
- Make auto-register support same injectable being exported multiple times (a1527e3)
- Enforce code coverage yet again (08dde1f)
17.5.1 (2023-06-22)
- Expose InjectWithMeta in DI during instantiate (816e57a)
17.5.0 (2023-06-21)
- Introduce InjectWithMeta (24e9bf0)
17.4.0 (2023-06-21)
- Introduce InjectWithMeta (24e9bf0)
17.3.0 (2023-06-19)
- Make injectable-mobx not require MobX-transaction (45a2712)
17.2.0 (2023-06-01)
- Make permitting side effects work properly with injection tokens (f3dea3b)
17.1.1 (2023-05-31)
- Handle all permutations of ill-formatted paths (3e3bd6b)
- Make linkable push throw when encountering file paths incompatible with yalc (be75a7e)
17.1.0 (2023-05-30)
- Make linkable able to automatically attempt fixing corrupted yalc.lock files (a574e19)
- Make linkable able to link from monorepo (2de597b)
17.0.0 (2023-05-17)
- Adapt to changes in typing of asyncComputed.
- Make types of asyncComputed describe the value for pending more (b6719f5)
16.1.2 (2023-05-17)
- Revert a patch release contents that was actually breaking (22628a3)
16.1.1 (2023-05-17)
- Make types of asyncComputed describe the value for pending more accurately (e4d6325)
16.1.0 (2023-05-16)
- Implement access to source namespace to permit eg. "scope specific" keyedSingletons (a3a0326)
16.0.0 (2023-05-15)
- Make sure previous usages of injectable id of meta do not break with the new addition of namespace. Eg. what previously was di.injectManyWithMeta(someInjectionToken) -> { id: 'some-id', instance: ... } ...will now become: { id: 'some-scope:some-id', instance: ... } ...when a scope is present.
- Implement computedInjectManyWithMeta, and add missing type tests to computedInjectMany (a8527c1)
- Make the injectable id for "meta" namespaced to avoid collisions (baa52a9)
15.9.0 (2023-05-08)
- Permit also programmatic access to functionalities of linkable (8e51894)
- Permit unoverride of injectionToken with exactly one implementation (4346c92)
15.8.1 (2023-05-02)
- Use correct kind of npm-dependencies (5039d1f)
15.8.0 (2023-05-02)
- Allow isInjectable and isInjectionToken to be used for type narrowing (b82c1c9)
15.7.0 (2023-04-27)
- Add "linkable-push" as counterpart of "linkable" (240ea84)
- Add support for globs in the linkable configuration (62144eb)
- Make local node_modules of linked packages not break runtime when in non-bundled context (a9bfcae)
15.6.1 (2023-04-24)
Note: Version bump only for package ogre-tools
15.6.0 (2023-04-24)
- Indicate lack of support for missing "files" in package.jsons used by linkable (e0d14e6)
- Introduce "linkable", ie. like "npm link", but mimicking "npm pack" as symlinks (1955082)
- Make built linkable runnable as npm bin script (410a78e)
- Avoid destructuring to not make brittle this-context of "fs" not break (5db7984)
- Fix "path"-specific typing error (b670b36)
- Fixup (6284ca4)
- Make existence of static linked files work by using absolute path (50fa2d6)
- Use correct build script for a ts-package (d80a233)
15.5.1 (2023-04-17)
- Implement also nested di.injectFactory() (4db761b)
15.5.0 (2023-04-17)
- Introduce di.injectFactory() (c21a5fa)
15.4.0 (2023-04-11)
- Introduce access to already injected instances (a8ecc66)
15.3.1 (2023-04-06)
- Clarify typing of injectionDecoratorToken and instantiationDecoratorToken (cea796b)
15.3.0 (2023-04-04)
- Allow disabling cycle detection (661f346)
15.2.1 (2023-03-31)
- Change the typing of injectionDecoratorToken (e0b8871)
15.2.0 (2023-03-30)
- Restore cycle detection (f603234)
- Fix injectable-utils entrypoint (84cf9de)
- Fix type decl to fix test (ab00ef9)
- Improve typing of injectionDecoratorToken and instantiationDecoratorToken (b204cf1)
15.1.2 (2023-03-02)
- Fix injectable-utils entrypoint (6a668b5)
15.1.1 (2023-02-27)
Note: Version bump only for package ogre-tools
15.1.0 (2023-02-22)
- Make placeholder of withInjectables able to be more specialized by passing props to it (d3fa8aa)
15.0.1 (2023-02-21)
- Fix bad import path (c90d54b)
15.0.0 (2023-02-20)
injectable-react
now requiresregisterInjectableReact(di)
to work.- Identify injectables and tokens by reference instead of id to permit namespaces later
- Make flow not automatically await for promises in arrays
- Identify injectables and tokens by reference instead of id to permit namespaces later (72487e2)
- Include "scope" of injectable in typing (6a81e7c)
- Introduce "di.injectManyWithMeta()" to permit reuse of injectable id in implementation code (94fed1e)
- Introduce "generable" (ie. generator library X) as package (bd1b8c7)
- Introduce combinations in fp (88f0617)
- Introduce matchAll in fp (000b23e)
- Introduce movingWindow in fp (1f212c0)
- Introduce relationJoin in fp (09ee015)
- Introduce replaceTagsWithValues in fp (235be79)
- Introduce scopes for injectables to initially serve as namespaces (d773e34)
- Make flow not automatically await for promises in arrays (9752ef4)
- Remove too complex concept of "ad-hoc"-injectables (ie. injectable without registration) (3baaf04)
14.0.3 (2022-11-23)
Note: Version bump only for package ogre-tools
14.0.2 (2022-11-23)
Note: Version bump only for package ogre-tools
14.0.1 (2022-11-23)
Note: Version bump only for package ogre-tools
14.0.0 (2022-11-22)
- Make properties of an injectable read-only to prevent misuse
- Make properties of an injectable read-only to prevent misuse (abf402a)
- Permit override of single injectable using injection token (f6ae117)
13.2.1 (2022-11-17)
- Make auto-register work in already built packages (35ed955)
13.2.0 (2022-11-17)
- Duplicate asyncComputed in proper, new package (5e83f5f)
13.1.0 (2022-11-15)
- Expose typing for test utils (5c0d408)
13.0.0 (2022-11-14)
autoRegister()
now requirestargetModule
andgetRequireContexts
instead ofrequireContexts
.- Prevent overriding already injected injectables
- Make auto-register work within jest without hacks (7ef90d1)
- Make getSafeFrom list existing properties as part of error for none found (8eef13c)
- Prevent overriding already injected injectables (3a611bc)
- Export fp-functions present in typing: "getFrom" and "getSafeFrom" (f9e85a4)
- Fix TypeScript compilation (0bdcd5b)
- Revert "chore: Make CI NPM install in non-CI way to try fix build in CI" (f5aeefd)
12.0.1 (2022-10-25)
- Manually update versions of peerDependencies as Lerna doesn't do it for some reason (0b46667)
12.0.0 (2022-10-25)
- Make asyncComputed receive parameters as value object instead of many arguments
- Make bundle sizes a lot smaller by not bundling from node_modules
- Make asyncComputed able to show latest value (instead of pending value) between updates (d543053)
- Make asyncComputed receive parameters as value object instead of many arguments (7cf0035)
- Make bundle sizes a lot smaller by not bundling from node_modules (d47acbe)
- Enable "npm workspaces" to make peerDependencies work in build and development (628c37b)
11.0.0 (2022-10-04)
- Stop exposing technicalities
- Replace symbols with magic strings, as external libs may bundle multiple instances (ce79b25)
- Stop exposing technicalities (e06d77c)
10.3.2 (2022-09-26)
- Export missing types from Runnable (05f48b4)
10.3.1 (2022-09-26)
Note: Version bump only for package ogre-tools
10.3.0 (2022-09-26)
- Introduce "runnable" in injectable-utils (80eb213)
- Make build of a ts-package include type information (d174431)
10.2.0 (2022-09-23)
- Make auto-register also register named exports, and not just the default export (6af7f4c)
10.1.0 (2022-09-02)
- Make error message for attempt to inject a side-effect contain context (b474146)
- Make decorator injectables behave consistently with cycles (b6481b5)
10.0.0 (2022-09-01)
- Make sure all registrations happen before injections
- Make registrations in presence of computedInjectMany require explicit MobX-transaction
- Expose id of injectionToken in typing (09284f3)
- Expose typings for decorability, tags and di.context (fb49104)
- Make registrations in presence of computedInjectMany require explicit MobX-transaction (dcbf551)
- Permit registrations without MobX transaction when injectable has no token (c65a529)
- Add unit tests to prove and document the injection context in di.context (3126248)
- Make computedInjectMany not blow up when unrelated decorators are present (888f76f)
- Make sure all registrations happen before injections (e551e70)
9.0.3 (2022-08-25)
- Make injectable-react not break React reconciliation when using async dependencies (049c84a)
- Revert "chore: Change to using v8 coverage provider for babel misbehaving" (4fb612b)
9.0.2 (2022-08-10)
Note: Version bump only for package ogre-tools
9.0.1 (2022-06-29)
Note: Version bump only for package ogre-tools
9.0.0 (2022-06-20)
- Make containers have ID for better error messages
- Make containers have ID for better error messages (ea3ac4c)
- Prevent nested computedInjectMany's from appearing as cycles (24cfa1f)
8.0.0 (2022-06-15)
- Expose function for injecting reactively many instead of using instantiation parameter
- Add shorthands for decorating to make addition of e.g. jest.spy easier (350a957)
- Expose deregistering in types (6823839)
- Expose function for injecting reactively many instead of using instantiation parameter (b572b32)
- Return same computed when injecting reactively many multiple times for same injection token (75d8f51)
- Revert "chore: Consolidate to relying of peer dependencies in injectable extensions" (8f9b9b2)
7.1.0 (2022-06-09)
- Expose way to decorate instantiations (8f4b39a)
7.0.0 (2022-04-27)
- Extract auto-registration as extension
- Add decorator for deregistration of injectables (1192484)
- Expose deregister to instantiate (eea8bcc)
- Expose di.unoverride() for TypeScript (293b3ac)
- Introduce "reactive injectMany" which reacts to "late registrations" of injection tokens (da932a6)
- Introduce automated testing for typings (19b2d45)
- Introduce decorator for registration to later permit reactive injectMany (34d2667)
- Introduce deregistration of injectables (d5ee408)
- Make all reactive registrations happen together in one transaction (3acf508)
- Make async injectMany react also to deregistrations (be2f193)
- Make deregistration of injectables variadic (8681a6e)
- Make late registered branches deregister together (41304db)
- Make registration of injectables variadic (eea1c0a)
- Make MobX peer-dependency for injectable-extension-for-mobx (924b4f6)
- Extract auto-registration as extension (8395a7a)
6.0.1 (2022-03-30)
- Fix error in typing of a lifecycle (3b4b3cd)
6.0.0 (2022-03-29)
- Remove concept of setuppable
- Extract dependency graphing from core as extensions
- Extract error monitoring from core as extensions
- Extract dependency graphing from core as extensions (4ab3eeb)
- Extract error monitoring from core as extensions (d255f06)
- Remove concept of setuppable (51affc5)
5.2.0 (2022-03-23)
- Expose permitting of side-effects to TypeScript (a69daea)
5.1.3 (2022-03-18)
Note: Version bump only for package ogre-tools
5.1.2 (2022-03-14)
- Report misconfigured *.injectable.{js|ts} files (8117f16)
- Unit tests (435690e)
- Uppercase for errors (8b48b69)
5.1.1 (2022-03-11)
- Make all reports directories excludes from NPM (a7b71ce)
5.1.0 (2022-03-11)
- Add "setup" to branch-tags of dependency graphing (da315b2)
- Add branch tags for dependency graphing (9e43197)
- Add injection context for withInjectables (d69a57d)
- Expose instantiation parameters to error monitoring for better messages (7b13267)
- Expose naive, synchronous types for pipeline (b909e72)
- graphing: Add appearance for sync/async (a1523cf)
- graphing: Introduce graph customizers to eg. make reactive dependencies stick out (8877020)
- graphing: Make graph more eye-ballable by adding colors and symbols (d31bc57)
- graphing: Make injection tokens stand out (17796b5)
- graphing: Make link and link info text color customizable separately (aa42120)
- graphing: Make link and link info text colors customizable (2057001)
- Hide irrelevant data in dependency graphing (7e38ac3)
- injectable: Make setups able to inject many (1dfca82)
- Introduce ad-hoc injectables that do not require registration (82c7a43)
- Introduce error monitoring for all injectables that return a function (6f458f2)
- Introduce injectable extension for dependency graphing using Plant UML (a32d206)
- Introduce late registration (5524f0e)
- Introduce variation point for error handling of instantiation (481b4d5)
- Introduce variation point for global decoration of "instantiate" (fe5e1a9)
- Introduce variation point for targeted decoration of "instantiate" (70b8918)
- Introduce way to get property value from dictionary and throw if it does not exist (3707c78)
- Make error monitoring possible for TypeScript (d0fd4ef)
- Make injection tokens display more pretty in dependency graphing (dc55d12)
- Make setuppables display more pretty in dependency graphing (1fbdf74)
- Permit instance key of any type (0a68f24)
- Show lifecycle names in dependency graphing (9c0cf20)
- Add missing export for error monitoring in JS (55fd4d2)
- complete fix (2bba4f3)
- Define nodes before links in dependency graphing for human-readability (af2c0d3)
- Faulty type parameter value (17cfa76)
- Fix bad import (16f06ce)
- Fix typing of getting injectable for injection token (53ca8ad)
- lifecycleEnum.keyedSingleton not working (06a86dc)
- Make also injectMany comply to error monitoring for instantiation (eb8baf7)
- Make setuppables display correctly in dependency graphing (30425e4)
- Present dependency graph in correct order and with tokens (17a5b6c)
- Resolve PR comments (bb2e1de)
- typings: Improve typings to work with arbitrary injection params (c1d900a)
5.0.0 (2022-02-09)
- Consolidate typing of injectable and injectable-react
- Consolidate typing of injectable and injectable-react (a52180d)
4.1.0 (2022-02-08)
- Expose keyed singleton as lifecycle in types (282762e)
- introduce keyedSingleton as lifecycle (174472c)
- Permit primitive instantiation parameters (b10dd82)
4.0.0 (2022-02-07)
- force breaking change to cause major version bump in Lerna
- add NPM-script for opening github in browser
- drop another old version of node for breaking build (d5cfaf7)
- fix build by using webpack made available to a package by lerna (5b08e24)
- force breaking change to cause major version bump in Lerna (f0c1def)
- make breaking changes in git cause major version bump in Lerna (be13e14)
- make publish not time out by watching tests (be4aba6)
- stop using workspaces for not being supported in CI (3858ee2)
- Revert "Revert "Enhance error for injecting non-registered injectable"" (8e24a0c)
- Revert "Revert "Implement di.injectMany() as way to inject multiple registered injectables for an injection token"" (f5d0e01)
- Revert "Revert "Permit injection using only injectable or injection token. Replace "id" with "module" for better error messages."" (fc67c38)
- Revert "Revert "Remove concept of "injectable viability" for being YAGNI"" (e4979c6)
- Revert "Revert "Prevent public access to injection context"" (4c88b4a)
- add NPM-script for opening github in browser (c94284f)