{"id":15714518,"url":"https://github.com/notacat1/large-number","last_synced_at":"2026-04-30T19:31:50.164Z","repository":{"id":256574460,"uuid":"855691040","full_name":"NotACat1/Large-Number","owner":"NotACat1","description":"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.","archived":false,"fork":false,"pushed_at":"2024-09-11T12:35:53.000Z","size":150,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-05T22:38:30.785Z","etag":null,"topics":["bignumber","jest","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NotACat1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-11T09:53:35.000Z","updated_at":"2024-09-11T12:37:08.000Z","dependencies_parsed_at":"2024-09-11T21:15:27.617Z","dependency_job_id":"fa69c1eb-5f16-4fdf-91cb-273ae2152d34","html_url":"https://github.com/NotACat1/Large-Number","commit_stats":null,"previous_names":["notacat1/large-number"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NotACat1%2FLarge-Number","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NotACat1%2FLarge-Number/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NotACat1%2FLarge-Number/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NotACat1%2FLarge-Number/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NotACat1","download_url":"https://codeload.github.com/NotACat1/Large-Number/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246372503,"owners_count":20766626,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bignumber","jest","typescript"],"created_at":"2024-10-03T21:37:47.236Z","updated_at":"2026-04-30T19:31:50.130Z","avatar_url":"https://github.com/NotACat1.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Large Number\n\n![TypeScript](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge\u0026logo=typescript\u0026logoColor=white)\n![Jest](https://img.shields.io/badge/-jest-%23C21325?style=for-the-badge\u0026logo=jest\u0026logoColor=white)\n\n## Описание\n\nПроект представляет собой класс `LargeNumber` для работы с длинными целыми числами в языке TypeScript. Класс реализует основные арифметические операции (сложение, вычитание, умножение и деление) без использования встроенного типа `BigInt`. Поддерживает работу с отрицательными числами.\n\n## Установка\n\n### Установка Node.js и npm\n\nДля работы с проектом требуется Node.js и npm. Следуйте этим шагам для установки:\n\n1. **Загрузите и установите Node.js:**\n\n   Перейдите на [официальный сайт Node.js](https://nodejs.org/en/download/package-manager) и загрузите установочный пакет для вашей операционной системы. Выберите рекомендованную версию LTS (долгосрочная поддержка) для стабильности.\n\n   - **Windows/macOS**: Загрузите установочный файл и следуйте инструкциям мастера установки.\n   - **Linux**: Вы можете использовать менеджер пакетов вашей системы для установки Node.js. Например:\n\n     ```bash\n     # Для Debian/Ubuntu\n     sudo apt update\n     sudo apt install nodejs npm\n\n     # Для CentOS\n     sudo yum install nodejs npm\n     ```\n\n2. **Проверьте установку:**\n\n   После установки Node.js и npm проверьте их версии, чтобы убедиться, что всё установлено правильно:\n\n   ```bash\n   node -v\n   npm -v\n   ```\n\n   Команды должны вернуть версии Node.js и npm.\n\n3. **Клонируйте репозиторий и установите зависимости:**\n\n   После установки Node.js и npm, выполните следующие шаги:\n\n   ```bash\n   git clone https://github.com/NotACat1/Large-Number.git\n   cd Large-Number\n   npm install\n   ```\n\n   Команда `npm install` установит все зависимости проекта, указанные в `package.json`.\n\n## Использование\n\n### Создание объекта\n\n```typescript\nimport { LargeNumber } from '@utils/LargeNumber';\n\n// Создание объекта с длинным числом\nconst num1 = new LargeNumber('12345678901234567890');\nconst num2 = new LargeNumber('-98765432109876543210');\n```\n\n### Арифметические операции\n\n#### Сложение\n\n```typescript\nconst resultAdd = LargeNumber.add(num1, num2);\nconsole.log(resultAdd.toString()); // Выводит результат сложения\n```\n\n#### Вычитание\n\n```typescript\nconst resultSub = LargeNumber.subtract(num1, num2);\nconsole.log(resultSub.toString()); // Выводит результат вычитания\n```\n\n#### Умножение\n\n```typescript\nconst resultMul = LargeNumber.multiply(num1, num2);\nconsole.log(resultMul.toString()); // Выводит результат умножения\n```\n\n#### Деление\n\n```typescript\nconst resultDiv = LargeNumber.divide(num1, num2);\nconsole.log(resultDiv.toString()); // Выводит результат деления\n```\n\n## Скрипты\n\nПроект включает несколько скриптов для удобства разработки и управления проектом. Все скрипты указаны в секции `scripts` файла `package.json`. Вот их описание:\n\n### `prepare`\n\n```bash\nnpm run prepare\n```\n\nЭтот скрипт устанавливает Husky хуки. Husky используется для автоматической проверки кода перед коммитами. Он выполняется автоматически при установке зависимостей.\n\n### `lint`\n\n```bash\nnpm run lint\n```\n\nЭтот скрипт запускает ESLint для проверки файлов на наличие ошибок и предупреждений. Он проверяет все файлы с расширениями `.js` и `.ts` в папке `src`.\n\n### `lint:fix`\n\n```bash\nnpm run lint:fix\n```\n\nЭтот скрипт запускает ESLint для исправления автоматически исправимых проблем в коде. Как и `lint`, он проверяет файлы с расширениями `.js` и `.ts` в папке `src`.\n\n### `prettier:check`\n\n```bash\nnpm run prettier:check\n```\n\nЭтот скрипт проверяет файлы на соответствие правилам форматирования, установленным Prettier. Он проверяет все файлы с расширениями `.js` и `.ts` в папке `src`.\n\n### `prettier:fix`\n\n```bash\nnpm run prettier:fix\n```\n\nЭтот скрипт автоматически форматирует файлы в соответствии с правилами Prettier. Он применяет форматирование к файлам с расширениями `.js` и `.ts` в папке `src`.\n\n### `lint-staged`\n\n```bash\nnpm run lint-staged\n```\n\nЭтот скрипт запускает lint-staged, который проверяет только измененные файлы перед коммитом. Это помогает ускорить процесс проверки кода и обеспечить его соответствие стандартам.\n\n### `build`\n\n```bash\nnpm run build\n```\n\nЭтот скрипт выполняет сборку проекта. Он компилирует TypeScript код в JavaScript и заменяет пути алиасов с помощью `tsc-alias`.\n\n### `test`\n\n```bash\nnpm run test\n```\n\nЭтот скрипт запускает тесты с помощью Jest. Убедитесь, что все тесты проходят успешно перед коммитом кода.\n\n### `start`\n\n```bash\nnpm run start\n```\n\nЭтот скрипт запускает скомпилированный проект, исполняя файл `dist/main.js`. Используется для запуска приложения.\n\n### `dev`\n\n```bash\nnpm run dev\n```\n\nЭтот скрипт запускает проект в режиме разработки с помощью `nodemon`, который автоматически перезапускает приложение при изменениях в исходных файлах.\n\n## Вклад\n\nЕсли вы хотите внести вклад в проект, пожалуйста, создайте `pull request`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnotacat1%2Flarge-number","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnotacat1%2Flarge-number","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnotacat1%2Flarge-number/lists"}