From 57c9ecc625f022cefdc38d03e682104e00376b8f Mon Sep 17 00:00:00 2001 From: ache Date: Mon, 22 Oct 2018 20:08:06 +0200 Subject: =?UTF-8?q?Refactoring=20=F0=9F=92=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __tests__/index.js | 28 ++++++++++---------- src/dom-event-handler.js | 67 ++++++++++++++++++++++++++++++++++++++++++++++++ src/index.js | 25 +----------------- 3 files changed, 82 insertions(+), 38 deletions(-) create mode 100644 src/dom-event-handler.js diff --git a/__tests__/index.js b/__tests__/index.js index 7476477..355bc80 100644 --- a/__tests__/index.js +++ b/__tests__/index.js @@ -43,7 +43,7 @@ const generateExtendParser = extendsOptions => text => unified() const parse = x => parse5.parse(x); -const mainTestString = `Inline *test*{style="em:4"} paragraph. Use **multiple**{ style="color:pink"} inline ~~block~~ tag. Line \`tagCode\`{ style="color:yellow"}.`; +const mainTestString = 'Inline *test*{style="em:4"} paragraph. Use **multiple**{ style="color:pink"} inline ~~block~~ tag. Line `tagCode`{ style="color:yellow"}.'; test('basic-default', t => { const {contents} = renderDefault(mainTestString); @@ -64,7 +64,7 @@ test('basic-raw', t => { test('em', t => { const {contents} = render('textexamplenointerest **Important**{style=4em} still no interest'); - t.deepEqual(parse(contents), parse(`

textexamplenointerest Important still no interest

`)); + t.deepEqual(parse(contents), parse('

textexamplenointerest Important still no interest

')); }); test('readme-default', t => { @@ -114,36 +114,36 @@ This is an awesome image : Awesome image { - const renderExtended = generateExtendParser({extend: {'*': ['exAttr']}}); - const globalString = ` *Wait* ! You are **beautiful**{ exAttr="true" } !`; + const renderExtended = generateExtendParser({extend: {'*': ['ex-attr']}}); + const globalString = ' *Wait* ! You are **beautiful**{ ex-attr="true" } !'; const {contents} = renderExtended(globalString); - t.deepEqual(parse(contents), parse(`

Wait ! You are beautiful !

`)); + t.deepEqual(parse(contents), parse('

Wait ! You are beautiful !

')); }); test('extended-invalid-scope', t => { - const renderExtended = generateExtendParser({scope: 'invalid', extend: {strong: ['exAttr']}}); - const invalidString = `*Wait* ! You are **beautiful**{ exAttr="true" onload="qdss" pss="NOK" } !`; + const renderExtended = generateExtendParser({scope: 'invalid', extend: {strong: ['ex-attr']}}); + const invalidString = '*Wait* ! You are **beautiful**{ ex-attr="true" onload="qdss" pss="NOK" } !'; const {contents} = renderExtended(invalidString); - t.deepEqual(parse(contents), parse(`

Wait ! You are beautiful !

`)); + t.deepEqual(parse(contents), parse('

Wait ! You are beautiful !

')); }); test('invalid-scope', t => { const renderExtended = generateExtendParser({extend: 'exAttr'}); - const invalidString = ` *Wait* ! I **love**{ exAttr="true" onload="qdss" pss="NOK" } you !`; + const invalidString = ' *Wait* ! I **love**{ exAttr="true" onload="qdss" pss="NOK" } you !'; const {contents} = renderExtended(invalidString); - t.deepEqual(parse(contents), parse(`

Wait ! I love you !

`)); + t.deepEqual(parse(contents), parse('

Wait ! I love you !

')); }); test('invalid-extend', t => { const renderExtended = generateExtendParser({extend: 'exAttr'}); - const invalidString = ` *Wait* ! I **love**{ exAttr="true" onload="qdss" attr="NOK" style="color: red;"} you!`; + const invalidString = ' *Wait* ! I **love**{ exAttr="true" onload="qdss" attr="NOK" style="color: red;"} you!'; const {contents} = renderExtended(invalidString); - t.deepEqual(parse(contents), parse(`

Wait ! I love you!

`)); + t.deepEqual(parse(contents), parse('

Wait ! I love you!

')); }); test('global-aria', t => { - const invalidString = ` *Wait* ! I **love**{ style="color: pink;" aria-love="true" } you!`; + const invalidString = ' *Wait* ! I **love**{ style="color: pink;" aria-love="true" } you!'; const {contents} = renderDefault(invalidString); - t.deepEqual(parse(contents), parse(`

Wait ! I love you!

`)); + t.deepEqual(parse(contents), parse('

Wait ! I love you!

')); }); diff --git a/src/dom-event-handler.js b/src/dom-event-handler.js new file mode 100644 index 0000000..dc4f3bd --- /dev/null +++ b/src/dom-event-handler.js @@ -0,0 +1,67 @@ +'use strict'; + +module.export = [ + 'onabort', + 'onautocomplete', + 'onautocompleteerror', + 'onblur', + 'oncancel', + 'oncanplay', + 'oncanplaythrough', + 'onchange', + 'onclick', + 'onclose', + 'oncontextmenu', + 'oncuechange', + 'ondblclick', + 'ondrag', + 'ondragend', + 'ondragenter', + 'ondragexit', + 'ondragleave', + 'ondragover', + 'ondragstart', + 'ondrop', + 'ondurationchange', + 'onemptied', + 'onended', + 'onerror', + 'onfocus', + 'oninput', + 'oninvalid', + 'onkeydown', + 'onkeypress', + 'onkeyup', + 'onload', + 'onloadeddata', + 'onloadedmetadata', + 'onloadstart', + 'onmousedown', + 'onmouseenter', + 'onmouseleave', + 'onmousemove', + 'onmouseout', + 'onmouseover', + 'onmouseup', + 'onmousewheel', + 'onpause', + 'onplay', + 'onplaying', + 'onprogress', + 'onratechange', + 'onreset', + 'onresize', + 'onscroll', + 'onseeked', + 'onseeking', + 'onselect', + 'onshow', + 'onsort', + 'onstalled', + 'onsubmit', + 'onsuspend', + 'ontimeupdate', + 'ontoggle', + 'onvolumechange', + 'onwaiting', +]; diff --git a/src/index.js b/src/index.js index 2bc6142..d9b563a 100644 --- a/src/index.js +++ b/src/index.js @@ -6,30 +6,7 @@ const htmlElemAttr = require('html-element-attributes'); const supportedElements = ['link', 'atxHeading', 'strong', 'emphasis', 'deletion', 'code', 'setextHeading']; const blockElements = ['atxHeading', 'setextHeading']; -// The list of DOM Event handler -const DOMEventHandler = [ - 'onabort', 'onautocomplete', 'onautocompleteerror', - 'onblur', 'oncancel', 'oncanplay', - 'oncanplaythrough', 'onchange', 'onclick', - 'onclose', 'oncontextmenu', 'oncuechange', - 'ondblclick', 'ondrag', 'ondragend', - 'ondragenter', 'ondragexit', 'ondragleave', - 'ondragover', 'ondragstart', 'ondrop', - 'ondurationchange', 'onemptied', 'onended', - 'onerror', 'onfocus', 'oninput', - 'oninvalid', 'onkeydown', 'onkeypress', - 'onkeyup', 'onload', 'onloadeddata', - 'onloadedmetadata', 'onloadstart', 'onmousedown', - 'onmouseenter', 'onmouseleave', 'onmousemove', - 'onmouseout', 'onmouseover', 'onmouseup', - 'onmousewheel', 'onpause', 'onplay', - 'onplaying', 'onprogress', 'onratechange', - 'onreset', 'onresize', 'onscroll', - 'onseeked', 'onseeking', 'onselect', - 'onshow', 'onsort', 'onstalled', - 'onsubmit', 'onsuspend', 'ontimeupdate', - 'ontoggle', 'onvolumechange', 'onwaiting', -]; +const DOMEventHandler = require('./dom-event-handler.js'); /* Table convertion between type and HTML tagName */ const convTypeTag = { -- cgit v1.2.3