Skip to content
This repository has been archived by the owner on Dec 15, 2022. It is now read-only.

Latest commit

 

History

History
41 lines (31 loc) · 1.28 KB

README.md

File metadata and controls

41 lines (31 loc) · 1.28 KB
Atom and all repositories under Atom will be archived on December 15, 2022. Learn more in our official announcement

Scoped Property Store Build Status

Stores and retrieves properties associated with CSS selectors.

Currently, this library only supports the combinations of the following elements. More could be added pretty easily.

  • Element names: div
  • Class names: .foo
  • Simple attributes: [foo=bar]
  • Descendant selectors: .foo .bar
  • Child selectors: .foo > .bar

Usage:

ScopedPropertyScore = require 'scoped-property-store'
store = new ScopedPropertyScore

# First associate some properties with selectors
disposable = store.addProperties 'some-description',
  '.foo.bar .baz':
    x:
      y: 1
      z: 2

  '.foo':
    x:
      y: 3

# Then query properties based on a string description of a path in the DOM.
store.get('div.foo.bar p.baz', 'x.y') # ==> 1
store.get('div.foo.bar p.baz', 'x.z') # ==> 2

# Falls back to selectors matching an *ancestor* if necessary
store.get('div.foo p.baz', 'x.y') # ==> 3

# You can also remove properties via the returned Disposable
disposable.dispose()