Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/modules / ___dist / view-container / deps / fromClassToRender.js
Size: Mime:
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.asStateless = exports.fromClassToRender = fromClassToRender;
exports.default = void 0;

var _exotic = require("exotic");

function fromClassToRender(Target) {
  const render = Target.prototype.render;

  if ((0, _exotic.isFunction)(render)) {
    throw new Error('missing render function ' + Target.name);
  } // args in the method


  const arity = render.length; // already is functional

  if (arity > 0) {
    return render;
  } // take in arguments
  // put on function
  // apply the function as the thisArg to the class


  function statelessWrapper(props, context) {
    const thisArg = {
      props,
      context
    };
    return render.call(thisArg, props, context);
  }

  return statelessWrapper; // if (process.env.NODE_ENV !== 'production') {
  //   statelessWrapper.displayName =
  // }
}

var _default = fromClassToRender;
exports.default = _default;