Socket
Socket
Sign inDemoInstall

solid-js

Package Overview
Dependencies
Maintainers
1
Versions
458
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

solid-js - npm Package Compare versions

Comparing version 0.0.10-beta.2 to 0.0.10

68

dist/dom.js
import { createRuntime } from 'babel-plugin-jsx-dom-expressions';
import { S, unwrap, from } from 'solid-js';
let runtime;
var index = runtime = createRuntime({
function handleEvent(handler, id) {
return e => {
let node = e.target,
name = `__ev$${e.type}`;
while (node && node !== this && !(node[name])) node = node.parentNode;
if (node[name] && node[name + 'Id'] === id) handler(node[name], e);
}
}
function shallowDiff(a, b) {
let sa = new Set(a), sb = new Set(b);
return [a.filter(i => !sb.has(i)), (b.filter(i => !sa.has(i)))];
}
const r = createRuntime({
wrap(el, accessor, isAttr, fn, deep) {

@@ -12,3 +25,3 @@ S.makeComputationNode(() => {

if (typeof value === 'function' && !isAttr && !deep) {
runtime.wrap(el, value, isAttr, fn, true);
r.wrap(el, value, isAttr, fn, true);
return;

@@ -23,2 +36,49 @@ }

export default index;
let eventId = 0;
function delegateEvent(eventName, handler) {
let attached = null,
eId = ++eventId,
fn = handleEvent(handler, eId);
S.cleanup(() => attached.removeEventListener(eventName, fn));
return data => element => {
element[`__ev$${eventName}`] = data;
element[`__ev$${eventName}Id`] = eId;
if (attached) return;
attached = true;
Promise.resolve().then(() => {
attached = 'getRootNode' in element ? element.getRootNode() : document;
attached.addEventListener(eventName, fn);
});
}
}
function selectOn(signal, handler) {
let index = [];
S.on(signal, prev => {
let id = signal();
if (prev != null && index[prev]) handler(index[prev], false);
if (id != null) handler(index[id], true);
return id;
});
return id => element => {
index[id] = element;
S.cleanup(() => index[id] = null);
}
}
function multiSelectOn(signal, handler) {
let index = [];
S.on(signal, prev => {
let value = signal();
[additions, removals] = shallowDiff(value, prev);
additions.forEach(id => handler(index[id], true));
removals.forEach(id => handler(index[id], false));
return value;
});
return id => element => {
index[id] = element;
S.cleanup(() => index[id] = null);
}
}
export { r, delegateEvent, selectOn, multiSelectOn };

63

dist/solid.js

@@ -736,63 +736,2 @@ import S from 's-js';

function handleEvent(handler, id) {
return e => {
let node = e.target,
name = `__ev$${e.type}`;
while (node && node !== this && !(node[name])) node = node.parentNode;
if (node[name] && node[name + 'Id'] === id) handler(node[name], e);
}
}
function shallowDiff(a, b) {
let sa = new Set(a), sb = new Set(b);
return [a.filter(i => !sb.has(i)), (b.filter(i => !sa.has(i)))];
}
let eventId = 0;
function delegateEvent(eventName, handler) {
let attached = null,
eId = ++eventId,
fn = handleEvent(handler, eId);
S.cleanup(() => attached.removeEventListener(eventName, fn));
return data => element => {
element[`__ev$${eventName}`] = data;
element[`__ev$${eventName}Id`] = eId;
if (attached) return;
attached = true;
Promise.resolve().then(() => {
attached = 'getRootNode' in element ? element.getRootNode() : document;
attached.addEventListener(eventName, fn);
});
}
}
function selectOn(signal, handler) {
let index = [];
S.on(signal, prev => {
let id = signal();
if (prev != null && index[prev]) handler(index[prev], false);
if (id != null) handler(index[id], true);
return id;
});
return (id) => element => {
index[id] = element;
S.cleanup(() => index[id] = null);
}
}
function multiSelectOn(signal, handler) {
let index = [];
S.on(signal, prev => {
let value = signal();
[additions, removals] = shallowDiff(value, prev);
additions.forEach(id => handler(index[id], true));
removals.forEach(id => handler(index[id], false));
return value;
});
return id => element => {
index[id] = element;
S.cleanup(() => index[id] = null);
}
}
export { State, ImmutableState, unwrap, from, map, pipe, memo, observable, delegateEvent, selectOn, multiSelectOn };
export { State, ImmutableState, unwrap, from, map, pipe, memo, observable };
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var babelPluginJsxDomExpressions = require('babel-plugin-jsx-dom-expressions');
var solidJs = require('solid-js');
let runtime;
var index = runtime = babelPluginJsxDomExpressions.createRuntime({
function handleEvent(handler, id) {
return e => {
let node = e.target,
name = `__ev$${e.type}`;
while (node && node !== this && !(node[name])) node = node.parentNode;
if (node[name] && node[name + 'Id'] === id) handler(node[name], e);
}
}
function shallowDiff(a, b) {
let sa = new Set(a), sb = new Set(b);
return [a.filter(i => !sb.has(i)), (b.filter(i => !sa.has(i)))];
}
const r = babelPluginJsxDomExpressions.createRuntime({
wrap(el, accessor, isAttr, fn, deep) {

@@ -14,3 +29,3 @@ solidJs.S.makeComputationNode(() => {

if (typeof value === 'function' && !isAttr && !deep) {
runtime.wrap(el, value, isAttr, fn, true);
r.wrap(el, value, isAttr, fn, true);
return;

@@ -25,2 +40,52 @@ }

module.exports = index;
let eventId = 0;
function delegateEvent(eventName, handler) {
let attached = null,
eId = ++eventId,
fn = handleEvent(handler, eId);
solidJs.S.cleanup(() => attached.removeEventListener(eventName, fn));
return data => element => {
element[`__ev$${eventName}`] = data;
element[`__ev$${eventName}Id`] = eId;
if (attached) return;
attached = true;
Promise.resolve().then(() => {
attached = 'getRootNode' in element ? element.getRootNode() : document;
attached.addEventListener(eventName, fn);
});
}
}
function selectOn(signal, handler) {
let index = [];
solidJs.S.on(signal, prev => {
let id = signal();
if (prev != null && index[prev]) handler(index[prev], false);
if (id != null) handler(index[id], true);
return id;
});
return id => element => {
index[id] = element;
solidJs.S.cleanup(() => index[id] = null);
}
}
function multiSelectOn(signal, handler) {
let index = [];
solidJs.S.on(signal, prev => {
let value = signal();
[additions, removals] = shallowDiff(value, prev);
additions.forEach(id => handler(index[id], true));
removals.forEach(id => handler(index[id], false));
return value;
});
return id => element => {
index[id] = element;
solidJs.S.cleanup(() => index[id] = null);
}
}
exports.r = r;
exports.delegateEvent = delegateEvent;
exports.selectOn = selectOn;
exports.multiSelectOn = multiSelectOn;

@@ -741,63 +741,2 @@ 'use strict';

function handleEvent(handler, id) {
return e => {
let node = e.target,
name = `__ev$${e.type}`;
while (node && node !== this && !(node[name])) node = node.parentNode;
if (node[name] && node[name + 'Id'] === id) handler(node[name], e);
}
}
function shallowDiff(a, b) {
let sa = new Set(a), sb = new Set(b);
return [a.filter(i => !sb.has(i)), (b.filter(i => !sa.has(i)))];
}
let eventId = 0;
function delegateEvent(eventName, handler) {
let attached = null,
eId = ++eventId,
fn = handleEvent(handler, eId);
S.cleanup(() => attached.removeEventListener(eventName, fn));
return data => element => {
element[`__ev$${eventName}`] = data;
element[`__ev$${eventName}Id`] = eId;
if (attached) return;
attached = true;
Promise.resolve().then(() => {
attached = 'getRootNode' in element ? element.getRootNode() : document;
attached.addEventListener(eventName, fn);
});
}
}
function selectOn(signal, handler) {
let index = [];
S.on(signal, prev => {
let id = signal();
if (prev != null && index[prev]) handler(index[prev], false);
if (id != null) handler(index[id], true);
return id;
});
return (id) => element => {
index[id] = element;
S.cleanup(() => index[id] = null);
}
}
function multiSelectOn(signal, handler) {
let index = [];
S.on(signal, prev => {
let value = signal();
[additions, removals] = shallowDiff(value, prev);
additions.forEach(id => handler(index[id], true));
removals.forEach(id => handler(index[id], false));
return value;
});
return id => element => {
index[id] = element;
S.cleanup(() => index[id] = null);
}
}
exports.S = S;

@@ -812,4 +751,1 @@ exports.State = State;

exports.observable = observable;
exports.delegateEvent = delegateEvent;
exports.selectOn = selectOn;
exports.multiSelectOn = multiSelectOn;
{
"name": "solid-js",
"description": "A declarative JavaScript library for building user interfaces.",
"version": "0.0.10-beta.2",
"version": "0.0.10",
"author": "Ryan Carniato",

@@ -6,0 +6,0 @@ "license": "MIT",

@@ -43,3 +43,3 @@ # Solid.js

S.root(() => mountEl.appendChild(MyComponent()));
S.root(() => mountEl.appendChild(<MyComponent />));
```

@@ -108,3 +108,3 @@

```js
import r from 'solid-js/dom'
import { r } from 'solid-js/dom'
```

@@ -161,2 +161,2 @@

This project is still a work in progress. Although I've been working on it for the past 2 years it's been evolving considerably. I've decided to open source this at this point to share the concept. It took discovering the approaches used by [Surplus.js](https://github.com/adamhaile/surplus) to fill the missing pieces this library needed to prove out it's concept. I was impressed so much by Surplus that I'm using [S.js](https://github.com/adamhaile/S) for Signals. And now I believe we can have performance and a simple clean API.
This project is still a work in progress. Although I've been working on it for the past 2 years it's been evolving considerably. I've decided to open source this at this point to share the concept. It took discovering the approaches used by [Surplus.js](https://github.com/adamhaile/surplus) to fill the missing pieces this library needed to prove out it's concept. And now I believe we can have performance and a simple clean API.
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc