
A comprehensive TypeScript-first monorepo of tools, utilities, and React components for NetSuite development. Built with performance, developer experience, and type safety in mind.
NeatSuite provides a complete toolkit for NetSuite integration and development:
- @neatsuite/http - TypeScript-first NetSuite API client with OAuth 1.0a authentication, automatic retries, and performance monitoring
- @neatsuite/http-umd - UMD/browser bundle of the HTTP client for client-side applications
- @neatsuite/core - React components and NetSuite-specific UI elements
- @neatsuite/utils - Shared React utilities and hooks
- @neatsuite/tsconfig - Shared TypeScript configurations for consistent builds
- @neatsuite/eslint-config - ESLint presets optimized for NetSuite development
- docs - Next.js-powered documentation site with examples and API references
Choose the package that fits your needs:
# For Node.js/server-side NetSuite API integration
npm install @neatsuite/http
# For browser/client-side usage
npm install @neatsuite/http-umd
import { NetSuiteClient } from '@neatsuite/http';
// Initialize the NetSuite client
const client = new NetSuiteClient({
oauth: {
consumerKey: process.env.NETSUITE_CONSUMER_KEY!,
consumerSecret: process.env.NETSUITE_CONSUMER_SECRET!,
tokenKey: process.env.NETSUITE_TOKEN_KEY!,
tokenSecret: process.env.NETSUITE_TOKEN_SECRET!,
realm: process.env.NETSUITE_REALM!
},
accountId: process.env.NETSUITE_ACCOUNT_ID!
});
// Make a RESTlet call
const response = await client.restlet({
script: '123',
deploy: '1',
params: { action: 'getCustomer', id: '456' }
});
- Node.js: Version 20 or higher
- Package Manager: npm (v10.9.2 recommended)
- Git: For version control and contributions
# Clone the repository
git clone https://github.com/neatsuite/netsuite-http.git
cd neatsuite
# Install dependencies
npm install
# Build all packages
npm run build
npm run build
- Build all packages and documentationnpm run dev
- Start development mode with hot reloadingnpm run lint
- Lint all packages using ESLintnpm run test
- Run tests across all packagesnpm run clean
- Clean up allnode_modules
anddist
foldersnpm run format
- Format code using Prettier
# Build specific packages
npm run build:netsuite # Build @neatsuite/http
npm run build:netsuite-umd # Build @neatsuite/http-umd
npm run build:all-packages # Build both HTTP packages
# Publishing (for maintainers)
npm run publish:all-packages # Publish all packages
npm run changeset # Generate a changeset
npm run version-packages # Version packages using changesets
This project uses:
- Turborepo - High-performance build system for monorepos
- TypeScript - Type safety across all packages
- Changesets - Version management and publishing
- tsup - Fast TypeScript bundler
- ESLint + Prettier - Code quality and formatting
neatsuite/
βββ packages/
β βββ netsuite/ # @neatsuite/http - Main API client
β βββ netsuite-umd/ # @neatsuite/http-umd - Browser bundle
β βββ neatsuite-core/ # @neatsuite/core - React components
β βββ neatsuite-utils/ # @neatsuite/utils - Shared utilities
β βββ neatsuite-tsconfig/ # @neatsuite/tsconfig - TS configs
β βββ eslint-config/ # @neatsuite/eslint-config - ESLint presets
βββ apps/
β βββ docs/ # Documentation site
βββ scripts/ # Build and publish automation
We welcome contributions from the community! Please read our contribution guidelines below.
- π Report Bugs: Open an issue with detailed reproduction steps
- π‘ Feature Requests: Suggest new features or improvements
- π Documentation: Improve docs, examples, or code comments
- π§ Code Contributions: Fix bugs or implement new features
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/your-username/neatsuite.git cd neatsuite
- Create a feature branch:
git checkout -b feature/your-feature-name
- Install dependencies:
npm install
- Make your changes and ensure they work:
npm run build npm run test npm run lint
- Code Style: Follow existing code patterns and run
npm run format
before committing - Testing: Add tests for new features and ensure existing tests pass
- Documentation: Update relevant documentation for any changes
- Commit Messages: Use clear, descriptive commit messages
- Pull Requests: Include a detailed description of changes and link any related issues
- Make Changes: Work on your feature or bugfix
- Test Locally:
npm run build # Ensure builds work npm run test # Run tests npm run lint # Check code quality
- Create Changeset (for package changes):
npm run changeset
- Commit and Push:
git add . git commit -m "feat: add new feature" git push origin feature/your-feature-name
- Open Pull Request: Create a PR with detailed description
When reporting issues, please include:
- Clear Description: What happened vs. what you expected
- Reproduction Steps: Minimal code example to reproduce the issue
- Environment: Node.js version, package versions, OS
- Error Messages: Full error logs if applicable
- Enhanced TypeScript support across all packages
- Performance optimizations for high-volume API usage
- Additional React components for common NetSuite patterns
- Improved error handling and debugging tools
- SuiteQL support for NetSuite SuiteTalk
- Visual form builders for NetSuite records
- Real-time data synchronization utilities
- Enhanced testing and mocking tools
- Bug Reports: GitHub Issues
- Feature Requests: GitHub Discussions
- Documentation: API Documentation
This project is licensed under the MIT License.
- NetSuite for providing the APIs that make this project possible
- Axios for its beautiful HTTP library
- The TypeScript and React communities for excellent tooling
- All contributors who help improve NeatSuite
Ready to get started? Check out the documentation or explore the examples to see NeatSuite in action!