Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/notacat1/large-number
The project is a Large Number class for working with long integers in TypeScript. The class implements basic arithmetic operations (addition, subtraction, multiplication and division) without using the built-in BigInt type. Supports working with negative numbers.
https://github.com/notacat1/large-number
bignumber jest typescript
Last synced: 14 days ago
JSON representation
The project is a Large Number class for working with long integers in TypeScript. The class implements basic arithmetic operations (addition, subtraction, multiplication and division) without using the built-in BigInt type. Supports working with negative numbers.
- Host: GitHub
- URL: https://github.com/notacat1/large-number
- Owner: NotACat1
- Created: 2024-09-11T09:53:35.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2024-09-11T12:35:53.000Z (about 2 months ago)
- Last Synced: 2024-10-04T21:37:27.345Z (about 1 month ago)
- Topics: bignumber, jest, typescript
- Language: TypeScript
- Homepage:
- Size: 146 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Large Number
![TypeScript](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge&logo=typescript&logoColor=white)
![Jest](https://img.shields.io/badge/-jest-%23C21325?style=for-the-badge&logo=jest&logoColor=white)## Описание
Проект представляет собой класс `LargeNumber` для работы с длинными целыми числами в языке TypeScript. Класс реализует основные арифметические операции (сложение, вычитание, умножение и деление) без использования встроенного типа `BigInt`. Поддерживает работу с отрицательными числами.
## Установка
### Установка Node.js и npm
Для работы с проектом требуется Node.js и npm. Следуйте этим шагам для установки:
1. **Загрузите и установите Node.js:**
Перейдите на [официальный сайт Node.js](https://nodejs.org/en/download/package-manager) и загрузите установочный пакет для вашей операционной системы. Выберите рекомендованную версию LTS (долгосрочная поддержка) для стабильности.
- **Windows/macOS**: Загрузите установочный файл и следуйте инструкциям мастера установки.
- **Linux**: Вы можете использовать менеджер пакетов вашей системы для установки Node.js. Например:```bash
# Для Debian/Ubuntu
sudo apt update
sudo apt install nodejs npm# Для CentOS
sudo yum install nodejs npm
```2. **Проверьте установку:**
После установки Node.js и npm проверьте их версии, чтобы убедиться, что всё установлено правильно:
```bash
node -v
npm -v
```Команды должны вернуть версии Node.js и npm.
3. **Клонируйте репозиторий и установите зависимости:**
После установки Node.js и npm, выполните следующие шаги:
```bash
git clone https://github.com/NotACat1/Large-Number.git
cd Large-Number
npm install
```Команда `npm install` установит все зависимости проекта, указанные в `package.json`.
## Использование
### Создание объекта
```typescript
import { LargeNumber } from '@utils/LargeNumber';// Создание объекта с длинным числом
const num1 = new LargeNumber('12345678901234567890');
const num2 = new LargeNumber('-98765432109876543210');
```### Арифметические операции
#### Сложение
```typescript
const resultAdd = LargeNumber.add(num1, num2);
console.log(resultAdd.toString()); // Выводит результат сложения
```#### Вычитание
```typescript
const resultSub = LargeNumber.subtract(num1, num2);
console.log(resultSub.toString()); // Выводит результат вычитания
```#### Умножение
```typescript
const resultMul = LargeNumber.multiply(num1, num2);
console.log(resultMul.toString()); // Выводит результат умножения
```#### Деление
```typescript
const resultDiv = LargeNumber.divide(num1, num2);
console.log(resultDiv.toString()); // Выводит результат деления
```## Скрипты
Проект включает несколько скриптов для удобства разработки и управления проектом. Все скрипты указаны в секции `scripts` файла `package.json`. Вот их описание:
### `prepare`
```bash
npm run prepare
```Этот скрипт устанавливает Husky хуки. Husky используется для автоматической проверки кода перед коммитами. Он выполняется автоматически при установке зависимостей.
### `lint`
```bash
npm run lint
```Этот скрипт запускает ESLint для проверки файлов на наличие ошибок и предупреждений. Он проверяет все файлы с расширениями `.js` и `.ts` в папке `src`.
### `lint:fix`
```bash
npm run lint:fix
```Этот скрипт запускает ESLint для исправления автоматически исправимых проблем в коде. Как и `lint`, он проверяет файлы с расширениями `.js` и `.ts` в папке `src`.
### `prettier:check`
```bash
npm run prettier:check
```Этот скрипт проверяет файлы на соответствие правилам форматирования, установленным Prettier. Он проверяет все файлы с расширениями `.js` и `.ts` в папке `src`.
### `prettier:fix`
```bash
npm run prettier:fix
```Этот скрипт автоматически форматирует файлы в соответствии с правилами Prettier. Он применяет форматирование к файлам с расширениями `.js` и `.ts` в папке `src`.
### `lint-staged`
```bash
npm run lint-staged
```Этот скрипт запускает lint-staged, который проверяет только измененные файлы перед коммитом. Это помогает ускорить процесс проверки кода и обеспечить его соответствие стандартам.
### `build`
```bash
npm run build
```Этот скрипт выполняет сборку проекта. Он компилирует TypeScript код в JavaScript и заменяет пути алиасов с помощью `tsc-alias`.
### `test`
```bash
npm run test
```Этот скрипт запускает тесты с помощью Jest. Убедитесь, что все тесты проходят успешно перед коммитом кода.
### `start`
```bash
npm run start
```Этот скрипт запускает скомпилированный проект, исполняя файл `dist/main.js`. Используется для запуска приложения.
### `dev`
```bash
npm run dev
```Этот скрипт запускает проект в режиме разработки с помощью `nodemon`, который автоматически перезапускает приложение при изменениях в исходных файлах.
## Вклад
Если вы хотите внести вклад в проект, пожалуйста, создайте `pull request`.