Description
Basic operations on synchronous + asynchronous iterables, strictly for JavaScript native types.
We do not use any synthetic types / wrappers here, like Observable in RXJS, etc. It is strictly an iterable on the input, and an iterable on the output, for maximum performance, simplicity and compatibility (see Rationale).
We also do not use ES6 generators internally, because their current implementation in V8 is relatively slow.
#<Sawyer::Resource:0x00007fbac98da410> alternatives and similar libraries
Based on the "Editors" category.
Alternatively, view iter-ops alternatives based on common mentions on social networks and blogs.
-
vuetify
๐ Material Component Framework for Vue -
quill
Quill is a modern WYSIWYG editor built for compatibility and extensibility. -
Monaco Editor
A browser based code editor -
slate
A completely customizable framework for building rich text editors. (Currently in beta.) -
Quasar Framework
Quasar Framework - Build high-performance VueJS user interfaces in record time -
Draft.js
A React framework for building text editors. -
Editor.js
A block-styled editor with clean JSON output -
medium-editor
Medium.com WYSIWYG editor clone. Uses contenteditable API to implement a rich text solution. -
TOAST UI Editor
๐๐ Markdown WYSIWYG Editor. GFM Standard + Chart & UML Extensible. -
TinyMCE
The world's #1 JavaScript library for rich text editing. Available for React, Vue and Angular -
jsoneditor
A web-based tool to view, edit, format, and validate JSON -
SimpleMDE
A simple, beautiful, and embeddable JavaScript Markdown editor. Delightful editing for beginners and experts alike. Features built-in autosaving and spell checking. -
buefy
Lightweight UI components for Vue.js based on Bulma -
bootstrap-wysiwyg
Tiny bootstrap-compatible WYSIWYG rich text editor. -
wysihtml5
Open source rich text editor based on HTML5 and the progressive-enhancement approach. Uses a sophisticated security concept and aims to generate fully valid HTML5 markup by preventing unmaintainable tag soups and inline styles. -
Froala Editor
The next generation Javascript WYSIWYG HTML Editor. -
bootstrap-wysihtml5
Simple, beautiful wysiwyg editor -
ProseMirror
The ProseMirror WYSIWYM editor -
vim.js
JavaScript port of Vim with a persistent ~/.vimrc -
Squire
HTML5 rich text editor. Try the demo integration at -
Trumbowyg
A lightweight and amazing WYSIWYG JavaScript editor under 10kB -
EpicEditor
EpicEditor is an embeddable JavaScript Markdown editor with split fullscreen editing, live previewing, automatic draft saving, offline support, and more. For developers, it offers a robust API, can be easily themed, and allows you to swap out the bundled Markdown parser with anything you throw at it. -
ContentTools
A JS library for building WYSIWYG editors for HTML content. -
editor
A markdown editor. http://lab.lepture.com/editor/ -
jquery-notebook
A modern, simple and elegant WYSIWYG rich text editor. -
Mobiledoc Kit
A toolkit for building WYSIWYG editors with Mobiledoc -
ckeditor-releases
Official distribution releases of CKEditor 4. -
popline
Popline is an HTML5 Rich-Text-Editor Toolbar -
React PDF viewer
A React component to view a PDF document -
Monod
:notebook: Our cool, secure, and offline-first Markdown editor. -
raptor-editor
Raptor, an HTML5 WYSIWYG content editor! -
php-parser
:herb: NodeJS PHP Parser - extract AST or tokens (PHP5 and PHP7) -
Bangle.dev
Collection of higher level rich text editing tools. It powers the local only note taking app https://bangle.io -
esprima
ECMAScript parsing infrastructure for multipurpose analysis -
URL Parser
Super fast spec-compliant URL state machine for Node.js -
ppo
ppo is a super small and useful utils library for JavaScript ๐๐ -
Zepcode
โ๏ธ Zeplin extension that generates Swift snippets from colors, fonts, and layers -
convert-plain-text-into-links
An npm module which replaces any plain text link within string with achor tag -
react-component-widget
Component for resizing and repositioning charts, parsing transferred data when working with Recharts library. -
jquery-connect
Easily connect your jQuery code to stores like Redux -
#<Sawyer::Resource:0x00007f6e64170690>
1KB (GZipped) state manager for React. It is small and easy to use -
pixotree
Super fast TreeView in VanillaJS, packed with features.
Appwrite - The Open Source Firebase alternative introduces iOS support
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of #<Sawyer::Resource:0x00007fbac98da410> or a related project?
README
iter-ops
About
Basic operations on synchronous + asynchronous iterables, strictly for JavaScript native types.
We do not use any synthetic types / wrappers here, like Observable
in RXJS, etc. It is strictly an iterable on the
input, and an iterable on the output, for maximum performance, simplicity and compatibility (see Rationale).
Installation
$ npm i iter-ops
Usage
Follow the usage examples below, based on your development environment.
See also...
- API List below, plus Full API
- Recipes, for additional operations
- [Benchmarks], for performance comparison
For web usage, either bundle it properly, or see [web](./web) folder.
JavaScript
Simple filtering + mapping an iterable:
const {pipe, filter, map} = require('iter-ops');
const a = [1, 2, 3, 4, 5];
const i = pipe(
a,
filter(a => a % 2 === 0), // find even numbers
map(value => ({value})) // remap into objects
);
const result = [...i]; //=> [{value: 2}, {value: 4}]
TypeScript
Calculating the sum of unique numbers:
import {pipe, distinct, reduce} from 'iter-ops';
const a = [1, 2, 2, 3, 3, 4];
const i = pipe(
a,
distinct(), // emit unique numbers
reduce((p, c) => p + c) // sum up the numbers
); //=> one-value iterable
const result = i.first; //=> 10
API
Function pipe takes an iterable, applies all specified operators to it, and returns an extended iterable.
Standard operators:
All standard operators implement the same logic as Array does:
- concat - merges current iterable with multiple values, iterators or iterables.
- every - checks if all elements pass the predicate test.
- filter - standard filter processor, filtering by predicate.
- map - standard mapping processor, remapping by predicate.
- reduce - standard reduce processor.
- some - checks if any element passes the predicate test.
Extended operators:
- aggregate - executes an aggregate on accumulated values - see Aggregates.
- catchError - catches iteration errors - see Error Handling.
- count - counts values, and produces a one-value iterable.
- defaultEmpty - adds default to an empty iterable.
- distinct - emits unique values, with optional key selector.
- drain - drains the iterable, and then ends it.
- empty - produces an empty iterable.
- first - produces a one-value iterable, with the first emitted value.
- indexBy - emits indexed values that pass the predicate test.
- isEmpty - produces a one-value iterable, indicating if the source is empty.
- last - produces a one-value iterable, with the last emitted value.
- onEnd - notifies of the end of a successful iteration.
- page - splits values into pages of fixed size (last page can be smaller).
- repeat - repeats iterable values.
- skip - starts emitting values after certain count.
- split - splits values into separate lists - see Split.
- spread - spreads iterable values.
- start - starts emitting, once the predicate returns a truthy value.
- stop - stops emitting, once the predicate returns a truthy value.
- take - emits up to certain number of values.
- takeLast - emits up to certain number of the last values.
- tap - taps into each value, without changing the output.
- timing - measures timings for each value.
- toArray - accumulates values into an array.
- zip - zips values together, into an array.