Skip to content

Commit

Permalink
fixup! Normalize arrangement
Browse files Browse the repository at this point in the history
  • Loading branch information
skad0 committed Oct 4, 2016
1 parent 6d887ac commit 5add1e0
Show file tree
Hide file tree
Showing 30 changed files with 35 additions and 76 deletions.
10 changes: 1 addition & 9 deletions lib/index.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,5 @@
'use strict';

const normalize = {
v1: require('./normalize/normalize'),
v2: require('./normalize/normalize2'),
harmony: require('./normalize/normalize-harmony'),
enb: require('./normalize/normalize2')
};

module.exports = {
normalize: require('./normalize'),
merge: require('./merge'),
Expand All @@ -15,6 +8,5 @@ module.exports = {
parse: require('./parse'),
assign: require('./assign'),
load: require('./load'),
stringify: require('./stringify'),
normalizer: format => (normalize[format] || normalize.v2)
stringify: require('./stringify')
};
14 changes: 8 additions & 6 deletions lib/normalize.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
'use strict';

const normalizers = {
v1: require('./normalize/normalize'),
v2: require('./normalize/normalize2'),
harmony: require('./normalize/normalize-harmony'),
enb: require('./normalize/normalize2')
const normalizer = {
v1: require('./normalize/v1'),
v2: require('./normalize/v2'),
harmony: require('./normalize/harmony'),
enb: require('./normalize/v2')
};

module.exports = (decl, opts) => {
opts || (opts = {});

return opts.format ? normalizers[opts.format](decl) : normalizers.v2(decl);
const format = opts.format || 'v2';

return normalizer[format](decl);
};
File renamed without changes.
File renamed without changes.
File renamed without changes.
6 changes: 3 additions & 3 deletions lib/parse.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ const assert = require('assert');
const nodeEval = require('node-eval');

const detect = require('./detect');
const normalize = require('./normalize/normalize');
const normalize2 = require('./normalize/normalize2');
const normalizeHarmony = require('./normalize/normalize-harmony');
const normalize = require('./normalize/v1');
const normalize2 = require('./normalize/v2');
const normalizeHarmony = require('./normalize/harmony');

const normalizers = {
v1: normalize,
Expand Down
35 changes: 0 additions & 35 deletions test/index.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,41 +31,6 @@ test('should support `BEMDECL 2.0` format', t => {
t.deepEqual(decl, [{ entity: decls.normalized, tech: null }]);
});

test('should have `normalizer` method', t => {
t.truthy(typeof bemDecl.normalizer === 'function');
});

test('normalizer should support default value as `normalize`', t => {
var decl = bemDecl.normalizer('v1')(decls.v1);

t.deepEqual(decl, [{ entity: decls.normalized, tech: null }]);
});

test('should support `BEMDECL 1.0` format through normalizer', t => {
var decl = bemDecl.normalizer('v1')(decls.v1);

t.deepEqual(decl, [{ entity: decls.normalized, tech: null }]);
});

// TODO: define name of format
test('should have support `BEMDECL x.0` format through normalizer', t => {
var decl = bemDecl.normalizer('v2')(decls.v2);

t.deepEqual(decl, [{ entity: decls.normalized, tech: null }]);
})

test('should support `BEMDECL 2.0` format through normalizer', t => {
var decl = bemDecl.normalizer('harmony')(decls.v2);

t.deepEqual(decl, [{ entity: decls.normalized, tech: null }]);
});

test('should support uncorrect normalizer arg with default result', t => {
var decl = bemDecl.normalizer('levoe')(decls.v2);

t.deepEqual(decl, [{ entity: decls.normalized, tech: null }]);
});

test('should have `merge` method', t => {
t.truthy(typeof bemDecl.merge === 'function');
});
Expand Down
2 changes: 1 addition & 1 deletion test/normalize-harmony/block.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

const test = require('ava');
const normalize = require('../../lib').normalizer('harmony');
const normalize = require('../../lib/normalize/harmony');

test('should support block', t => {
var block = { block: 'block' };
Expand Down
2 changes: 1 addition & 1 deletion test/normalize-harmony/common.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

const test = require('ava');
const normalize = require('../../lib').normalizer('harmony');
const normalize = require('../../lib/normalize/harmony');

test('should support undefined', t => {
t.deepEqual(normalize(), []);
Expand Down
2 changes: 1 addition & 1 deletion test/normalize-harmony/elem.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

const test = require('ava');
const normalize = require('../../lib').normalizer('harmony');
const normalize = require('../../lib/normalize/harmony');

test('should support elem', t => {
const decl = { block: 'block', elem: 'elem' };
Expand Down
2 changes: 1 addition & 1 deletion test/normalize-harmony/elems.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

const test = require('ava');
const normalize = require('../../lib').normalizer('harmony');
const normalize = require('../../lib/normalize/harmony');

test('should support strings', t => {
const decl = {
Expand Down
2 changes: 1 addition & 1 deletion test/normalize-harmony/mix.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

const test = require('ava');
const normalize = require('../../lib').normalizer('harmony');
const normalize = require('../../lib/normalize/harmony');

test('should support mix', t => {
const decl = {
Expand Down
2 changes: 1 addition & 1 deletion test/normalize-harmony/mods.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

const test = require('ava');
const normalize = require('../../lib').normalizer('harmony');
const normalize = require('../../lib/normalize/harmony');

test('should support shortcut for bool mod', t => {
const decl = { block: 'block', modName: 'mod' };
Expand Down
2 changes: 1 addition & 1 deletion test/normalize-harmony/scope.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

const test = require('ava');
const normalize = require('../../lib').normalizer('harmony');
const normalize = require('../../lib/normalize/harmony');

test('should support mod in block scope', t => {
const decl = {
Expand Down
2 changes: 1 addition & 1 deletion test/normalize/common.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

const test = require('ava');
const normalize = require('../../lib').normalizer('v1');
const normalize = require('../../lib/normalize/v1');

test('should support undefined', t => {
t.deepEqual(normalize(), []);
Expand Down
2 changes: 1 addition & 1 deletion test/normalize/elems.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

const test = require('ava');
const normalize = require('../../lib').normalizer('v1');
const normalize = require('../../lib/normalize/v1');

test('should support arrays', t => {
const decl = {
Expand Down
2 changes: 1 addition & 1 deletion test/normalize/mods.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

const test = require('ava');
const normalize = require('../../lib').normalizer('v1');
const normalize = require('../../lib/normalize/v1');

test('should support objects', t => {
const decl = { name: 'block', mods: [{ name: 'mod', vals: [{ name: 'val' }] }] };
Expand Down
2 changes: 1 addition & 1 deletion test/normalize2/block-mod.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

const test = require('ava');
const normalize = require('../../lib').normalizer('v2');
const normalize = require('../../lib/normalize/v2');

test('should support mod', t => {
const decl = {
Expand Down
2 changes: 1 addition & 1 deletion test/normalize2/block-mods.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

const test = require('ava');
const normalize = require('../../lib').normalizer('v2');
const normalize = require('../../lib/normalize/v2');

test('sould support mods', t => {
const decl = {
Expand Down
2 changes: 1 addition & 1 deletion test/normalize2/block.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

const test = require('ava');
const normalize = require('../../lib').normalizer('v2');
const normalize = require('../../lib/normalize/v2');

test('should support block', t => {
t.deepEqual(normalize({ block: 'block' }), [
Expand Down
2 changes: 1 addition & 1 deletion test/normalize2/common.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

const test = require('ava');
const normalize = require('../../lib').normalizer('v2');
const normalize = require('../../lib/normalize/v2');

test('should support undefined', t => {
t.deepEqual(normalize(), []);
Expand Down
2 changes: 1 addition & 1 deletion test/normalize2/elem-mod.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

const test = require('ava');
const normalize = require('../../lib').normalizer('v2');
const normalize = require('../../lib/normalize/v2');

test('should support shortcut for bool mod of elem', t => {
const decl = { block: 'block', elem: 'elem', mod: 'mod' };
Expand Down
2 changes: 1 addition & 1 deletion test/normalize2/elem-mods.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

const test = require('ava');
const normalize = require('../../lib').normalizer('v2');
const normalize = require('../../lib/normalize/v2');

test('should support elem as object and mod', t => {
const decl = {
Expand Down
2 changes: 1 addition & 1 deletion test/normalize2/elem.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

const test = require('ava');
const normalize = require('../../lib').normalizer('v2');
const normalize = require('../../lib/normalize/v2');

test('should support elem', t => {
const decl = { block: 'block', elem: 'elem' };
Expand Down
2 changes: 1 addition & 1 deletion test/normalize2/elems-mod.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

const test = require('ava');
const normalize = require('../../lib').normalizer('v2');
const normalize = require('../../lib/normalize/v2');

test('should support shortcut for bool mod of elem', t => {
const decl = { block: 'block', elems: 'elem', mod: 'mod' };
Expand Down
2 changes: 1 addition & 1 deletion test/normalize2/elems-mods.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

const test = require('ava');
const normalize = require('../../lib').normalizer('v2');
const normalize = require('../../lib/normalize/v2');

test('should support elem as object and mod', t => {
const decl = {
Expand Down
2 changes: 1 addition & 1 deletion test/normalize2/elems.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

const test = require('ava');
const normalize = require('../../lib').normalizer('v2');
const normalize = require('../../lib/normalize/v2');

test('should support elems', t => {
const decl = { block: 'block', elems: 'elem' };
Expand Down
2 changes: 1 addition & 1 deletion test/normalize2/iterable.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

const test = require('ava');
const normalize = require('../../lib').normalizer('v2');
const normalize = require('../../lib/normalize/v2');

test('should support iterable set', t => {
const decl = new Set();
Expand Down
2 changes: 1 addition & 1 deletion test/normalize2/mod-mods-vals.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

const test = require('ava');
const normalize = require('../../lib').normalizer('v2');
const normalize = require('../../lib/normalize/v2');

test('should support mod and mods without block, elem', t => {
const decl = [
Expand Down
2 changes: 1 addition & 1 deletion test/normalize2/unusual.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

const test = require('ava');
const normalize = require('../../lib').normalizer('v2');
const normalize = require('../../lib/normalize/v2');

test('should support both mod and mods', t => {
const decl = {
Expand Down

0 comments on commit 5add1e0

Please sign in to comment.