@christopher-drifte/clock 1.4.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +93 -6
- package/data/date.json +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,9 +1,33 @@
|
|
|
1
|
-
# Clock
|
|
1
|
+
# 🕐 Clock
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> **The world's most over-engineered way to display today's date**
|
|
4
|
+
> _Now with 100% more CO2 emissions per timestamp!_
|
|
4
5
|
|
|
5
6
|
[](https://www.npmjs.com/package/@christopher-drifte/clock)
|
|
6
7
|
|
|
8
|
+
## What is this madness?
|
|
9
|
+
|
|
10
|
+
A fully automated, TypeScript-powered, CI/CD-integrated npm package that tells you what day it is. Because `new Date()` was apparently too simple.
|
|
11
|
+
|
|
12
|
+
**Live demo:** [clock-ai.vercel.app](https://clock-ai.vercel.app/)
|
|
13
|
+
|
|
14
|
+
## The Rube Goldberg Machine 🎪
|
|
15
|
+
|
|
16
|
+
Here's how this beautiful disaster works:
|
|
17
|
+
|
|
18
|
+
1. **⏰ n8n Schedule Trigger** fires every minute
|
|
19
|
+
2. **📅 Date & Time Node** grabs the current timestamp
|
|
20
|
+
3. **🤖 GitHub API** commits the date to `data/date.json` with a `feat:` message
|
|
21
|
+
4. **🎯 Release Please** detects the commit and creates a version bump PR
|
|
22
|
+
5. **🪝 GitHub Webhook** catches the PR creation
|
|
23
|
+
6. **🤝 n8n Auto-merge** immediately merges the PR (because who needs code review?)
|
|
24
|
+
7. **🚀 GitHub Actions** builds, tests, and publishes to npm with provenance
|
|
25
|
+
8. **📦 Dependabot** in [clock-web](https://github.com/christopher-drifte/clock-web) detects the new version
|
|
26
|
+
9. **🔄 Auto-merge** merges the dependency update
|
|
27
|
+
10. **☁️ Vercel** auto-deploys to production
|
|
28
|
+
|
|
29
|
+
**Result:** The website updates with today's date... which you could have just checked on your phone.
|
|
30
|
+
|
|
7
31
|
## Installation
|
|
8
32
|
|
|
9
33
|
```bash
|
|
@@ -13,9 +37,8 @@ npm install @christopher-drifte/clock
|
|
|
13
37
|
## Usage
|
|
14
38
|
|
|
15
39
|
```javascript
|
|
16
|
-
import { date } from
|
|
40
|
+
import { date } from '@christopher-drifte/clock';
|
|
17
41
|
|
|
18
|
-
// Get today's date
|
|
19
42
|
console.log(date);
|
|
20
43
|
// Output: "Today is 12 March 2026"
|
|
21
44
|
```
|
|
@@ -24,7 +47,52 @@ console.log(date);
|
|
|
24
47
|
|
|
25
48
|
### `date`
|
|
26
49
|
|
|
27
|
-
A string containing today's date formatted as "Today is [day] [month] [year]"
|
|
50
|
+
A string containing today's date formatted as "Today is [day] [month] [year]".
|
|
51
|
+
|
|
52
|
+
**TypeScript types included!** ✨
|
|
53
|
+
|
|
54
|
+
## Features
|
|
55
|
+
|
|
56
|
+
- ✅ Browser-compatible (uses JSON imports, no `fs` modules)
|
|
57
|
+
- ✅ TypeScript with full type definitions
|
|
58
|
+
- ✅ Automated version management with Release Please
|
|
59
|
+
- ✅ Published with npm provenance for supply chain security
|
|
60
|
+
- ✅ Auto-deployed to production via Dependabot + Vercel
|
|
61
|
+
- ✅ Maximum cloud computing resources for minimal functionality
|
|
62
|
+
- ✅ Changelog auto-generated for every date update
|
|
63
|
+
- ❌ Zero practical value
|
|
64
|
+
|
|
65
|
+
## Architecture
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
n8n (local)
|
|
69
|
+
↓
|
|
70
|
+
GitHub API (commit)
|
|
71
|
+
↓
|
|
72
|
+
Release Please (PR)
|
|
73
|
+
↓
|
|
74
|
+
n8n Webhook (auto-merge)
|
|
75
|
+
↓
|
|
76
|
+
GitHub Actions (build + publish)
|
|
77
|
+
↓
|
|
78
|
+
npm Registry
|
|
79
|
+
↓
|
|
80
|
+
Dependabot (clock-web repo)
|
|
81
|
+
↓
|
|
82
|
+
Auto-merge workflow
|
|
83
|
+
↓
|
|
84
|
+
Vercel (deployment)
|
|
85
|
+
↓
|
|
86
|
+
🎉 Production!
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Why?
|
|
90
|
+
|
|
91
|
+
¯\\\_(ツ)\_/¯
|
|
92
|
+
|
|
93
|
+
To demonstrate modern DevOps practices? To practice CI/CD? To see if we could?
|
|
94
|
+
|
|
95
|
+
Honestly, we're not sure anymore. But it works, it's tested, and it deploys automatically. That's got to count for something.
|
|
28
96
|
|
|
29
97
|
## Development
|
|
30
98
|
|
|
@@ -34,8 +102,27 @@ npm install
|
|
|
34
102
|
|
|
35
103
|
# Run tests
|
|
36
104
|
npm test
|
|
105
|
+
|
|
106
|
+
# Build
|
|
107
|
+
npm run build
|
|
37
108
|
```
|
|
38
109
|
|
|
110
|
+
## Sister Projects
|
|
111
|
+
|
|
112
|
+
- **[clock-web](https://github.com/christopher-drifte/clock-web)** - React app that displays the date from this package
|
|
113
|
+
- **[clock-ai.vercel.app](https://clock-ai.vercel.app/)** - Live deployment
|
|
114
|
+
|
|
115
|
+
## Carbon Footprint 🌍
|
|
116
|
+
|
|
117
|
+
Every date update triggers:
|
|
118
|
+
- 1 n8n workflow execution
|
|
119
|
+
- 2 GitHub Actions workflows
|
|
120
|
+
- 1 npm package publish
|
|
121
|
+
- 1 Dependabot PR
|
|
122
|
+
- 1 Vercel deployment
|
|
123
|
+
|
|
124
|
+
**Estimated CO2 per date change:** More than using a calendar 📅
|
|
125
|
+
|
|
39
126
|
## License
|
|
40
127
|
|
|
41
|
-
ISC
|
|
128
|
+
ISC - Because even absurd projects need licenses
|
package/data/date.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "date": "2026-03-
|
|
1
|
+
{ "date": "2026-03-14T00:00:23.530+01:00" }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@christopher-drifte/clock",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"keywords": [],
|
|
17
17
|
"author": "",
|
|
18
18
|
"license": "ISC",
|
|
19
|
-
"description": "
|
|
19
|
+
"description": "The world's most over-engineered way to display today's date. Fully automated with n8n, Release Please, GitHub Actions, and Dependabot. Because new Date() was too simple.",
|
|
20
20
|
"repository": {
|
|
21
21
|
"type": "git",
|
|
22
22
|
"url": "https://github.com/christopher-drifte/clock.git"
|