feat: expose the tzdb version of the bundled zonefile

This commit is contained in:
dualfroz committed 2026-10-03 15:30:58 +02:00
1 parent d47824c8f3
commit 1668c0dd6b
7 files changed
+22 -3

No files matched your search

+1 -1
View File
@@ -187,7 +187,7 @@ export const main = (args = process.argv.slice(2)) => {
tzdata: version,
unsupported: unsupported.map((o) => o.name)
})
const text = `// Generated by scripts/tz/update.js: ${source}\nexport default ${JSON.stringify(result, null, 2)}\n`
const text = `// Generated by scripts/tz/update.js: ${source}\nexport const tzdbVersion = ${JSON.stringify(version)}\nexport default ${JSON.stringify(result, null, 2)}\n`
// Rename within the destination directory so readers never see a partial file.
// Only remove a temporary file created by this run (exclusive creation may fail).
const temporary = join(dirname(options.output), `.zonefile-${process.pid}.tmp`)
+2
View File
@@ -1,6 +1,7 @@
import Spacetime from './spacetime.js'
import whereIts from './whereIts.js'
import version from './_version.js'
import { tzdbVersion } from '../zonefile/_build.js'
const main = (input, tz, options) => new Spacetime(input, tz, options)
@@ -62,6 +63,7 @@ main.min = function (tz, options) {
//find tz by time
main.whereIts = whereIts
main.version = version
main.tzdbVersion = tzdbVersion
//aliases:
main.plugin = main.extend
+9
View File
@@ -0,0 +1,9 @@
import test from 'tape'
import spacetime from './lib/index.js'
import { tzdbVersion } from '../zonefile/iana.js'
test('tzdb version', (t) => {
t.ok(/^\d{4}[a-z]+$/.test(spacetime.tzdbVersion), `looks like '2026c'`)
t.equal(spacetime.tzdbVersion, tzdbVersion, 'same as zonefile/iana.js')
t.end()
})
+3
View File
@@ -86,6 +86,9 @@ export interface SpacetimeStatic extends SpacetimeConstructor {
/** list timezones by their time */
whereIts: (a: string, b?: string) => string[]
/** IANA tzdb release of the bundled timezone data, like '2026c' */
tzdbVersion: string
/** set as earliest-possible date */
min: (timezone?: string, options?: SpacetimeConstructorOptions) => Spacetime
+1
View File
@@ -1,3 +1,4 @@
export const tzdbVersion = "2026c"
export default {
"9|s": "2/dili,2/jayapura",
"9|n": "2/chita,2/khandyga,2/pyongyang,2/seoul,2/tokyo,2/yakutsk,11/palau,japan,rok",
+1
View File
@@ -1,3 +1,4 @@
export const tzdbVersion = '2026c'
export default {
'africa/abidjan': {
offset: 0,
+5 -2
View File
@@ -1,6 +1,6 @@
//turn our timezone data into a small-as-possible string
import { writeFileSync } from 'node:fs'
import iana from './iana.js'
import iana, { tzdbVersion } from './iana.js'
import aliases from './aliases.js'
import prefixes from './_prefixes.js'
const all = {}
@@ -44,4 +44,7 @@ keys.forEach((k) => {
})
// console.log(result)
writeFileSync('./zonefile/_build.js', 'export default ' + JSON.stringify(result, null, 2))
writeFileSync(
'./zonefile/_build.js',
`export const tzdbVersion = ${JSON.stringify(tzdbVersion)}\nexport default ${JSON.stringify(result, null, 2)}`
)