Skip to content

The W3C Geometry Interfaces implemented in JavaScript and polyfilled.

Notifications You must be signed in to change notification settings

trusktr/geometry-interfaces

Repository files navigation

Geometry Interfaces

Let's do some dommetry!

The W3C Geometry Interfaces implemented in JavaScript and polyfilled.

npm install geometry-interfaces

In the box so far

* Some methods are not implemented yet.

Usage

Just import the library after installing it from NPM and it will polyfill the global APIs:

import 'geometry-interfaces' // ES Modules

If you're not using a build tool, just plain JS in a browser, you can set up an importmap:

<script type="importmap">
	{
		"imports": {
			"geometry-interfaces": "/node_modules/geometry-interfaces/dist/index.js"
		}
	}
</script>

<script type="module">
	import 'geometry-interfaces'

	// ... use APIs ...
</script>

If you don't want to polyfill the APIs globally, you can import what you need directly:

import {DOMMatrix} from 'geometry-interfaces/dist/DOMMatrix.js'
import {DOMPoint} from 'geometry-interfaces/dist/DOMPoint.js'

TypeScript

Make sure you have lib: ["dom"] in tsconfig or DOM types will be missing and there may be type errors.

Contributing

To develop the project, run npm clean-install after cloning the repo, then npm run dev will build the TS to JS in watch mode, and npm run build will build it without watch mode.

Any help would be greatly appreciated, as this is a purely free time unpaid project. If you'd like to contribute, a pull request to add missing features, APIs, tests, or performance improvements would be awesome. :]

Miscellaneous

The word "dommetry" is a play on the words "geometry" and "DOMMatrix" put together. :D

About

The W3C Geometry Interfaces implemented in JavaScript and polyfilled.

Resources

Stars

Watchers

Forks

Packages

No packages published