# wellwish

> **Archetype:** Node.js package

**wellwish** generates a nuanced well-wishing phrase based on English cultural norms.

In **US English**, well-wishing phrases like _"Have a good day"_, _"Have a good evening"_, or _"Have a good night"_ are common. However, phrases like _"Have a good afternoon"_ or _"Have a good morning"_ can sometimes feel too specific, as if you're only wishing someone well for a limited part of the day rather than the whole day.

## Details

✅ **Fast & Simple** – Optimized, single-function package.  
✅ **Handles Edge Cases** – Supports special cases like transitional periods.  
✅ **Simple Depth** – Highly customizable but also works with no config.

## Install

```sh
npm install wellwish
```

## Usage

```js
import wellwish from 'wellwish';

console.log(wellwish()); // Outputs the appropriate greeting based on the current time

// Custom phrases and time settings
console.log(
    wellwish({
        day: 'Have a good day!',
        evening: 'Have a nice evening!',
        night: 'Have a nice night!',
        dayStart: 6,
        eveningStart: 18,
        nightStart: 22,
        hour: 19, // Manually setting the hour
    }),
);
// ➝ "Have a nice evening!"
```

## API

### `wellwish(options?: WellwishOptions): string`

#### Parameters

| Parameter      | Type     | Default                 | Description                                                 |
| -------------- | -------- | ----------------------- | ----------------------------------------------------------- |
| `day`          | `string` | `"day"`                 | The phrase for the "day" phase.                             |
| `evening`      | `string` | `"evening"`             | The phrase for the "evening" phase.                         |
| `night`        | `string` | `"night"`               | The phrase for the "night" phase.                           |
| `dayStart`     | `number` | `4`                     | The hour (0-24) at which "day" starts.                      |
| `eveningStart` | `number` | `17`                    | The hour (0-24) at which "evening" starts.                  |
| `nightStart`   | `number` | `21`                    | The hour (0-24) at which "night" starts.                    |
| `hour`         | `number` | `new Date().getHours()` | The hour to evaluate (defaults to the current system hour). |

#### Returns

- **`string`**: The appropriate well-wishing phrase based on the given time and phase configuration.

### Example Time Phase Behavior

| Hour  | Output (Default Phrases) |
| ----- | ------------------------ |
| 03:00 | `"night"`                |
| 06:00 | `"day"`                  |
| 18:00 | `"evening"`              |
| 22:00 | `"night"`                |

## Related Links

This package is part of my **highsociety** meta suite:

[https://github.com/alexstevovich/highsociety-node](https://github.com/alexstevovich/highsociety-node) - Prose, linguistic, time, and cultural string formatting.

[https://github.com/alexstevovich/dayphase-node](https://github.com/alexstevovich/dayphase-node) - A low-level day phase tool, internally used by **wellwish**.

### Development Homepage

[https://github.com/alexstevovich/wellwish-node](https://github.com/alexstevovich/wellwish-node)

## License

Licensed under the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0).
