Lo-fi, powerful, community-driven string manipulation library.

Related tags

String plexis
Overview

Plexis

Lo-fi, powerful, community-driven string manipulation library.

This is the main monorepo codebase of Plexis.js a production-ready string manipulation library that's community-driven.

npm version bundle size CircleCI Codecov

What is Plexis?

Vision

For the past few years managing, contributing or even starting an open-source project could be hard, especially for newcomers. Plexis was born and driven by the JavaScript community. Our initial goal is to provide a production-ready set of utilities and help people understand how an open-source project is maintained. Plexis is driven by our contributors and it should always stay that way.

You may have noticed that some functions are missing and there are lots of open issues in our repo. That's because we want to allow people to create through the process of learning. Plexis grows with the community and we want to provide a friendly environment for people to get creative, have fun and expand their expertise into JavaScript.

Plexis aims to be the best and most flexible library for string operations in the JavaScript and also encourage everyone to learn.

Do you want to get your hands dirty? Learn more about contributing.

Docs

Installing

You may install Plexis by the registry using: npm install --save plexis. Plexis is a mosaic of tiny utility functions, each one lives within its own package inside the monorepo. Thus you may use just a tiny slice of Plexis by installing individual packages:

npm install @plexis/without-diacritics @plexis/toPred

Using

Plexis utilities can be directly used, Plexis is production-ready and made for Node.js as well as the web. You can directly include and use any module from Plexis inside your project.

import {toPred} from 'plexis';
console.log(toPred('A')); // B

Ground rules

All conversations code pieces on Plexis agree to our underlying code of conduct. This code of conduct also applies to all conversations that happen within our contributor community here on GitHub. We expect discussions in issues and pull requests to stay positive, productive, and respectful.

What you will learn by contributing

The basic idea behind Plexis is to help people understand and learn how to use the fundamentals of JavaScript. By contributing you get into:

  • Mastering JavaScript ES6.

  • Understanding how functions and closures work.

  • Understanding how strings and arrays work in JavaScript. You are gonna find yourself using Array.prototype.reduce() or Array.prototype.map() like a lot :)

  • Understanding how the NPM registry works, the anatomy of package.json and every single part of creating and publishing a package.

  • Working with pull requests, forks, GIT and the whole workflow of an open-source project.

  • Learning how unit testing works.

  • Taking a look at how a CI/CD workflow works along with the NPM registry.

Codebase and technologies

Ok, now let's talk about the architecture of this monorepo: Every single utility function exists as an independent package, everything comes together and gets bundled into a single source of truth, the main Plexis package.

Also, is a list of all the technologies and services we use:

  • Lerna: used for publishing and managing the monorepo packages.
  • Babel: used as a JavaScript compiler.
  • Jest: used for testing.
  • Yarn: used as a package manager.
  • JSDoc: used as a documentation manager.
  • CircleCi: used as a CI/CD provider.
  • Commitlint: used for linting our commit messages.
  • Prettier: used for code linting and formatting.

Folder structure

plexis/
├── .circleci         # CI/CD config
├── .circleci         # CI/CD config
├── .package-template # A sample package template
├── docs              # Our official documentation
└── packages          # The heartbeat of plexis

Contributing

We welcome any contributions from the community! Plexis is made, driven and maintained by the community. We want to offer everyone a fair chance to make their first steps into open-source and learn through the journey.

Great, how do I get started?

Plexis has a Code of Conduct. Please review and help enforce this code of conduct to help us foster an open and inclusive project.

How to Contribute

First things first, thanks so much! Feel free to contribute by opening and commenting on issues, helping answer questions, updating or improving our documentation, or opening a pull request. For quick bug fixes or PRs that address an open issue, feel free to open a PR. You can suggest API changes or dig through your codebase and make us a gift with that precious function of yours.

Even the tiniest piece of code, knowledge or even a few minutes you can spare for Plexis are really important for us. Code of Conduct

Creating a new issue

We have set up proper GitHub issue templates with guidelines about asking for features, fixing a bug or even questions. We are waiting for your ideas to start flowing.

Setup your environment

Ok, so you found the perfect issue for getting started. You can set up your working environment simply by installing git, Node.js, npm and yarn. Use your favorite IDE and you are ready to rock and roll. We prefer using VSCode along with a few extras:

  • The prettier extension for code formating
  • The Document this extension for JSDoc
  • The Jest extension for writing and managing tests.

Now you can locally clone the project as: git clone [email protected]:plexis-js/plexis.git. Use yarn to install any missing dependencies simply by typing yarn in your CLI.

Pick an open issue

Plexis is all about teaching people. You can found lots of open issues with different types of difficulty. Usually, there are labels that they can help you find the best open issue for you. Find the best issue for you and let's get started.

Usually, you will find yourself creating a new package or as it is said "a feature request", thus we are trying to provide as much information, test cases or examples as possible.

Writing code for Plexis

Plexis is using ES6 syntax at full speed. Plexis also uses the monorepo architecture. Every utility function is also a single entry package under the @plexis organization. Some prior knowledge of string operations, regular expressions or array operations are nice to have but certainly not required, we will learn and grow together.

Naming conventions

Each utility is named using the camelCase convention. Since our utilities are used for string operations you will spot a pattern of missing verbs upon naming our methods.

For example, a utility function that converts a string to camelCase can be named as toCamelCase, which references to text => transformToCamelCase => output. For convenience reasons the main Plexis packages also exports a few aliases like dasherize or titleize.

Creating a new package

If you want to create a new package we are on a great path 🎉 . You need to take a few additional steps. Let's assume that you need to create a new package for the camelCase utility.

First thing first we need to create a new @plexis packages using lerna create @plexis/came-case. _Note: NPM does not allows uppercase characters for packages`.

You can use lerna create for creating a new package, more info can be found here. You should include all the available information for the new package like name, version, Alternatively, we are providing a template for new packages. Keep in mind that the name of package folders should be in camelCase and package.json details should be aligned with the other packages and lerna.json. For packages with dependencies to other @plexis packages, you can use yarn bootstrap which under the hood uses lerna bootstrap, learn more about bootstrapping here.

Afterward, create an src and a test folder, place your files and write the appropriate test cases for unit testing.

Note: Usually each package is a single function, thus the coverage limit is super easy to reach out, still, sometimes, we need to cover a lot of different cases due to feature's requirements.

A sample folder for camelCase would look like this:

packages/
├── ...
├── ...
└── toCamelCase/
    ├── src/
    ├── test/
    └── package.json

Finally, you should create a JSDoc comment block for your package, providing a proper description, some code examples and documenting the parameters passed through the function. You shall also create or update the README.md or any related documentation files.

Last but not least you shall update the main plexis package with exports all the submodules. Since the main plexis module uses snapshots for testing, you need to run yarn test -u to update the snapshot testing.

💡 Tip: If your pull request resolves an open issue, don't forget to use GitHub keywords in the description of your commit message, e.g., closes #1, to automatically close the equivalent issue upon merge.

Pull requests

In a nutshell, to submit a pull request, follow these steps:

  1. Fork and clone this repo,
  2. Create a branch for your changes.
  3. Install dependencies with yarn.
  4. Ensure tests are passing by running yarn test. Update any snapshots using yarn test -u.
  5. Update the docs or README.md file if required.
  6. If you're fixing a bug, it's recommended to write a failing test before writing any code.
  7. Make changes locally and commit them.
  8. Try to make sure tests still pass and that there's a great coverage and clear test cases.
  9. Push your branch to origin.
  10. Open a pull request in this repository with a clear title and description and link to any relevant issues
  11. Wait for a maintainer to review your pull request.

💡 Tip: yarn test failing for packages/plexis/test/index.js? Try running yarn bootstrap before running yarn test again.

Common issues and pitfalls

  • Lerna is a powerful tool, try to get through the documentation, make yourself familiar with the commands and follow the appropriate steps as described above.

  • Yarn can be a lifesaver for dependency management, try to avoid mixing npm and yarn.

  • Commitlint can be frustrating. Please use it all consciously as it provides a consistent git history.

  • If you don't know how to do something, just ask for help. We got your back!

Learning resources

Here are some learning resources, free tutorials, and books:

ES6

Jest

Lerna

Comments
  • Feature: `toSwap / swap`

    Feature: `toSwap / swap`

    Swaps every single character with the next one in a given string.

    Example usage

    import toSwap from '@plexis/to-swap';
    
    toSwap('ab');
    // => 'ba'
    
    toSwap('a b');
    // => ' ab'
    
    toSwap('abcd');
    // => 'badc'
    
    

    Aliases

    import toSwap from '@plexis/to-swap';
    import {toSwap, swap} from 'plexis';
    
    enhancement help wanted good first issue 
    opened by vorillaz 16
  • feat: isAlphaNumeric

    feat: isAlphaNumeric

    Added the isAlphaNumeric feature to check for strings that consist of alphabetical and/or numerical characters.
    Aliases are isAlphaNumeric, isAlphanumeric and isAlphaDigit

    Closes #20

    opened by floookay 12
  • feat: add swap case utility

    feat: add swap case utility

    Description

    Added toSwapCase() to swap from lowercase to uppercase and vice versa for the input text.

    Fixes # (issue)

    #74

    Type of change

    New feature (non-breaking change which adds functionality)

    Test

    • [x] tested with single char
    • [x] test with sentences
    opened by nowtryz 8
  • Feature: `toSwapCase / swapCase`

    Feature: `toSwapCase / swapCase`

    Swaps lowercase to uppercase and vice versa for the input text.

    Example usage

    import toSwapCase from '@plexis/to-swap-case';
    
    toSwapCase('Hello WORLD');
    // => 'hELLO world'
    
    toSwapCase('123 toys');
    // => '123 toys'
    
    

    Aliases

    import toSwapCase from '@plexis/to-swap-case';
    import {toSwapCase, swapCase} from 'plexis';
    
    enhancement help wanted good first issue Hacktoberfest 
    opened by vorillaz 8
  • Feature request: `toPlural`

    Feature request: `toPlural`

    Converts the input text to its plural form. Optional param: Count. Optional param: Custom plural form (must also provide a count).

    Example usage

    import toPlural from '@plexis/to-plural';
    
    toPlural('example');
    // => 'examples';
    
    toPlural('example', 10);
    // => 'examples';
    
    toPlural('example', 1);
    // => 'example';
    
    toPlural('example', 'examplez', 10);
    // => 'examplez';
    
    toPlural('example', 'examplez', 1);
    // => 'example';
    

    Aliases

    import toPlural from '@plexis/to-plural';
    import {toPlural, pluralize} from 'plexis';
    
    enhancement help wanted Hacktoberfest 
    opened by APZelos 8
  • Feature request: `toSnakeCase / underscored `

    Feature request: `toSnakeCase / underscored `

    Converts the input text to snake case.

    Example usage

    import toSnakeCase from '@plexis/to-snake-case';
    
    toSnakeCase('Cool');
    // => 'cool'
    
    toSnakeCase('cool mate');
    // => 'cool_mate'
    
    toSnakeCase('Hey how are you today?');
    // => 'hey_how_are_you_today'
    
    toSnakeCase('PascalCase');
    // => 'pascal_case'
    
    toSnakeCase('kebab-case');
    // => kebab_case
    
    

    Aliases

    import toSnakeCase from '@plexis/to-snake-case';
    import {toSnakeCase, underscored} from 'plexis';
    
    enhancement help wanted good first issue 
    opened by vorillaz 8
  • Feature request: `toPascalCase / classify`

    Feature request: `toPascalCase / classify`

    Converts the input text to pascal case.

    Example usage

    import toPascalCase from '@plexis/to-pascal-case';
    
    toPascalCase('Cool');
    // => 'Cool'
    
    toPascalCase('cool mate');
    // => 'CoolMate'
    
    toPascalCase('Hey how are you today?');
    // => 'HeyHowAreYouToday'
    
    toPascalCase('camelCase');
    // => 'CamelCase'
    
    toPascalCase('kebab-case');
    // => KebabCase
    
    

    Aliases

    import toPascalCase from '@plexis/to-pascal-case';
    import {toPascalCase, classify} from 'plexis';
    
    enhancement good first issue Hacktoberfest 
    opened by vorillaz 7
  • Added package toSwap

    Added package toSwap

    I wasn't able to get the toSwap function to work once I added it to index.js in the plexis folder. I checked the instructions but I wasn't missing anything. I don't really know why it's not working. It is set up exactly like every other function.

    The function itself works, and has 5 test cases, testing different possible entries that might have not been accounted for. These test cases also run, the only one that doesn't is in plexis/test/index.js.

    For some reason, it cannot find the toSwap function.

    Fixes Issue #75

    opened by drwm-base 6
  • Feature request: `endsWith`

    Feature request: `endsWith`

    Checks whether the input text ends with the given pattern.

      @param {String} text
      @param {String|Regex} pattern
      @param {Number} startingPosition, optional
    

    Example usage

    import endsWith from '@plexis/ends-with';
    
    const txt = 'This is me';
    
    endsWith(txt, 'is me');
    // => true
    
    endsWith(txt, 'is m', txt.length - 1);
    // => true
    
    endsWith(txt, 'is m', txt.length);
    // => false
    
    endsWith(txt, 'Foo');
    // => false
    
    enhancement good first issue Hacktoberfest 
    opened by vorillaz 6
  • Feature request: `isAlpha`

    Feature request: `isAlpha`

    Checks whether the input text contains only alpha characters.

    Example usage

    import isAlpha from '@plexis/is-alpha';
    
    isAlpha('ABCD');
    // => true
    
    isAlpha('Apollo11');
    // => false
    
    isEmpty('1');
    // => false
    
    isEmpty('Hello,world');
    // => false
    
    isAlpha('');
    // => false
    
    isEmpty('   ');
    // => false
    

    Aliases

    import isAlpha from '@plexis/is-alpha';
    import {isAlpha} from 'plexis';
    
    enhancement good first issue 
    opened by vorillaz 5
  • Feature: `insert`

    Feature: `insert`

    Inserts into the input text a string at specified position.

      insert(); // => ''
      insert('dg'); // => 'dg'
      insert('dg', o); // => 'dgo'
      insert('dg', o, 1); // => 'dog'
      insert('dg', o, 100); // => 'dgo'
      insert('dg', o, -100); // => 'dgo'
      insert('dg', o, 0); // => 'odg'
    

    Aliases

    import insert from '@plexis/insert';
    import {insert} from 'plexis';
    
    enhancement feature_request 
    opened by vorillaz 4
  • chore(deps): bump qs from 6.5.2 to 6.5.3

    chore(deps): bump qs from 6.5.2 to 6.5.3

    Bumps qs from 6.5.2 to 6.5.3.

    Changelog

    Sourced from qs's changelog.

    6.5.3

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Fix] utils.merge: avoid a crash with a null target and a truthy non-array source
    • [Fix] correctly parse nested arrays
    • [Fix] stringify: fix a crash with strictNullHandling and a custom filter/serializeDate (#279)
    • [Fix] utils: merge: fix crash when source is a truthy primitive & no options are provided
    • [Fix] when parseArrays is false, properly handle keys ending in []
    • [Fix] fix for an impossible situation: when the formatter is called with a non-string value
    • [Fix] utils.merge: avoid a crash with a null target and an array source
    • [Refactor] utils: reduce observable [[Get]]s
    • [Refactor] use cached Array.isArray
    • [Refactor] stringify: Avoid arr = arr.concat(...), push to the existing instance (#269)
    • [Refactor] parse: only need to reassign the var once
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] Clean up license text so it’s properly detected as BSD-3-Clause
    • [Docs] Clarify the need for "arrayLimit" option
    • [meta] fix README.md (#399)
    • [meta] add FUNDING.yml
    • [actions] backport actions from main
    • [Tests] always use String(x) over x.toString()
    • [Tests] remove nonexistent tape option
    • [Dev Deps] backport from main
    Commits
    • 298bfa5 v6.5.3
    • ed0f5dc [Fix] parse: ignore __proto__ keys (#428)
    • 691e739 [Robustness] stringify: avoid relying on a global undefined (#427)
    • 1072d57 [readme] remove travis badge; add github actions/codecov badges; update URLs
    • 12ac1c4 [meta] fix README.md (#399)
    • 0338716 [actions] backport actions from main
    • 5639c20 Clean up license text so it’s properly detected as BSD-3-Clause
    • 51b8a0b add FUNDING.yml
    • 45f6759 [Fix] fix for an impossible situation: when the formatter is called with a no...
    • f814a7f [Dev Deps] backport from main
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • chore(deps): bump decode-uri-component from 0.2.0 to 0.2.2

    chore(deps): bump decode-uri-component from 0.2.0 to 0.2.2

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Feature: `padRight/ rpad` #113

    Feature: `padRight/ rpad` #113

    Pads the input text from right to a new length.

    padRight ('Foo Bar', 1); // => 'Foo Bar'
    padRight ('Foo Bar', 8); // => 'Foo Bar '
    padRight ('Foo Bar', 8, '*'); // => 'Foo Bar*'
    padRight ('Foo Bar', 10, '*'); // => 'Foo Bar***'
    padRight ('Foo Bar', 10, '123'); // => 'Foo Bar123'
    padRight ('Foo Bar', 9, '123'); // => 'Foo Bar12'
    

    Aliases

    import padRight from '@plexis/pad-right';
    import {padRight, rpad} from 'plexis';
    
    enhancement feature_request 
    opened by AngelGzS 5
  • Feature:  `padLeft / lpad`

    Feature: `padLeft / lpad`

    Pads the input text from left to a new length.

    padLeft ('Foo Bar', 1); // => 'Foo Bar'
    padLeft ('Foo Bar', 8); // => ' Foo Bar'
    padLeft ('Foo Bar', 8, '*'); // => '*Foo Bar'
    padLeft ('Foo Bar', 10, '*'); // => '***Foo Bar'
    padLeft ('Foo Bar', 10, '123'); // => '123Foo Bar'
    padLeft ('Foo Bar', 9, '123'); // => '12Foo Bar'
    

    Aliases

    import padLeft from '@plexis/pad-left';
    import {padLeft, lpad} from 'plexis';
    
    enhancement feature_request 
    opened by AngelGzS 2
  • Feature: `countWords`

    Feature: `countWords`

    Returns the number of words contained in the input text.

      countWords(); // => 0
      countWords(''); // => 0
      countWords('     ') // => 0
      countWords('Hello   World') // => 2
      countWords('Hello   World    !!') // => 2
    

    Aliases

    import countWords from '@plexis/count-words';
    import {countWords} from 'plexis';
    
    enhancement feature_request 
    opened by vorillaz 2
Owner
Plexis
Plexis
The ultimate JavaScript string library

Voca is a JavaScript library for manipulating strings. https://vocajs.com v.camelCase('bird flight'); // => 'birdFlight' v.sprintf('%s co

Dmitri Pavlutin 3.5k Dec 20, 2022
Lightweight URL manipulation with JavaScript

domurl 2.x (former jsurl) Lightweight URL manipulation with JavaScript for both DOM and server JavaScript. Goal To have a convenient way working with

Mykhailo Stadnyk 511 Dec 28, 2022
Extra JavaScript string methods.

string.js string.js, or simply S is a lightweight (< 5 kb minified and gzipped) JavaScript library for the browser or for Node.js that provides extra

JP Richardson 1.8k Dec 17, 2022
easier than regex string matching patterns for urls and other strings. turn strings into data or data into strings.

url-pattern easier than regex string matching patterns for urls and other strings. turn strings into data or data into strings. This is a great little

null 562 Jan 5, 2023
:fishing_pole_and_fish: A library that allows you to access the text selected by the user

selecting A library that allows you to access the text selected by the user. Instalation To install Selecting, execute: npm install selecting Or Bow

Evandro Leopoldino Gonçalves 87 Nov 17, 2022
Javascript URL mutation library

URI.js About Understanding URIs Documentation jQuery URI Plugin Author Changelog IMPORTANT: You may not need URI.js anymore! Modern browsers provide t

Medialize 6.2k Dec 30, 2022
Helps to encode a string to base64 and decode a base64 string to a normal string.

@prashoonb/base64-encoder-decoder Installation npm install @prashoonb/base64-encoder-decoder API base64.encode(input) This function takes a byte strin

PrashoonB 4 Mar 29, 2022
A community website built by the community for the community (Hacktoberfest 2022) :tada:

Hacktoberfest 2022 ?? : Built by the community for the community! This repository is an initiative which aims to help beginners kickstart their open-s

Your First Open Source Project 5 Oct 12, 2022
String manipulation helpers for javascript

The stable release documentation can be found here https://epeli.github.io/underscore.string/ Underscore.string Javascript lacks complete string manip

Esa-Matti Suuronen 3.4k Dec 25, 2022
Convert some JavaScript/TypeScript code string into a .d.ts TypeScript Declaration code string

convert-to-dts Converts the source code for any .js or .ts file into the equivalent .d.ts code TypeScript would generate. Usage import { convertToDecl

Lily Scott 11 Mar 3, 2022
'event-driven' library aims to simplify building backends in an event driven style

'event-driven' library aims to simplify building backends in an event driven style(event driven architecture). For message broker, light weight Redis Stream is used and for event store, the well known NoSQL database, MongoDB, is used.

Sihoon Kim 11 Jan 4, 2023
Social media platform that hosts community-driven challenges where everyone can play and compete

Komo A social media platform that hosts community-driven challenges where everyone can play and compete. How To Install Komo TBA Preview Home Screen A

null 2 Jun 13, 2022
A community driven project to make a game like phigros.

这是什么? 这是一款名为PhiCommunity的节奏游戏,它仿照Phigros制作。 APP已发布(测试版本) 请前往Actions - PhiCommunityAPP的最新构建下载Artifact,此构建为Debug构建,仅用于测试。 您也可以前往Releases - PhiCommunityA

Yuameshi 105 Jan 2, 2023
A community driven project to make a game like phigros.

A community driven project to make a game like phigros.

Yuameshi 103 Dec 28, 2022
A community-driven repository showcasing examples using Remix 💿

Remix Examples Welcome to @remix-run/examples! If you have an example you'd like to share, please submit a pull request! This is a community-driven re

Remix 301 Jan 3, 2023
A small javascript DOM manipulation library based on Jquery's syntax. Acts as a small utility library with the most common functions.

Quantdom JS Quantdom is a very small (about 600 bytes when ran through terser & gzipped) dom danipulation library that uuses a Jquery like syntax and

Sean McQuaid 7 Aug 16, 2022
A community Discord bot testnet faucet for thirdweb community. 💻🌏

Thirdweb Faucet (Discord Bot) ?? Nominate (@WarenGonzaga) as GitHub Star. If you appreciate his hardwork and dedication to open source. A dedicated Di

Waren Gonzaga 4 Aug 6, 2022
Hasbik is a community based social token and the new paradigm in the crypto space. With the goal to build a community around a crypto token.

Hasbik is a community based social token and the new paradigm in the crypto space. With the goal to build a community around a crypto token.

null 2 Jan 5, 2022
:rainbow: Javascript color conversion and manipulation library

color JavaScript library for immutable color conversion and manipulation with support for CSS color strings. var color = Color('#7743CE').alpha(0.5).l

Qix 4.5k Jan 3, 2023