code: private void createCreatedHook(ComponentInjectedDependenciesBuilder dependenciesBuilder) {
      String hasRunCreatedFlagName = "vg$hrc_" + getSuperComponentCount(component);
      componentExposedTypeBuilder
          .addField(
              FieldSpec.builder(boolean.class, hasRunCreatedFlagName, Modifier.PUBLIC)
                  .addAnnotation(JsProperty.class)
                  .build()
          );
  
      MethodSpec.Builder createdMethodBuilder =
          MethodSpec.methodBuilder("vg$created")
              .addModifiers(Modifier.PUBLIC)
              .addAnnotation(JsMethod.class);
  
      // Avoid infinite recursion in case calling the Java constructor calls Vue.js constructor
      // This can happen when extending an existing JS component
      createdMethodBuilder
          .addStatement("if ($L) return", hasRunCreatedFlagName)
          .addStatement("$L = true", hasRunCreatedFlagName);
  
      createdMethodBuilder
          .addStatement("vue().$L().proxyFields(this)", "$options");
      injectDependencies(component, dependenciesBuilder, createdMethodBuilder);
      initFieldsValues(component, createdMethodBuilder);
  
      processWatchers(createdMethodBuilder);
  
      if (hasInterface(processingEnv, component.asType(), HasCreated.class)) {
        createdMethodBuilder.addStatement("super.created()");
      }
  
      componentExposedTypeBuilder.addMethod(createdMethodBuilder.build());
  
      // Register the hook
      addMethodToProto("vg$created");
      optionsBuilder.addStatement("options.addHookMethod($S, p.$L)", "created", "vg$created");
    }
docs: Create the "created" hook method. This method will be called on each Component when it's
  created. It will inject dependencies if any.
  
  @param dependenciesBuilder Builder for our component dependencies, needed here to inject the
  dependencies in the instance