summaryrefslogtreecommitdiff
path: root/node_modules/@11ty/eleventy/src/Util/DateGitFirstAdded.js
diff options
context:
space:
mode:
authorShipwreckt <me@shipwreckt.co.uk>2025-10-31 20:02:14 +0000
committerShipwreckt <me@shipwreckt.co.uk>2025-10-31 20:02:14 +0000
commit7a52ddeba2a68388b544f529d2d92104420f77b0 (patch)
tree15ddd47457a2cb4a96060747437d36474e4f6b4e /node_modules/@11ty/eleventy/src/Util/DateGitFirstAdded.js
parent53d6ae2b5568437afa5e4995580a3fb679b7b91b (diff)
Changed from static to 11ty!
Diffstat (limited to 'node_modules/@11ty/eleventy/src/Util/DateGitFirstAdded.js')
-rw-r--r--node_modules/@11ty/eleventy/src/Util/DateGitFirstAdded.js23
1 files changed, 23 insertions, 0 deletions
diff --git a/node_modules/@11ty/eleventy/src/Util/DateGitFirstAdded.js b/node_modules/@11ty/eleventy/src/Util/DateGitFirstAdded.js
new file mode 100644
index 0000000..0cc5959
--- /dev/null
+++ b/node_modules/@11ty/eleventy/src/Util/DateGitFirstAdded.js
@@ -0,0 +1,23 @@
+import { spawnAsync } from "./SpawnAsync.js";
+
+async function getGitFirstAddedTimeStamp(filePath) {
+ try {
+ let timestamp = await spawnAsync(
+ "git",
+ // Formats https://www.git-scm.com/docs/git-log#_pretty_formats
+ // %at author date, UNIX timestamp
+ ["log", "--diff-filter=A", "--follow", "-1", "--format=%at", filePath],
+ );
+ return parseInt(timestamp, 10) * 1000;
+ } catch (e) {
+ // do nothing
+ }
+}
+
+// return a Date
+export default async function (inputPath) {
+ let timestamp = await getGitFirstAddedTimeStamp(inputPath);
+ if (timestamp) {
+ return new Date(timestamp);
+ }
+}