Skip to content

Just Timers ​

Just Timers is an iOS timer app. Protocol Launcher allows you to generate official URL scheme links for creating, deleting, pausing, resetting, restarting, and resuming timers.

Usage ​

There are two ways to use this library:

  • On-Demand import from subpaths enables tree-shaking and keeps bundles small.
  • Full Import from the root package is convenient but includes all app modules.

Pick On-Demand for production builds; Full Import is fine for quick scripts or demos.

Select Installation Method

On-Demand
Recommended. Optimized for production.
Full Import
Convenient. Good for quick scripts.

Notes ​

Just Timers documents justtimers://x-callback-url/[action]/?[parameter]=[value] for individual timers and justtimers://x-callback-url/[action]/all for controlling all timers. The official page does not document callback query parameters such as x-success or x-error, so this module does not expose them.

Creating a timer requires name and either duration or seconds. New timers are active by default; pass active: false to create the timer paused.

Create Timer With Duration ​

On-Demand
ts
import { createTimer } from 'protocol-launcher/just-timers'

const url = createTimer({
  name: 'Tea',
  duration: '2 minutes',
})

Create Paused Timer With Seconds ​

On-Demand
ts
import { createTimer } from 'protocol-launcher/just-timers'

const url = createTimer({
  name: 'Tea',
  seconds: 120,
  active: false,
})

Delete Timer ​

On-Demand
ts
import { deleteTimer } from 'protocol-launcher/just-timers'

const url = deleteTimer({
  name: 'Tea',
})

Pause All Timers ​

On-Demand
ts
import { pauseTimer } from 'protocol-launcher/just-timers'

const url = pauseTimer({
  all: true,
})

Reset Timer ​

On-Demand
ts
import { resetTimer } from 'protocol-launcher/just-timers'

const url = resetTimer({
  name: 'Tea',
})

Restart Timer ​

On-Demand
ts
import { restartTimer } from 'protocol-launcher/just-timers'

const url = restartTimer({
  name: 'Tea',
})

Resume Timer ​

On-Demand
ts
import { resumeTimer } from 'protocol-launcher/just-timers'

const url = resumeTimer({
  name: 'Tea',
})

Generated URLs ​

ts
createTimer({ name: 'Tea', duration: '2 minutes' })
// => 'justtimers://x-callback-url/new/?name=Tea&duration=2%20minutes'

createTimer({ name: 'Tea', seconds: 120, active: false })
// => 'justtimers://x-callback-url/new/?name=Tea&seconds=120&active=false'

deleteTimer({ name: 'Tea' })
// => 'justtimers://x-callback-url/delete/?name=Tea'

deleteTimer({ all: true })
// => 'justtimers://x-callback-url/delete/all'

pauseTimer({ name: 'Tea' })
// => 'justtimers://x-callback-url/pause/?name=Tea'

pauseTimer({ all: true })
// => 'justtimers://x-callback-url/pause/all'

resetTimer({ name: 'Tea' })
// => 'justtimers://x-callback-url/reset/?name=Tea'

resetTimer({ all: true })
// => 'justtimers://x-callback-url/reset/all'

restartTimer({ name: 'Tea' })
// => 'justtimers://x-callback-url/restart/?name=Tea'

restartTimer({ all: true })
// => 'justtimers://x-callback-url/restart/all'

resumeTimer({ name: 'Tea' })
// => 'justtimers://x-callback-url/resume/?name=Tea'

resumeTimer({ all: true })
// => 'justtimers://x-callback-url/resume/all'

Official Documentation ​