Skip to content

FetchImportedModuleCallback

Richard edited this page Feb 23, 2018 · 1 revision

User implemented callback to fetch additional imported modules in ES modules.

Syntax

typedef JsErrorCode (CHAKRA_CALLBACK * FetchImportedModuleCallBack)(
    _In_ JsModuleRecord referencingModule,
    _In_ JsValueRef specifier,
    _Outptr_result_maybenull_ JsModuleRecord* dependentModuleRecord);

Parameters

  • referencingModule: The referencing module that is requesting the dependent module.
  • specifier: The specifier coming from the module source code.
  • dependentModuleRecord: The ModuleRecord of the dependent module. If the module was requested before from other source, return the existing ModuleRecord, otherwise return a newly created ModuleRecord.

Return Value

Returns a JsNoError if the operation succeeded an error code otherwise.

Remarks

The callback is invoked on the current runtime execution thread, therefore execution is blocked until the callback completes. Notify the host to fetch the dependent module. This is the "import" part before HostResolveImportedModule in ES6 spec.

This notifies the host that the referencing module has the specified module dependency, and the host needs to retrieve the module back.

Callback should:

  1. Check if the requested module has been requested before - if yes return the existing module record
  2. If no create and initialize a new module record with JsInitializeModuleRecord to return and schedule a call to JsParseModuleSource for the new record.
Clone this wiki locally