String.is-это инструментарий для разработчиков с открытым исходным кодом для разработчиков. Вы можете увидеть это в действии здесь.

string.is - это фактический инструмент преобразования со следующими целями:
Строка. Internet Explorer не поддерживается.
Установить зависимости:
yarn installУстановите Git Hooks:
yarn husky installЗапустите сервер разработки:
yarn dev... а затем откройте http: // localhost: 3000 в вашем браузере.
Чтобы запустить все проверки на линии, тип проверки, тесты и сборка для производства:
yarn allСоздайте изображение Docker:
yarn docker-buildили
docker build -t string-is .... а потом запустите:
yarn docker-runили
docker run -p 3000:3000 string-is В качестве альтернативы вы можете построить и запустить его с помощью docker-compose :
docker-compose up... или даже запустить его прямо из Docker Hub:
docker run -p 3000:3000 daveperrett/string-is:latest В настоящее время поддерживаются платформы linux/arm64 и linux/amd64 .
Папка src/lib содержит большую часть логики преобразования и является чистой типовой, без реагирования.
src/lib/identities содержит идентификаторы , которые принимают входную строку и возвращают уровень доверия, который вход находится в определенном формате. Например, JwtIdentifier возвращает число, указывающее уровень доверия (от 0 до 100), что данная входная строка является токеном JWT.src/lib/inputs содержат анализаторы, которые загружают строки из разных форматов. Например, JsonInput анализирует строку JSON и возвращает объект.src/lib/outputs принимают анализируемые данные и форматируют их в конкретный выходной формат. Например, JavaScriptOutput принимает строку JavaScript, форматирует ее в соответствии с предоставленными параметрами форматирования и возвращает результат.src/lib/converters являются входными → выходными парами - клей, который выполняет преобразование между форматами. Например, CsvToJsonConverter принимает строку CSV в качестве ввода, подает ее в CsvInput для анализа и придает результат в JsonOutput для форматирования.Чтобы добавить новый конвертер:
identity (при SRC/Lib/Identities) для формата . В этом случае мы конвертируем из простого текста, и у нас уже есть простые идентичность, поэтому нам не нужно добавлять новую личность. identity должна экспортировать (a) confidence функцию, которая, учитывая входную строку, возвращает число из 100, описывающая уверенность, что заданный вход соответствует идентичности, и (b) массив converters , с которыми может использоваться идентичность.identity на шаге (2), обязательно экспортируйте ее в SRC/Lib/Identities/Index.ts.output (под SRC/LIB/выходы) для формата . Выход должен экспортировать output функцию, которая, учитывая входную строку (или, возможно, объект, в зависимости от возникающей преобразования) и объекта options , будет преобразовать вход в нужную выходную строку.output на шаге (4), обязательно экспортируйте его в SRC/Lib/upputs/index.ts.converter (под SRC/Lib/Converters) для пары input + output . Преобразователь должен экспортировать (a) функцию operation , которая передает входную строку и объект options в соответствующий output , и (b) outputId , которая определяет, какой вывод используется.converter на шаге (6), обязательно экспортируйте его в SRC/Lib/Converters/index.ts. Также обязательно добавьте записи в Locales/en/pages-converter.json], чтобы на целевой странице с генегенерированной автоматической точкой будет правильный заголовок, вступительный текст и пример.outputId на шаге (6), добавьте выходной компонент React (в рамках SRC/Components/Domain/Convert/Выходы), чтобы отобразить новый вид вывода. Если вы повторно используете существующий вид вывода (например, преобразование в JSON или YAML), вы можете повторно использовать существующий выходной компонент здесь. Если соответствующие inputs , outputs , converters и компоненты реагирования находятся правильно и экспортируются, вы должны иметь возможность использовать свой новый преобразователь, учитывая соответствующую входную строку, которая запускает ненулевую confidence .
Если вы хотите быть на 100% уверенным в том, что ваша конфиденциальность защищена, вы можете легко настроить экземпляр строки. IS для вашего личного или организационного использования.
Самый быстрый способ развертывания строки. Ознакомьтесь с их документацией по развертыванию следующей.js для получения более подробной информации. Нажмите кнопку Deploy ниже», чтобы развернуть это приложение с Vercel:
NetLify и Heroku также являются хорошими вариантами бесплатного хостинга. Нажмите кнопку Deploy ниже, чтобы развернуть это приложение с Heroku:
К сожалению, string.is в настоящее время не поддерживает статические сборки через next export (который позволит хостинг на EG. S3), потому что функция i18n , которую он использует, в настоящее время не поддерживается для статических сборков.
Установите переменную среды NEXT_PUBLIC_BASE_PATH в подпад, затем создайте проект перед развертыванием. Это значение должно быть установлено во время сборки и не может быть изменено без повторного строительства, так как значение подставлено в пакетах на стороне клиента.
Например, если вы развертываете на https://tools.example.com/string-is , вам нужно установить NEXT_PUBLIC_BASE_PATH на /string-is . Вам не нужно устанавливать эту переменную, если вы развернете в корне домена.
Стройте и бегите с Docker:
docker build -t string-is --build-arg NEXT_PUBLIC_BASE_PATH= " /string-is " .
docker run -p 3000:3000 string-is Или построить и бежать с помощью docker-compose :
export NEXT_PUBLIC_BASE_PATH= " /string-is "
docker-compose up --build String.is поддерживает полную локализацию. Новые языки должны быть добавлены в locales/ папки в формате JSON (см. locales/en/ для примера). Английский в настоящее время является единственным предоставленным местом, но приветствуется поддержка новых языков.
String.is включает в себя поддержку правдоподобной аналитики, услуги по конфиденциальности, без конфиденциальности, без печенья. Чтобы включить это, установите переменную среды, указывающую домен:
NEXT_PUBLIC_ANALYTICS_DOMAIN=string.is
Аналитика отключена по умолчанию, если только process.env.NODE_ENV === 'production' и установлен домен NEXT_PUBLIC_ANALYTICS_DOMAIN .
Как только вы внесете свои изменения:
git checkout -b feature/add-my-new-convertergit push origin feature/add-my-new-converter@davemetrics
Смотрите лицензию для деталей.