/****************************************************************************
 * File: "interceptors-export.mustache"
 *
 * Interceptor Target: {{ name }}
 *  - moduleName: {{ target.moduleName }}
 *  - exportName: {{ target.exportName }}
 *  - Parameters: {{{ nativeParamTypes }}}
 ****************************************************************************/

;(() => {
  /**
   * TODO: Huan(202107): Need to be workaround for the `getExportByName` function
   *  see: https://github.com/huan/sidecar/issues/10
   */
  const interceptorTarget = Module.getExportByName(

  {{# target.moduleName }}
    '{{ target.moduleName }}',
  {{/ target.moduleName}}
  {{^ target.moduleName }}
    null,
  {{/ target.moduleName}}

    '{{ target.exportName }}',
  )

  Interceptor.attach(
    interceptorTarget,
    {
      onEnter: args => {
        log.verbose(
          'SidecarAgent',
          'Interceptor.attach(%s) onEnter()',
          {{ target.exportName }},
        )

        {{{ declareJsArgs }}}

        send(__sidecar__payloadHook(
          '{{ name }}',
          {{{ jsArgs }}}
        ), null)

      },
    }
  )
})()
