fix(npm): Corrected project description and added keywords in package.json and npmextra.json.

This commit is contained in:
Philipp Kunz 2024-12-26 00:30:12 +01:00
parent fbeb94fd63
commit 4b363e304a
5 changed files with 200 additions and 36 deletions

View File

@ -1,5 +1,12 @@
# Changelog
## 2024-12-26 - 1.0.31 - fix(npm)
Corrected project description and added keywords in package.json and npmextra.json.
- Updated package.json description to align with project architecture.
- Added keywords array in package.json to enhance discoverability.
- Synchronized npmextra.json description and keywords with package.json.
## 2024-12-26 - 1.0.30 - fix(test)
Added basic test for NullResolve instance creation, start, and stop.

View File

@ -15,9 +15,26 @@
"githost": "gitlab.com",
"gitscope": "losslessone/services/servezone",
"gitrepo": "nullresolve",
"description": "servezone service. the null service takes care of handling requests and giving feedback for those that would otherwise not be served.",
"description": "The nullresolve project is a private service designed to handle requests that would otherwise remain unserved, providing appropriate feedback mechanisms within the servzone architecture.",
"npmPackagename": "@losslessone_private/nullresolve",
"license": "MIT"
"license": "MIT",
"keywords": [
"nullresolve",
"service",
"request-handling",
"error-management",
"network-ecosystem",
"typescript",
"server",
"feedback",
"private-package",
"npm",
"logging",
"monitoring",
"graceful-shutdown",
"custom-routes",
"error-handling"
]
}
}
}

View File

@ -1,7 +1,7 @@
{
"name": "@losslessone_private/nullresolve",
"version": "1.0.30",
"description": "servezone service. the null service takes care of handling requests and giving feedback for those that would otherwise not be served.",
"description": "The nullresolve project is a private service designed to handle requests that would otherwise remain unserved, providing appropriate feedback mechanisms within the servzone architecture.",
"type": "module",
"author": "Lossless GmbH",
"license": "UNLICENSED",
@ -50,5 +50,22 @@
"bugs": {
"url": "https://gitlab.com/losslessone/services/servezone/nullresolve/issues"
},
"homepage": "https://gitlab.com/losslessone/services/servezone/nullresolve#readme"
}
"homepage": "https://gitlab.com/losslessone/services/servezone/nullresolve#readme",
"keywords": [
"nullresolve",
"service",
"request-handling",
"error-management",
"network-ecosystem",
"typescript",
"server",
"feedback",
"private-package",
"npm",
"logging",
"monitoring",
"graceful-shutdown",
"custom-routes",
"error-handling"
]
}

181
readme.md
View File

@ -1,43 +1,166 @@
# @losslessone/services/servezone/nullresolve
# @losslessone_private/nullresolve
servezone service. the null service takes care of handling requests and giving feedback for those that would otherwise not be served.
The nullresolve is a robust service designed to manage and handle requests effectively within the servzone architecture. It ensures requests that would normally remain unserved receive appropriate handling and feedback.
## Availabililty and Links
## Install
- [npmjs.org (npm package)](https://www.npmjs.com/package/@losslessone_private/nullresolve)
- [gitlab.com (source)](https://gitlab.com/losslessone/services/servezone/nullresolve)
- [github.com (source mirror)](https://github.com/losslessone/services/servezone/nullresolve)
- [docs (typedoc)](https://losslessone/services/servezone.gitlab.io/nullresolve/)
To install the `@losslessone_private/nullresolve` package, it is essential to first set up a proper environment for handling private npm packages due to its private nature. This can be achieved through npm or yarn, which are both suitable JavaScript package managers.
## Status for master
### Step-by-Step Installation:
| Status Category | Status Badge |
| ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| GitLab Pipelines | [![pipeline status](https://gitlab.com/losslessone/services/servezone/nullresolve/badges/master/pipeline.svg)](https://lossless.cloud) |
| GitLab Pipline Test Coverage | [![coverage report](https://gitlab.com/losslessone/services/servezone/nullresolve/badges/master/coverage.svg)](https://lossless.cloud) |
| npm | [![npm downloads per month](https://badgen.net/npm/dy/@losslessone_private/nullresolve)](https://lossless.cloud) |
| Snyk | [![Known Vulnerabilities](https://badgen.net/snyk/losslessone/services/servezone/nullresolve)](https://lossless.cloud) |
| TypeScript Support | [![TypeScript](https://badgen.net/badge/TypeScript/>=%203.x/blue?icon=typescript)](https://lossless.cloud) |
| node Support | [![node](https://img.shields.io/badge/node->=%2010.x.x-blue.svg)](https://nodejs.org/dist/latest-v10.x/docs/api/) |
| Code Style | [![Code Style](https://badgen.net/badge/style/prettier/purple)](https://lossless.cloud) |
| PackagePhobia (total standalone install weight) | [![PackagePhobia](https://badgen.net/packagephobia/install/@losslessone_private/nullresolve)](https://lossless.cloud) |
| PackagePhobia (package size on registry) | [![PackagePhobia](https://badgen.net/packagephobia/publish/@losslessone_private/nullresolve)](https://lossless.cloud) |
| BundlePhobia (total size when bundled) | [![BundlePhobia](https://badgen.net/bundlephobia/minzip/@losslessone_private/nullresolve)](https://lossless.cloud) |
| Platform support | [![Supports Windows 10](https://badgen.net/badge/supports%20Windows%2010/yes/green?icon=windows)](https://lossless.cloud) [![Supports Mac OS X](https://badgen.net/badge/supports%20Mac%20OS%20X/yes/green?icon=apple)](https://lossless.cloud) |
1. **Ensure you are logged into npm** with sufficient permissions to access private packages:
```bash
npm login
```
Authentication is necessary for accessing private modules like `@losslessone_private/nullresolve`.
2. **Install Using npm:**
```bash
npm install @losslessone_private/nullresolve
```
If you are using a specific registry for your company or project, make sure to specify it in your npm configuration.
3. **Install Using Yarn:**
```bash
yarn add @losslessone_private/nullresolve
```
After these steps, the module should be ready for use in your JavaScript or TypeScript project.
## Usage
## Contribution
The purpose of `nullresolve` is pivotal within a network ecosystem, particularly one that interfaces directly with user requests and external resources. Below, a comprehensive guide exists to demonstrate effective usage of this module within applications.
We are always happy for code contributions. If you are not the code contributing type that is ok. Still, maintaining Open Source repositories takes considerable time and thought. If you like the quality of what we do and our modules are useful to you we would appreciate a little monthly contribution: You can [contribute one time](https://lossless.link/contribute-onetime) or [contribute monthly](https://lossless.link/contribute). :)
### Quick Start Example
## Contribution
Initialization and launching of a nullresolve service can be done succinctly:
We are always happy for code contributions. If you are not the code contributing type that is ok. Still, maintaining Open Source repositories takes considerable time and thought. If you like the quality of what we do and our modules are useful to you we would appreciate a little monthly contribution: You can [contribute one time](https://lossless.link/contribute-onetime) or [contribute monthly](https://lossless.link/contribute). :)
```typescript
// Import the NullResolve class from the package
import { NullResolve } from '@losslessone_private/nullresolve';
For further information read the linked docs at the top of this readme.
// Create an instance of NullResolve
const myNullResolveService = new NullResolve();
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh)
> | By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy)
// Start the service
myNullResolveService.start().then(() => {
console.log('NullResolve service is running!');
}).catch((error) => {
console.error('Error starting NullResolve service:', error);
});
[![repo-footer](https://lossless.gitlab.io/publicrelations/repofooter.svg)](https://maintainedby.lossless.com)
// Stop the service gracefully
process.on('SIGINT', async () => {
await myNullResolveService.stop();
console.log('NullResolve service stopped.');
process.exit(0);
});
```
### Detailed Guide: Handling Requests and Custom Routes
`nullresolve` can swiftly handle complex request scenarios utilizing its robust framework. Here's a detailed example of setting up custom handler routes that can respond with various HTTP statuses or custom messages based on the request:
```typescript
import { NullResolve } from '@losslessone_private/nullresolve';
// Initialize the service
const myService = new NullResolve();
// Start the service with custom routes
myService.serviceServer.addCustomRoutes(async (server) => {
server.addRoute(
'/error/:code',
new plugins.typedserver.servertools.Handler('GET', async (req, res) => {
let message;
switch (req.params.code) {
case '404':
message = 'This resource was not found.';
break;
case '500':
message = 'Internal Server Error. Please try later.';
break;
default:
message = 'An unexpected error occurred.';
}
res.status(200).send(`<html><body><h1>${message}</h1></body></html>`);
})
);
});
// Activating the service
myService.start().then(() => {
console.log('Custom route service started.');
}).catch((err) => {
console.error('Error while starting the service:', err);
});
```
### Integrating Logging and Monitoring
Given the mission-critical nature of services like `nullresolve`, reliable logging is indispensable to monitor activities and diagnose issues swiftly. This is integrated by default using the `smartlog` module for robust logging capabilities:
```typescript
import { logger } from './nullresolve.logging.js';
// Utilize the logger for tracking and problem-solving
logger.info('Service Log: nullresolve service initiated');
logger.warn('Warning Log: Potential issue detected');
logger.error('Error Log: An error occurred in service operation');
```
### Advanced Configuration
For systems requiring specialized setups, nullresolve offers configurability through both code and external configuration objects:
```typescript
// Customize through code
const config = {
domain: 'customdomain.com',
port: 8080,
routes: [
{
method: 'GET',
path: '/status/check',
handler: async (req, res) => {
res.status(200).send('Service is operational.');
}
}
]
};
myService.configure(config);
// Running the service with a new configuration
myService.start();
```
### Graceful Shutdown and Resource Management
Services such as the one provided by `nullresolve` must incorporate mechanisms to stop gracefully, allowing them to release resources and finish current tasks before complete termination:
```typescript
process.on('SIGTERM', async () => {
logger.info('Service is stopping gracefully.');
await myService.stop();
logger.info('Service has been successfully stopped.');
process.exit(0);
});
```
### Custom Error Handling Strategies
It is often beneficial to ensure that the service reacts gracefully during unexpected shutdowns or errors. Here's an example of implementing a strategy for error handling:
```typescript
const handleCriticalError = (err: Error) => {
logger.error(`Critical Error: ${err.message}`);
process.exit(1);
};
process.on('unhandledRejection', handleCriticalError);
process.on('uncaughtException', handleCriticalError);
```
By deploying `nullresolve` strategically within your infrastructure, it can transform how unhandled requests and errors are addressed, providing comprehensive protection and valuable insights into system status and health. This guide should serve to ensure effective deployment, utilization, and management of this sophisticated null service.
undefined

View File

@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@losslessone_private/nullresolve',
version: '1.0.30',
description: 'servezone service. the null service takes care of handling requests and giving feedback for those that would otherwise not be served.'
version: '1.0.31',
description: 'The nullresolve project is a private service designed to handle requests that would otherwise remain unserved, providing appropriate feedback mechanisms within the servzone architecture.'
}