fix: use global namespace when defining awslambda InvokeStore global type #25
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue #, if available: closes #22
I closed the pull request #18 with the following comment:
However, today I spent several hours trying to debug an issue related to this namespacing problem and I have realised that my assessment above was wrong.
The reason the errors I was seeing went away was because by chance my import of
InvokeStorehappened to be loaded by the compiler before theaws-lambdatypes. I had another module that usesaws-lambdafar more extensively and I had to pinpoint the exact file whereaws-lambdawas first loaded and put myInvokeStoreimport above this to make the compiler errors disappear.Relying on import order like this is obviously a very brittle and unsatisfactory workaround so I am re-opening my closed PR with a fix that will remove these errors.
I have just copied the same description of changes from that issue so we don't have to switch between multiple issues.
Description of changes:
When using the new v0.2.0 version of
InvokeStoreI encountered the following error trying to use the global InvokeStore object:The error:
The issue is because I am using the popular
aws-lambdatypes package, which defines theawslambdaglobal as a namespace:As
InvokeStoredoes not use a namespace, the global it defines does not get merged with the otherawslambdanamespace:I think the above may have been done this way to allow the
InvokeStorefield to be optional using the?token. Namespaces don't support this but you can say a value can beundefined.This PR makes the change to use a namespace instead. I have tested this with my project and the build error is resolved by this change.