function checkLangDependenciesAllLoaded(lang) {
  if (!lang) {
    return;
  }

  lang = lang_aliases[lang] || lang;

  const validLang = lang_dependencies[lang];
  if (!validLang) {
    return;
  }

  if (!depTreeCache[lang]) {
    /**
     * The dummy node constructs the dependency tree as the root
     * and maintains the final global loading status (dummy.loaded) for current lang.
     */
    const dummy = {
      cur: '',
      loaded: true,
      dependencies: [],
    };

    buildAndCheckDepTree(lang, dummy, dummy);

    const depTree = dummy.dependencies[0];
    depTreeCache[lang] = depTree;

    if (!dummy.loaded) {
      const prettyOutput = prettryPrint(depTree, 1);
      // eslint-disable-next-line no-console
      console.warn(
        `The language '${lang}' required dependencies for code block highlighting are not satisfied.`,
        `Priority dependencies from low to high, consider to place all the necessary dependencie by priority (higher first): \n`,
        prettyOutput,
      );
    }
  }
}
PrismJs language dependencies required a specific order to load.
Try to check and print a warning message if some dependencies missing or in wrong order.
@param {*} lang current lang to check dependencies