When using Aurelia in SPFx you can use the dependency injection feature to store the current WebPartContext.

aurelia.container.registerInstance("WebPartContext", this.context);

I my render method I store looks like below. Notice the line with registerInstance, it stores the WebPartContext with a name.

public render(): void
{
   this.domElement.innerHTML = '<div id="${this.instanceId}" class="${this.instanceId}" >Loading...</div>';
   require(['aurelia-bootstrapper'],(au) =>
   {
      au.bootstrap((aurelia: Aurelia) =>
      {
         aurelia.use
         .standardConfiguration()
         .developmentLogging();
         var el = document.getElementById(this.instanceId);
         aurelia.start().then(() => {
            aurelia.container.registerInstance("WebPartContext", this.context);
            aurelia.setRoot(PLATFORM.moduleName('webparts/documentList/document'),el);
         });
       });
   });
}

And then you can inject the context anywhere you like, see the code below. We inject the WebPartContext by refering to the name we registered the instance in the container.

import WebPartContext from '@microsoft/sp-webpart-base/lib/core/WebPartContext';

@inject("WebPartContext")
export class documentlist 
{

    public webpartContext: WebPartContext;

    constructor(webpartContext: WebPartContext) 
    {
        this.webpartContext = webpartContext;
    }
}