Comparing version 0.1.7 to 0.1.8
'use strict'; | ||
const uhyphen = (m => m.__esModule ? /* istanbul ignore next */ m.default : /* istanbul ignore next */ m)(require('uhyphen')); | ||
const uhyphen = (m => m.__esModule ? /* c8 ignore next */ m.default : /* c8 ignore next */ m)(require('uhyphen')); | ||
const {defineProperty} = Object; | ||
const refs = new WeakMap; | ||
@@ -9,27 +9,15 @@ const key = name => `data-${uhyphen(name)}`; | ||
const handler = { | ||
ownKeys({_: element}) { | ||
const keys = []; | ||
for (const {name} of element.attributes) { | ||
if (/^data-/.test(name)) | ||
keys.push(name); | ||
} | ||
return keys; | ||
get(self, name) { | ||
return refs.get(self).getAttribute(key(name)); | ||
}, | ||
has({_: element}, name) { | ||
return element.hasAttribute(key(name)); | ||
}, | ||
deleteProperty({_: element}, name) { | ||
element.removeAttribute(key(name)); | ||
set(self, name, value) { | ||
refs.get(self).setAttribute(key(name), value); | ||
self[name] = value; | ||
return true; | ||
}, | ||
get({_: element}, name) { | ||
return element.getAttribute(key(name)); | ||
}, | ||
set({_: element}, name, value) { | ||
element.setAttribute(key(name), value); | ||
return true; | ||
deleteProperty(self, name) { | ||
refs.get(self).removeAttribute(key(name)); | ||
return delete self[name]; | ||
} | ||
@@ -46,8 +34,8 @@ }; | ||
constructor(value) { | ||
return new Proxy( | ||
defineProperty(this, '_', {value}), | ||
handler | ||
); | ||
refs.set(this, value); | ||
return new Proxy(this, handler); | ||
} | ||
} | ||
exports.DOMStringMap = DOMStringMap | ||
Object.setPrototypeOf(DOMStringMap.prototype, null); |
'use strict'; | ||
const {ELEMENT_NODE, ELEMENT_NODE_END, ATTRIBUTE_NODE, TEXT_NODE, COMMENT_NODE} = require('./constants.js'); | ||
const {ignoreCase, isVoidElement, localCase, parseFromString} = require('./utils.js'); | ||
const {String, ignoreCase, isVoidElement, localCase, parseFromString} = require('./utils.js'); | ||
@@ -12,3 +12,3 @@ const {NodeList} = require('./interfaces.js'); | ||
const matches = (m => m.__esModule ? /* istanbul ignore next */ m.default : /* istanbul ignore next */ m)(require('./matches.js')); | ||
const matches = (m => m.__esModule ? /* c8 ignore next */ m.default : /* c8 ignore next */ m)(require('./matches.js')); | ||
@@ -304,6 +304,6 @@ const attributesHandler = { | ||
if (attribute) | ||
attribute.value = value; | ||
attribute.value = String(value); | ||
else { | ||
attribute = this.ownerDocument.createAttribute(name); | ||
attribute.value = value; | ||
attribute.value = String(value); | ||
this.setAttributeNode(attribute); | ||
@@ -310,0 +310,0 @@ } |
'use strict'; | ||
const DOMParser = (m => m.__esModule ? /* istanbul ignore next */ m.default : /* istanbul ignore next */ m)(require('./dom-parser.js')); | ||
const DOMParser = (m => m.__esModule ? /* c8 ignore next */ m.default : /* c8 ignore next */ m)(require('./dom-parser.js')); | ||
const {HTMLDocument} = require('./html-document.js'); | ||
@@ -4,0 +4,0 @@ const {SVGDocument} = require('./svg-document.js'); |
'use strict'; | ||
const Event = (m => m.__esModule ? /* istanbul ignore next */ m.default : /* istanbul ignore next */ m)(require('@ungap/event')); | ||
const EventTarget = (m => m.__esModule ? /* istanbul ignore next */ m.default : /* istanbul ignore next */ m)(require('@ungap/event-target')); | ||
const Event = (m => m.__esModule ? /* c8 ignore next */ m.default : /* c8 ignore next */ m)(require('@ungap/event')); | ||
const EventTarget = (m => m.__esModule ? /* c8 ignore next */ m.default : /* c8 ignore next */ m)(require('@ungap/event-target')); | ||
@@ -5,0 +5,0 @@ exports.Event = Event; |
import uhyphen from 'uhyphen'; | ||
const {defineProperty} = Object; | ||
const refs = new WeakMap; | ||
@@ -8,27 +8,15 @@ const key = name => `data-${uhyphen(name)}`; | ||
const handler = { | ||
ownKeys({_: element}) { | ||
const keys = []; | ||
for (const {name} of element.attributes) { | ||
if (/^data-/.test(name)) | ||
keys.push(name); | ||
} | ||
return keys; | ||
get(self, name) { | ||
return refs.get(self).getAttribute(key(name)); | ||
}, | ||
has({_: element}, name) { | ||
return element.hasAttribute(key(name)); | ||
}, | ||
deleteProperty({_: element}, name) { | ||
element.removeAttribute(key(name)); | ||
set(self, name, value) { | ||
refs.get(self).setAttribute(key(name), value); | ||
self[name] = value; | ||
return true; | ||
}, | ||
get({_: element}, name) { | ||
return element.getAttribute(key(name)); | ||
}, | ||
set({_: element}, name, value) { | ||
element.setAttribute(key(name), value); | ||
return true; | ||
deleteProperty(self, name) { | ||
refs.get(self).removeAttribute(key(name)); | ||
return delete self[name]; | ||
} | ||
@@ -45,7 +33,7 @@ }; | ||
constructor(value) { | ||
return new Proxy( | ||
defineProperty(this, '_', {value}), | ||
handler | ||
); | ||
refs.set(this, value); | ||
return new Proxy(this, handler); | ||
} | ||
} | ||
Object.setPrototypeOf(DOMStringMap.prototype, null); |
import {ELEMENT_NODE, ELEMENT_NODE_END, ATTRIBUTE_NODE, TEXT_NODE, COMMENT_NODE} from './constants.js'; | ||
import {ignoreCase, isVoidElement, localCase, parseFromString} from './utils.js'; | ||
import {String, ignoreCase, isVoidElement, localCase, parseFromString} from './utils.js'; | ||
@@ -302,6 +302,6 @@ import {NodeList} from './interfaces.js'; | ||
if (attribute) | ||
attribute.value = value; | ||
attribute.value = String(value); | ||
else { | ||
attribute = this.ownerDocument.createAttribute(name); | ||
attribute.value = value; | ||
attribute.value = String(value); | ||
this.setAttributeNode(attribute); | ||
@@ -308,0 +308,0 @@ } |
{ | ||
"name": "linkedom", | ||
"version": "0.1.7", | ||
"version": "0.1.8", | ||
"description": "A triple-linked lists based DOM", | ||
@@ -20,3 +20,3 @@ "main": "./cjs/index.js", | ||
"devDependencies": { | ||
"ascjs": "^4.0.3", | ||
"ascjs": "^5.0.0", | ||
"c8": "^7.4.0", | ||
@@ -23,0 +23,0 @@ "coveralls": "^3.1.0" |
102059
3415