code: function initApp(html, container) {
    var parentElem = new Elem(container).elem(0);
  
    if (!parentElem.length) {
      console.error('No valid element to insert the app into was given! (initApp)');
  
      return;
    }
  
    if (parentElem.prop('DwayneRootBlock')) {
      console.error('There already exists a Dwayne app inside the given element! (initApp)');
  
      return;
    }
  
    var RootBlock = html;
  
    if (isArray(html)) {
      var _class, _temp;
  
      RootBlock = (_temp = _class = function (_Block) {
        inherits(RootBlock, _Block);
  
        function RootBlock() {
          classCallCheck(this, RootBlock);
          return possibleConstructorReturn(this, (RootBlock.__proto__ || Object.getPrototypeOf(RootBlock)).apply(this, arguments));
        }
  
        return RootBlock;
      }(Block), _class.html = html, _temp);
    }
  
    if (!isInstanceOf(Block, RootBlock)) {
      console.error('No valid root block was given! (initApp)');
  
      return;
    }
  
    var rootBlock = createBlock({
      node: {
        type: RootBlock
      },
      parent: parentElem,
      parentElem: parentElem
    });
  
    parentElem.prop('DwayneRootBlock', rootBlock).attr('dwayne-root', '');
  
    return rootBlock;
  }
docs: @function initApp
  @public
  @param {Template|typeof Block} html - Root template or root block constructor.
  @param {Elem|Element} container - Container of the app.
  @returns {Block|void} Root block if the app has been registered and undefined if not.
  @description Method for initializing app.
  
  @example
  import { initApp, doc } from 'dwayne';
  
  initApp(html`<App/>`, doc.create('div'));
  initApp(htmlScopeless`<App/>`, doc.create('div'));
  initApp('App', doc.create('div'));
  initApp(App, doc.create('div'));