Comparing version 2.3.0 to 2.4.0
@@ -20,2 +20,6 @@ 'use strict'; | ||
var _parseInput = require('../parse-input'); | ||
var _parseInput2 = _interopRequireDefault(_parseInput); | ||
var _lodash = require('lodash.last'); | ||
@@ -32,3 +36,3 @@ | ||
var url = elm.getAttribute('data-href'); | ||
var embedAs = elm.classList.contains('fb-video') ? 'video' : 'post'; | ||
var embedAs = (0, _parseInput2.default)(url).embedAs; | ||
var pElm = elm.getElementsByTagName('p')[0]; | ||
@@ -45,3 +49,3 @@ var text = (0, _parseText2.default)(pElm); | ||
var url = elm.getAttribute('data-href'); | ||
var embedAs = elm.classList.contains('fb-video') ? 'video' : 'post'; | ||
var embedAs = 'video'; | ||
var aElms = elm.getElementsByTagName('a') || []; | ||
@@ -153,4 +157,10 @@ var headline = aElms[0] ? aElms[0].childNodes[0].data : ''; | ||
var renderTypes = { | ||
video: renderVideo, | ||
post: renderPost, | ||
photo: renderPost | ||
}; | ||
var render = exports.render = function render(opts) { | ||
return opts.embedAs === 'post' ? renderPost(opts) : renderVideo(opts); | ||
return renderTypes[opts.embedAs] ? renderTypes[opts.embedAs](opts) : renderTypes.post(opts); | ||
}; |
@@ -5,2 +5,3 @@ const type = 'facebook'; | ||
import renderText from '../render-text'; | ||
import parseInput from '../parse-input'; | ||
import last from 'lodash.last'; | ||
@@ -10,3 +11,3 @@ | ||
const url = elm.getAttribute('data-href'); | ||
const embedAs = elm.classList.contains('fb-video') ? 'video' : 'post'; | ||
const embedAs = parseInput(url).embedAs; | ||
const pElm = elm.getElementsByTagName('p')[0]; | ||
@@ -23,3 +24,3 @@ const text = parseText(pElm); | ||
const url = elm.getAttribute('data-href'); | ||
const embedAs = elm.classList.contains('fb-video') ? 'video' : 'post'; | ||
const embedAs = 'video'; | ||
const aElms = elm.getElementsByTagName('a') || []; | ||
@@ -78,2 +79,8 @@ const headline = aElms[0] ? aElms[0].childNodes[0].data : ''; | ||
export const render = opts => opts.embedAs === 'post' ? renderPost(opts) : renderVideo(opts); | ||
const renderTypes = { | ||
video: renderVideo, | ||
post: renderPost, | ||
photo: renderPost | ||
}; | ||
export const render = opts => renderTypes[opts.embedAs] ? renderTypes[opts.embedAs](opts) : renderTypes.post(opts); |
{ | ||
"name": "embeds", | ||
"version": "2.3.0", | ||
"version": "2.4.0", | ||
"description": "Parse & render embeds", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
@@ -9,4 +9,5 @@ const fs = require('fs'); | ||
facebookVideo: fs.readFileSync(`${__dirname}/facebook-video.html`, 'utf8').trim(), | ||
facebookPhoto: fs.readFileSync(`${__dirname}/facebook-photo.html`, 'utf8').trim(), | ||
facebookEmbedCode: fs.readFileSync(`${__dirname}/facebook-embed-code.html`, 'utf8').trim(), | ||
tweetNoUser: fs.readFileSync(`${__dirname}/tweet-no-user.html`, 'utf8').trim() | ||
}; |
@@ -364,2 +364,36 @@ import test from './tape-wrapper'; | ||
test('parse() facebook - photo', t => { | ||
const input = fixtures.facebookPhoto; | ||
const actual = parse(input); | ||
const expected = { | ||
embedAs: 'photo', | ||
type: 'facebook', | ||
url: 'https://www.facebook.com/rewire.news/photos/a.102749171737.90216.9432926737/10152515593211738', | ||
text: [{ | ||
content: 'via Tumblr user kristine-claire.', | ||
href: null | ||
}], | ||
date: 'Tuesday, June 17, 2014', | ||
user: 'Rewire' | ||
}; | ||
t.deepEqual(actual, expected); | ||
}); | ||
test('parse() facebook - photo with embed code', t => { | ||
const input = `${fixtures.facebookEmbedCode}${fixtures.facebookPhoto}`; | ||
const actual = parse(input); | ||
const expected = { | ||
embedAs: 'photo', | ||
type: 'facebook', | ||
url: 'https://www.facebook.com/rewire.news/photos/a.102749171737.90216.9432926737/10152515593211738', | ||
text: [{ | ||
content: 'via Tumblr user kristine-claire.', | ||
href: null | ||
}], | ||
date: 'Tuesday, June 17, 2014', | ||
user: 'Rewire' | ||
}; | ||
t.deepEqual(actual, expected); | ||
}); | ||
test('parse() facebook - video', t => { | ||
@@ -366,0 +400,0 @@ const input = fixtures.facebookVideo; |
@@ -243,2 +243,19 @@ import test from './tape-wrapper'; | ||
test('reder() facebook - photo', t => { | ||
const input = { | ||
url: 'https://www.facebook.com/rewire.news/photos/a.102749171737.90216.9432926737/10152515593211738', | ||
type: 'facebook', | ||
embedAs: 'photo', | ||
user: 'Rewire', | ||
date: 'Tuesday, June 17, 2014', | ||
text: [{ | ||
content: 'via Tumblr user kristine-claire.', | ||
href: null | ||
}] | ||
}; | ||
const actual = render(input); | ||
const expected = fixtures.facebookPhoto; | ||
t.is(actual, expected); | ||
}); | ||
test('render() custom', t => { | ||
@@ -245,0 +262,0 @@ const input = { |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
116929
59
2874