123456789101112131415161718192021222324252627282930313233343536373839 |
- var array = require('./array.wxs');
- var object = require('./object.wxs');
- var PREFIX = 'van-';
-
- function join(name, mods) {
- name = PREFIX + name;
- mods = mods.map(function(mod) {
- return name + '--' + mod;
- });
- mods.unshift(name);
- return mods.join(' ');
- }
-
- function traversing(mods, conf) {
- if (!conf) {
- return;
- }
-
- if (typeof conf === 'string' || typeof conf === 'number') {
- mods.push(conf);
- } else if (array.isArray(conf)) {
- conf.forEach(function(item) {
- traversing(mods, item);
- });
- } else if (typeof conf === 'object') {
- object.keys(conf).forEach(function(key) {
- conf[key] && mods.push(key);
- });
- }
- }
-
- function bem(name, conf) {
- var mods = [];
- traversing(mods, conf);
- return join(name, mods);
- }
-
- module.exports.bem = bem;
|