import {
  curveBasis,
  curveBundle,
  curveCardinal,
  curveCatmullRom,
  curveLinear,
  curveMonotoneX,
  curveMonotoneY,
  curveNatural,
  curveStep,
  curveStepAfter,
  curveStepBefore
} from 'd3-shape';

var lookup = {
  basis: { curve: curveBasis },
  bundle: {
    curve: curveBundle,
    tension: 'beta',
    value: 0.85
  },
  cardinal: {
    curve: curveCardinal,
    tension: 'tension',
    value: 0
  },
  catmullRom: {
    curve: curveCatmullRom,
    tension: 'alpha',
    value: 0.5
  },
  linear: { curve: curveLinear },
  monotone: {
    horizontal: curveMonotoneY,
    vertical:   curveMonotoneX
  },
  natural: { curve: curveNatural },
  step: { curve: curveStep },
  stepAfter: { curve: curveStepAfter },
  stepBefore: { curve: curveStepBefore }
};

export default function curves(type, orientation, tension) {
  var entry = lookup.hasOwnProperty(type) && lookup[type],
      curve = null;

  if (entry) {
    curve = entry.curve || entry[orientation || 'vertical'];
    if (entry.tension && tension != null) {
      curve = curve[entry.tension](tension);
    }
  }

  return curve;
}

@@ -224,16 +224,22 @@
 %7B%0A  
+'
 basis
+'
 : %7B
+%0A   
  cur
@@ -256,20 +256,24 @@
 asis
+%0A 
  %7D,%0A  
+'
 bundle
+'
 : %7B%0A
@@ -344,16 +344,17 @@
 ,%0A  
+'
 cardinal
 : %7B%0A
@@ -349,16 +349,17 @@
 cardinal
+'
 : %7B%0A    
@@ -428,18 +428,21 @@
 ,%0A  
+'
 catmull
-R
+-r
 om
+'
 : %7B%0A
@@ -517,17 +517,23 @@
 ,%0A  
+'
 linear
+'
 : %7B
+%0A   
  cur
@@ -551,22 +551,25 @@
 near
+%0A 
  %7D,%0A  
+'
 monotone
 : %7B%0A
@@ -564,16 +564,17 @@
 monotone
+'
 : %7B%0A    
@@ -643,18 +643,24 @@
 ,%0A  
+'
 natural
+'
 : %7B
+%0A   
  cur
@@ -679,21 +679,29 @@
 ural
+%0A 
  %7D,%0A  
+'
 step
+'
 : %7B
+%0A   
  cur
@@ -717,26 +717,35 @@
 Step
+%0A 
  %7D,%0A  
+'
 step
-A
+-a
 fter
+'
 : %7B
+%0A   
  cur
@@ -766,27 +766,36 @@
 fter
+%0A 
  %7D,%0A  
+'
 step
-B
+-b
 efore
+'
 : %7B
+%0A   
  cur
@@ -813,16 +813,18 @@
 epBefore
+%0A 
  %7D%0A%7D;%0A%0Ae

Use hyphenated, not camel case names for curves.