stringcombodeprecated

A javascript libary to generate combinations of css selectors. Used for dynamic css generation.

Usage no npm install needed!

<script type="module">
  import stringcombo from 'https://cdn.skypack.dev/stringcombo';
</script>

README

StringCombo

A library used to create complex string combinations and css selectors.

// Construction
const strCom = new StringCombo();

// String Combo Object
const obj1 = {
    data: [
        ["a","b"],
        ["c","d"],
        ["e","f"]
    ],
    relators: [">","~"],
    combinators: [".","."],
    joiner: ", "
}

let out = strCom.comb(obj1);
console.log(out); // a > c ~ e, b > d ~ f

Installing

npm install stringcombo

Main Example

Setup.

// Construction
const strCom = new StringCombo();

// String Combo Object
const obj1 = {
    data: [
        ["a","b"],
        ["e","f"]
    ],
    relators: [""],
    combinators: ["."],
    joiner: ", "
}

Properties

// Data Property
obj1.data = [["a","b"], ["e", "f"]]; // Array of arrays of strings to combine on

// Relators Property
obj1.relators = [""]; // Array of string relators to insert between string combos
let possibleRelators = ["", " ", ">", "~", "+"];

// Combinators Property
obj1.combinators = ["."]; // Array of string combinators representing ways to combine strings
const validCombinators = [".","*","x","X","dot","cart"];

// Joiner Property
obj1.joiner = ", "; // Joiner string used to join the final array of string combinations

Combine.

// Call the comb function with the combo object to get back the combinated string
let out = strCom.comb(obj1);
console.log(out); // ab, ef

// Can get array pre-join by calling combAr
obj1.joiner = ", ";
let ar = strCom.combAr(obj1);
console.log(ar); // ["ae","bf"]

Generate CSS Selectors.

// Using StringCombo to generate css selectors
const obj2 = {
   data: [["#id1"], [".class1", ".class2",".class3",".class4"], ["p"], [":active"]],
   relators: ["", "~", ""],
   combinators: ["x","x","x"],
   joiner: ",\n"
};

str = strCom.comb(obj2); // #id1.class1 ~ p:active,
console.log(str);        // #id1.class2 ~ p:active,
                         // #id1.class3 ~ p:active,
                         // #id1.class4 ~ p:active

API

StringCombo

Construction

Constructor takes no parameters.

// Construction
const strCom = new StringCombo();

Returns StringCombo object.

Methods

comb

comb function takes in a parameterized object and returns a combined string

// String Combo Object
const obj1 = {};

// Data Property
obj1.data = [["a","b"], ["e", "f"]]; // Array of arrays of strings to combine on

// Relators Property
obj1.relators = [""]; // Array of string relators to insert between string combos

// Combinators Property
obj1.combinators = ["."]; // Array of string combinators representing ways to combine strings

// Joiner Property
obj1.joiner = ", "; // Joiner string used to join the final array of string combinations

// Call the comb function with the combo object to get back the combinated string
let out = strCom.comb(obj1);
console.log(out); // ab, ef

Will throw an error if data is not an array of array of strings. Will throw an error if relators is not an array of strings from: [".","*","x","X","dot","cart"] Will throw an error if the length of relators is not 1 less than the length of data. Will throw an error if combinators is not an array of strings from: ["", " ", ">", "~", "+"]; Will throw an error if the length of combinators is not 1 less than the length of data. Will throw an error if joiner is not a string. Returns RepRapMatches Object.

combAr

combAr function takes in a parameterized object and returns a combined string

let ar = strCom.combAr(obj1);
console.log(out); // [ab, ef]

Same as comb.

Scripts

Testing

To run mocha/chai tests. npm run test

Examples

To run the main example. npm run ex

License

StringCombo.js is released under the MIT license.