JSFiddle - React, Tailwind, and code Playground

by Jake Overall

JavaScript

//Dependency Injection Resolver
var listA = ['KittenService: Leetmeme:', 'Cyberportal Cyberportal: Ice', 'CamelCaser: KittenService', 'Fraudstream: Leetmeme Ice:'];
var listB = ['pacA: pacB', 'pacB', 'pacC: pacE', 'pacD: pacA', 'pacE: pacD'];
var listC = ['pacA: pacB'];

var diResolver = function (dlist) {
    var dependencies = {};
    var out = [];
    for (var i = 0; i < dlist.length; i++) {
        if (dlist[i].indexOf(':') > -1) {
            var prop = dlist[i].slice(0, dlist[i].indexOf(':')).trim();
            var value = dlist[i].slice(dlist[i].indexOf(':') + 1).trim();
            dependencies[prop] = value;
        } else {
            out.push(dlist[i]);
        }
    }

    out = out.concat(Object.keys(dependencies).sort(function (a, b) {
        var arr = Object.keys(dependencies);
        arr.splice(arr.indexOf(a));
        for (var j = 0; j < arr.length; j++) {
            if (dependencies[a] == arr[j]) {
                return arr[j];
            } else {
                return a;
            }
        }
    }));

    return out;
};

console.log(diResolver(listA));
console.log(diResolver(listB));