
Security News
Another Round of TEA Protocol Spam Floods npm, But It’s Not a Worm
Recent coverage mislabels the latest TEA protocol spam as a worm. Here’s what’s actually happening.
It's not ready for production. Stay tuned.
Set of useful first-class structures which allow you to get rid of your developer's pain.
npm install dgelong --save
I've read Fantasy Land specification. I don't want make another implementation that requires Ph.D in Math. The usage of monads should be as simple as functional composition f(g(a)). API should be close to native. So if we're talking about data structures, they should be produced in the same way as natives: by calling constructor function with or without new operator (I prefer the second approach).
Note: Babel is used for transpiling Dgelong's sources. The author highly recommends you to start using ECMAScript 6 in your project.
Dgelong's bundle uses UMD so it can be required in all environments (CommonJS, AMD, ES6 modules, browser).
var Dgelong = require('dgelong');
Just like in CommonJS Modules style you can grab everything in one object:
import Dgelong from 'dgelong';
Or just use something specific, for example:
import {Maybe, Future} from 'dgelong';
But, along with that, you can import particular structures by using direct paths:
import Maybe, {Just, Nothing} from 'dgelong/maybe';
import Either, {Right, Left} from 'dgelong/either';
import Future, {Resolve, Reject} from 'dgelong/future';
import Observable from 'dgelong/observable';
<script src="node_modules/dgelong/bundle.js"></script>
It will provide you Dgelong global variable.
bind, subscribe)
bind, pull)
import {Just, Nothing} from 'dgelong/maybe';
function square(n) {
return n * n;
}
function isEven(n) {
return n % 2 ? Nothing() : Just(n);
}
Just(5)
.bind(square) // returns Just(25)
.bind(isEven) // returns Nothing()
.bind(alert); // won't work
import {Right as Success, Left as Failure} from 'dgelong/either';
function validateUserPassword(password) {
if (password.length < 10) return Failure('Password too short');
if (!/[0-9]/g.test(password)) return Failure('Password should contain numbers');
return Success(password);
}
validateUserPassword('boo')
.bind(savePassword, showError);
import Future from 'dgelong/future';
function fetch(url) {
return Future(function(resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.onload = () => resolve(this.response);
xhr.onerror = () => reject(this);
xhr.open(url);
xhr.send(null);
return {
dispose() { xhr.abort(); }
};
});
}
fetch('/products')
.bind(products => ...)
.subscribe(showProducts);
import Observable from 'dgelong/observable';
var clicks = Observable(function(next){
document.addEventListener('click', next);
return {
dispose(){ document.removeEventListener('click', next); }
};
});
clicks
.map(event => event.target)
.forEach(element => ...);
FAQs
A JavaScript Implementation of Useful First-class Citizens
The npm package dgelong receives a total of 2 weekly downloads. As such, dgelong popularity was classified as not popular.
We found that dgelong demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Recent coverage mislabels the latest TEA protocol spam as a worm. Here’s what’s actually happening.

Security News
PyPI adds Trusted Publishing support for GitLab Self-Managed as adoption reaches 25% of uploads

Research
/Security News
A malicious Chrome extension posing as an Ethereum wallet steals seed phrases by encoding them into Sui transactions, enabling full wallet takeover.