code: def _compile_models(custom_models):
      
      ordered_models = sorted(custom_models.values(), key=lambda model: model.full_name)
      custom_impls = {}
  
      dependencies = []
      for model in ordered_models:
          dependencies.extend(list(model.dependencies.items()))
  
      if dependencies:
          dependencies = sorted(dependencies, key=lambda name_version: name_version[0])
          _run_npmjs(["install", "--no-progress"] + [ name + "@" + version for (name, version) in dependencies ])
  
      for model in ordered_models:
          impl = model.implementation
          compiled = _CACHING_IMPLEMENTATION(model, impl)
          if compiled is None:
              compiled = nodejs_compile(impl.code, lang=impl.lang, file=impl.file)
  
          if "error" in compiled:
              raise CompilationError(compiled.error)
  
          custom_impls[model.full_name] = compiled
  
      return custom_impls
docs: Returns the compiled implementation of supplied `models`.