openmagicline
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

openmagicline

The Magicline API for everybody.

synopsis

I'm working at a gym that has been using magicline for well over 10 years now.

When they switched to a completely new web-based interface in about 2016, using magicline got a lot slower. The new interface not only took a significant time to get used to, it also runs considerably slower than the previous (native) one. This sucks for an environment where the customer expects fast and reliable service.

Openmagicline is a reverse-engineered, strongly-typed version of magicline's internal API.

usage

This is far from feature-complete as I only implement the parts I need. Feel free to use it, but expect a lot of functionality to be missing.

I am, however, very open to contributions and this project should be a solid starting point for anyone who wants to implement missing functionality.

const magicline = new Openmagicline({
  gym: "gym", // example for https://gym.web.magicline.com
  username: "your username",
  password: "your password",
})

await magicline.login()
await magicline.customer.search("John Doe")

features

  • Strongly-typed - All API calls and responses are typed
  • Authenticates - Automatically re-authenticates on session expiry
  • Covered - 100% test coverage

ideas (contributions welcome)

  • detect magicline version and warn if openmagicline is outdated
  • improve tests with zod
  • verify API responses with zod

testing

I strive for 100% coverage with automated tests using ava.

This is very useful for rapidly detecting changes in magicline's internal API. There will be periodic tests set up using GitHub actions once I consider openmagicline stable.

Package Sidebar

Install

npm i openmagicline

Weekly Downloads

9

Version

1.1.0

License

MIT

Unpacked Size

42.5 kB

Total Files

5

Last publish

Collaborators

  • vaaski