Skip to content

Commit 4ad7421

Browse files
Merge pull request #4 from NexGenStudioDev/dev
Dev
2 parents 3da715e + 014695b commit 4ad7421

31 files changed

Lines changed: 7288 additions & 156 deletions

.github/workflows/publish.yml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: Publish Package
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
tags:
8+
- 'v*' # Optional: run on version tags like v1.0.0
9+
10+
jobs:
11+
publish:
12+
name: Publish to npm
13+
runs-on: ubuntu-latest
14+
if: github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/v')
15+
16+
steps:
17+
- name: Checkout code
18+
uses: actions/checkout@v4
19+
20+
- name: Use Node.js 18
21+
uses: actions/setup-node@v4
22+
with:
23+
node-version: 18
24+
registry-url: 'https://registry.npmjs.org/'
25+
26+
- name: Setup pnpm
27+
uses: pnpm/action-setup@v2
28+
with:
29+
version: 8
30+
31+
- name: Install dependencies
32+
run: pnpm install
33+
34+
- name: Build package
35+
run: pnpm build
36+
37+
# - name: Run tests (optional)
38+
# run: pnpm test
39+
40+
- name: Authenticate with npm
41+
run: npm config set //registry.npmjs.org/:_authToken=${NPM_TOKEN}
42+
env:
43+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
44+
45+
# Optional: Authenticate with GitHub Packages
46+
# - name: Authenticate with GitHub Packages
47+
# run: npm config set //npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}
48+
# env:
49+
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
50+
51+
- name: Publish to npm
52+
run: pnpm publish --access public

.gitignore

Lines changed: 124 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,126 @@
1+
# Dependencies
12
node_modules/
3+
npm-debug.log*
4+
yarn-debug.log*
5+
yarn-error.log*
6+
pnpm-debug.log*
7+
8+
# Build outputs
29
dist/
3-
.env
10+
build/
11+
lib/
12+
out/
13+
14+
# Environment variables
15+
.env
16+
.env.test
17+
.env.production
18+
.env.local
19+
20+
# Logs
21+
logs
22+
*.log
23+
24+
# Runtime data
25+
pids
26+
*.pid
27+
*.seed
28+
*.pid.lock
29+
30+
# Coverage directory used by tools like istanbul
31+
coverage/
32+
*.lcov
33+
34+
# nyc test coverage
35+
.nyc_output
36+
37+
# TypeScript cache
38+
*.tsbuildinfo
39+
40+
# Optional npm cache directory
41+
.npm
42+
43+
# Optional eslint cache
44+
.eslintcache
45+
46+
# Microbundle cache
47+
.rpt2_cache/
48+
.rts2_cache_cjs/
49+
.rts2_cache_es/
50+
.rts2_cache_umd/
51+
52+
# Optional REPL history
53+
.node_repl_history
54+
55+
# Output of 'npm pack'
56+
*.tgz
57+
58+
# Yarn Integrity file
59+
.yarn-integrity
60+
61+
# parcel-bundler cache
62+
.cache
63+
.parcel-cache
64+
65+
# Next.js build output
66+
.next
67+
68+
# Nuxt.js build / generate output
69+
.nuxt
70+
71+
# Gatsby files
72+
.cache/
73+
public
74+
75+
# Vuepress build output
76+
.vuepress/dist
77+
78+
# Serverless directories
79+
.serverless/
80+
81+
# FuseBox cache
82+
.fusebox/
83+
84+
# DynamoDB Local files
85+
.dynamodb/
86+
87+
# TernJS port file
88+
.tern-port
89+
90+
# VS Code
91+
.vscode/
92+
!.vscode/extensions.json
93+
94+
# WebStorm
95+
.idea/
96+
97+
# Sublime Text
98+
*.sublime-project
99+
*.sublime-workspace
100+
101+
# Vim
102+
*.swp
103+
*.swo
104+
105+
# macOS
106+
.DS_Store
107+
108+
# Windows
109+
Thumbs.db
110+
ehthumbs.db
111+
Desktop.ini
112+
113+
# Linux
114+
*~
115+
116+
# Temporary folders
117+
tmp/
118+
temp/
119+
120+
# Package manager
121+
.pnpm-store/
122+
.yarn/cache
123+
.yarn/unplugged
124+
.yarn/build-state.yml
125+
.yarn/install-state.gz
126+
.pnp.*

.npmignore

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# Source files
2+
src/
3+
*.ts
4+
!*.d.ts
5+
6+
# Development files
7+
.eslintrc.*
8+
.prettierrc*
9+
tsconfig*.json
10+
jest.config.*
11+
*.test.*
12+
*.spec.*
13+
__tests__/
14+
test/
15+
tests/
16+
17+
# Documentation (except README)
18+
docs/
19+
CONTRIBUTING.md
20+
CHANGELOG.md
21+
22+
# Git files
23+
.git/
24+
.gitignore
25+
.env
26+
Environment/
27+
28+
# CI/CD
29+
.github/
30+
.travis.yml
31+
.circleci/
32+
33+
# Editor files
34+
.vscode/
35+
.idea/
36+
*.sublime-*
37+
38+
# OS files
39+
.DS_Store
40+
Thumbs.db
41+
42+
# Package manager
43+
pnpm-lock.yaml
44+
yarn.lock
45+
.pnp.*
46+
.yarn/
47+
48+
# Logs
49+
logs/
50+
*.log
51+
52+
# Runtime data
53+
pids/
54+
*.pid
55+
*.seed
56+
*.pid.lock
57+
58+
# Coverage
59+
coverage/
60+
.nyc_output/
61+
62+
# Dependencies
63+
node_modules/
64+
65+
# Build tools
66+
.tsbuildinfo
67+
68+
# Temporary files
69+
tmp/
70+
temp/
71+
72+
# Environment files
73+
.env*
74+
!.env.example

.pnpmrc

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Avoid legacy-style hoisting unless absolutely needed
2+
shamefully-hoist=false
3+
4+
# Loosen peer dependency requirements during dev
5+
strict-peer-dependencies=false
6+
7+
# Automatically install required peer dependencies
8+
auto-install-peers=true
9+
10+
# Save versions with ^ to allow non-breaking updates
11+
save-exact=false
12+
save-prefix=^
13+
14+
# Use isolated node_modules for better reproducibility
15+
node-linker=isolated
16+
17+
# Use local workspace packages first (important for monorepos)
18+
prefer-workspace-packages=true
19+
20+
# Ensures one lockfile for all workspace packages
21+
shared-workspace-lockfile=true
22+
23+
# Only publish from main (also declared in .npmrc)
24+
publish-branch=main

CHANGELOG.md

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [Unreleased]
9+
10+
### Added
11+
- Initial project setup
12+
- Core FastKit framework
13+
- Modular architecture support
14+
- Built-in versioning system
15+
16+
### Changed
17+
18+
### Deprecated
19+
20+
### Removed
21+
22+
### Fixed
23+
24+
### Security
25+
26+
## [1.0.0] - 2025-06-27
27+
28+
### Added
29+
- Initial release of FastKit
30+
- Modular, class-based toolkit for API development
31+
- TypeScript and Express.js integration
32+
- Authentication feature module (v1)
33+
- E-commerce feature module foundation
34+
- Built-in versioning support
35+
- Comprehensive documentation
36+
- MIT License
37+
- Contributing guidelines
38+
- ESLint and Prettier configuration
39+
- TypeScript configuration
40+
- Package publishing setup
41+
42+
### Features
43+
- **Core Framework**: Base FastKit class for managing features
44+
- **Auth Module**: Complete authentication system with controllers, services, and validators
45+
- **Modular Design**: Feature-based architecture for scalable API development
46+
- **Type Safety**: Full TypeScript support with strict type checking
47+
- **Development Tools**: Linting, formatting, and development server setup
48+
49+
### Developer Experience
50+
- Hot reload development server with ts-node-dev
51+
- Automated code formatting with Prettier
52+
- Code quality enforcement with ESLint
53+
- Git hooks with Husky and lint-staged
54+
- Comprehensive build and publish pipeline
55+
56+
### Documentation
57+
- Detailed README with usage examples
58+
- Contributing guidelines
59+
- MIT License
60+
- Changelog maintenance
61+
- Code of conduct (implied in contributing guide)
62+
63+
---
64+
65+
## Release Notes
66+
67+
### Version 1.0.0
68+
69+
This is the initial release of FastKit, a modular, class-based toolkit designed to accelerate API development using TypeScript and Express.js.
70+
71+
**Key Highlights:**
72+
73+
🚀 **Modular Architecture**: Build APIs with feature-specific modules that encapsulate related functionality.
74+
75+
🏗️ **Class-based Design**: Clean, object-oriented approach to API development with reusable components.
76+
77+
📦 **Built-in Versioning**: Support for API versioning out of the box, allowing multiple versions to coexist.
78+
79+
🔒 **Type Safety**: Full TypeScript support ensures type safety and better developer experience.
80+
81+
**Express Integration**: Built on top of the reliable Express.js framework with modern patterns.
82+
83+
🛠️ **Developer Tools**: Complete development setup with linting, formatting, and hot reload.
84+
85+
**Getting Started:**
86+
87+
```bash
88+
npm install @abhishek-nexgen-dev/fastkit
89+
```
90+
91+
**What's Included:**
92+
93+
- Core FastKit framework
94+
- Authentication feature module
95+
- Development and build tools
96+
- Comprehensive documentation
97+
- Examples and best practices
98+
99+
**Next Steps:**
100+
101+
Check out our [documentation](README.md) to get started building your first FastKit API!
102+
103+
---
104+
105+
*For more details about any release, see the [full changelog](https://github.com/NexGenStudioDev/FastKit/blob/main/CHANGELOG.md) or [release notes](https://github.com/NexGenStudioDev/FastKit/releases).*

0 commit comments

Comments
 (0)