scoped-property-store

0.17.0 • Public • Published

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()

Readme

Keywords

none

Package Sidebar

Install

npm i scoped-property-store

Weekly Downloads

299

Version

0.17.0

License

none

Last publish

Collaborators

  • atom-team
  • nathansobo
  • kevinsawicki
  • benogle
  • maxbrunsfeld