Nemo's Parental Misguidance

    shift-identifiers

    0.0.1 • Public • Published

    shift-identifiers

    Find all the identifiers and their closest matches in a source file.

    Why?

    Curiosity.

    It may be useful to expose similarities in identifiers across an entire source file to find out where there is inconsistent naming or where there may be pockets of similar code.

    Usage

    You can use the executable, but it's not really useful outside of quick testing.

    $ ./bin/shift-identifiers jquery.js
    
    /bin/shift-identifiers vendor/jquery/dist/jquery.js
    { selector: [ 'toSelector', 'select', 'selectors', 'selection', 'selected' ],
      toSelector: [ 'selector', 'newSelector', 'postSelector' ],
      select: [ 'selector' ],
      selectors: [ 'selector', 'selection', 'selected' ],
      selection: [ 'selector', 'selectors', 'collection', 'selected' ],
      selected: [ 'selector', 'selectors', 'related', 'selection' ],
      context: [ 'text', 'concat', 'contexts', 'next', 'content', 'contents' ],
      text: [ 'context' ],
      concat: [ 'context' ],
      contexts: [ 'context', 'contains', 'content', 'contents' ],
      next: [ 'context' ],
      content:
       [ 'context',
         'contains',
         'contexts',
         'condense',
         'contents',
         'current' ],
      contents: [ 'context', 'contains', 'contexts', 'condense', 'content' ],
      arguments: [ 'argument' ],
      argument: [ 'arguments', 'document', 'fragment' ],
      options: [ 'opts', 'option', 'optionSet' ],
      opts: [ 'options' ],
      option: [ 'options' ],
      optionSet: [ 'options' ],
      undefined: [ 'strundefined', 'define' ],
      strundefined: [ 'undefined' ],
      define: [ 'undefined' ],
      document: [ 'argument' ],
      indirect: [ 'inspect' ],
      inspect: [ 'indirect', 'inspected' ],
      results: [ 'result', 'resolve' ],
      result: [ 'results' ],
      resolve: [ 'results', 'rescape', 'response' ],
      indexOf: [ 'index' ],
      index: [ 'indexOf' ],
      matches:
       [ 'match',
         'cache',
         'matched',
         'matcher',
         'unmatched',
         'cached',
         'matchers',
         'matcherIn',
         'attaches' ],
      match: [ 'matches' ],
      cache: [ 'matches' ],
      matched:
       [ 'matches',
         'matcher',
         'unmatched',
         'cached',
         'matchers',
         'mapped',
         'matcherIn',
         'method' ],
      matcher:
       [ 'matches',
         'matchExpr',
         'matched',
         'unmatched',
         'cached',
         'matchers',
         'matcherIn',
         'matcherOut' ],
      unmatched: [ 'matches', 'matched', 'matcher' ],
      cached: [ 'matches', 'matched', 'matcher' ],
      matchers: [ 'matches', 'matched', 'matcher', 'matcherIn', 'matcherOut' ],
      matcherIn: [ 'matches', 'matched', 'matcher', 'matchers', 'matcherOut' ],
      attaches: [ 'matches' ],
      whitespace: [ 'rwhitespace' ],
      rwhitespace: [ 'whitespace' ],
      identifier: [ 'ridentifier' ],
      ridentifier: [ 'identifier' ],
      pseudos: [ 'rpseudo', 'pseudo' ],
      rpseudo: [ 'pseudos', 'pseudo' ],
      pseudo: [ 'pseudos', 'rpseudo' ],
      escaped: [ 'rescape', 'eased', 'scale' ],
      rescape: [ 'escaped', 'runescape', 'funescape', 'resolve', 'scale' ],
      eased: [ 'escaped', 'related' ],
      scale: [ 'escaped', 'rescape' ],
      nodeType: [ 'nodeName', 'ofType', 'nType' ],
      nodeName: [ 'nodeType', 'doneName' ],
      ofType: [ 'nodeType' ],
      nType: [ 'nodeType' ],
      contains: [ 'contexts', 'content', 'container', 'contents' ],
      container: [ 'contains' ],
      expando: [ 'expanded' ],
      expanded: [ 'expando' ],
      newContext: [ 'testContext' ],
      testContext: [ 'newContext' ],
      newSelector: [ 'toSelector' ],
      tokenize: [ 'tokens', 'token' ],
      tokens: [ 'tokenize' ],
      token: [ 'tokenize' ],
      runescape: [ 'rescape', 'funescape' ],
      funescape: [ 'rescape', 'runescape' ],
      postSelector: [ 'toSelector' ],
      rsibling: [ 'sibling' ],
      sibling: [ 'rsibling', 'firing' ],
      handler: [ 'handleObj', 'handlers', 'handle' ],
      handleObj: [ 'handler', 'handleObjIn', 'handlers', 'handle' ],
      handlers: [ 'handler', 'handleObj', 'handle', 'headers' ],
      handle: [ 'handler', 'handleObj', 'handlers' ],
      fragment: [ 'argument' ],
      docElem: [ 'curElem' ],
      curElem: [ 'docElem' ],
      className: [ 'classCache', 'capName', 'classNames' ],
      classCache: [ 'className' ],
      capName: [ 'className', 'rtagName', 'propName' ],
      classNames: [ 'className', 'classes' ],
      compare: [ 'compile', 'compiled', 'computed', 'complete' ],
      compile: [ 'compare', 'compiled', 'computed', 'complete' ],
      compiled: [ 'compare', 'compile', 'completed', 'computed', 'complete' ],
      computed: [ 'compare', 'compile', 'compiled', 'completed', 'complete' ],
      complete: [ 'compare', 'compile', 'compiled', 'completed', 'computed' ],
      elements: [ 'elemData', 'events', 'refElements' ],
      elemData: [ 'elements', 'elemLang', 'keepData' ],
      events: [ 'elements' ],
      refElements: [ 'elements', 'destElements', 'srcElements' ],
      getText: [ 'getter' ],
      getter: [ 'getText', 'pattern' ],
      matchExpr: [ 'matcher' ],
      doneName: [ 'nodeName', 'funcName' ],
      pattern: [ 'attr', 'setter', 'getter' ],
      attr: [ 'pattern' ],
      setter: [ 'pattern' ],
      useCache: [ 'outerCache', 'oldCache', 'newCache' ],
      outerCache: [ 'useCache' ],
      oldCache: [ 'useCache', 'newCache' ],
      newCache: [ 'useCache', 'oldCache' ],
      dirruns: [ 'rrun' ],
      rrun: [ 'dirruns' ],
      mapped: [ 'matched' ],
      method: [ 'matched' ],
      matcherOut: [ 'matcher', 'matchers', 'matcherIn' ],
      elemLang: [ 'elemData' ],
      rheader: [ 'rheaders', 'headers' ],
      rheaders: [ 'rheader', 'headers' ],
      headers: [ 'rheader', 'handlers', 'rheaders' ],
      setFilters: [ 'preFilters' ],
      preFilters: [ 'setFilters', 'preFilter', 'propFilter', 'prefilters' ],
      preFilter: [ 'preFilters', 'postFilter', 'propFilter', 'prefilters' ],
      propFilter: [ 'preFilters', 'postFilter', 'preFilter' ],
      prefilters: [ 'preFilters', 'preFilter' ],
      rcombinators: [ 'combinator' ],
      combinator: [ 'rcombinators' ],
      funcName: [ 'doneName' ],
      postFilter: [ 'postFinder', 'preFilter', 'propFilter' ],
      postFinder: [ 'postFilter' ],
      setMatcher: [ 'setMatchers', 'setMatched', 'superMatcher' ],
      setMatchers: [ 'setMatcher', 'setMatched' ],
      setMatched: [ 'setMatcher', 'setMatchers' ],
      superMatcher: [ 'setMatcher' ],
      condense: [ 'content', 'contents' ],
      matchContext: [ 'matchAnyContext' ],
      matchAnyContext: [ 'matchContext' ],
      elementMatcher: [ 'elementMatchers' ],
      elementMatchers: [ 'elementMatcher' ],
      completed: [ 'compiled', 'computed', 'complete' ],
      addHandle: [ 'attrHandle' ],
      attrHandle: [ 'addHandle' ],
      targets: [ 'parts' ],
      parts: [ 'targets' ],
      firing: [ 'sibling' ],
      deferred: [ 'defer' ],
      defer: [ 'deferred' ],
      returned: [ 'rreturn' ],
      rreturn: [ 'returned' ],
      promise: [ 'props' ],
      props: [ 'promise' ],
      setTimeout: [ 'timeout' ],
      timeout: [ 'setTimeout', 'timerId' ],
      emptyGet: [ 'empty' ],
      empty: [ 'emptyGet' ],
      response: [ 'resolve', 'responses' ],
      keepData: [ 'elemData' ],
      handleObjIn: [ 'handleObj' ],
      origType: [ 'origName' ],
      origName: [ 'origType', 'rtagName', 'propName' ],
      original: [ 'origFn' ],
      origFn: [ 'original' ],
      related: [ 'eased', 'selected' ],
      wrapMap: [ 'wrap' ],
      wrap: [ 'wrapMap' ],
      current: [ 'content', 'percent', 'curLeft' ],
      destElements: [ 'refElements' ],
      srcElements: [ 'refElements' ],
      pdataOld: [ 'pdataCur', 'udataOld' ],
      pdataCur: [ 'pdataOld', 'udataCur' ],
      udataOld: [ 'pdataOld', 'udataCur' ],
      udataCur: [ 'pdataCur', 'udataOld' ],
      rtagName: [ 'capName', 'origName' ],
      collection: [ 'selection' ],
      scripts: [ 'hasScripts' ],
      hasScripts: [ 'scripts' ],
      rmargin: [ 'margin' ],
      margin: [ 'rmargin', 'marginDiv' ],
      minWidth: [ 'maxWidth' ],
      maxWidth: [ 'minWidth' ],
      marginDiv: [ 'margin' ],
      propName: [ 'capName', 'origName' ],
      isHidden: [ 'hidden' ],
      hidden: [ 'isHidden' ],
      percent: [ 'current' ],
      animation: [ 'Animation', 'doAnimation' ],
      Animation: [ 'animation', 'doAnimation' ],
      doAnimation: [ 'animation', 'Animation' ],
      stopped: [ 'speed', 'stop' ],
      speed: [ 'stopped' ],
      stop: [ 'stopped' ],
      prepend: [ 'proceed' ],
      proceed: [ 'prepend' ],
      timerId: [ 'time', 'timeout' ],
      time: [ 'timerId' ],
      boolHook: [ 'nodeHook' ],
      nodeHook: [ 'boolHook' ],
      classes: [ 'rclass', 'classNames' ],
      rclass: [ 'classes' ],
      dataType: [ 'dataTypes' ],
      dataTypes: [ 'dataType', 'allTypes' ],
      allTypes: [ 'dataTypes' ],
      transports: [ 'transport' ],
      transport: [ 'transports' ],
      inspected: [ 'inspect' ],
      responses: [ 'response' ],
      finalDataType: [ 'firstDataType' ],
      firstDataType: [ 'finalDataType' ],
      curLeft: [ 'current', 'curCSSLeft' ],
      isSuccess: [ 'success' ],
      success: [ 'isSuccess' ],
      xhrCallbacks: [ 'oldCallbacks' ],
      oldCallbacks: [ 'xhrCallbacks' ],
      curCSSTop: [ 'curTop' ],
      curTop: [ 'curCSSTop' ],
      curCSSLeft: [ 'curLeft' ] }
    

    In code

    var shiftIdentifiers = require('../dist');
    
    var file = 'some/file.js';
    
    var source = fs.readFileSync(file).toString();
    
    console.log(shiftIdentifiers(source));
    

    Licenses

    ISC

    Keywords

    none

    Install

    npm i shift-identifiers

    DownloadsWeekly Downloads

    1

    Version

    0.0.1

    License

    ISC

    Last publish

    Collaborators

    • jsoverson