Grad shape
Grad shape

string.is

Miscellaneous

About this project

string-is

eslint jest build codecov

string.is is an open-source, privacy-friendly toolkit for developers. You can see it in action here.

Screenshot

string.is is an opinionated conversion tool, with the following goals:

  • It should be open-source.
  • It should not set any cookies.
  • It should have a strict Content Security Policy.
  • It should be extremely opinionated about dependancies, and only use well-known, well-supported libraries.
  • It should try to detect the format of the input, and intelligently choose output options.

Install dependencies:

yarn install

Set up git hooks:

yarn husky install

Run the development server:

yarn dev

... and then open http://localhost:3000 in your browser.

To run all linting checks, type checks, tests, and build for production:

yarn all

Running with Docker

Build the docker image:

yarn docker-build

or

docker build -t string-is .

... and then run it:

yarn docker-run

or

docker run -p 3000:3000 string-is

Alternatively you can build and run it with docker-compose:

docker-compose up

... or even run it directly from Docker Hub:

docker run -p 3000:3000 daveperrett/string-is:latest

Currently linux/arm64 and linux/amd64 platforms are supported.

Adding a new converter

The src/lib folder contains most of the conversion logic, and is pure TypeScript, with no React knowledge required.

  • src/lib/identities contains identifiers that take an input string and return the confidence level that the input is in a particular format. For example, JwtIdentifier returns a number indicating the confidence level (between 0 and 100) that a given input string is a JWT token.
  • src/lib/inputs contains parsers that load strings from different formats. For example, the JsonInput parses a JSON string and returns an object.
  • src/lib/outputs takes parsed data and formats it into a specific output format. For example, JavaScriptOutput takes a JavaScript string, formats it according to the formatting options provided, and returns the result.
  • src/lib/converters are inputoutput pairs - the glue that performs a conversion between formats. For example, CsvToJsonConverter takes a CSV
Technologies & License
AGPL-3.0 Node.js
Quick Deploy

Deploy this project to cloud platforms with one click