Giter Site home page Giter Site logo

object-scan's People

Contributors

dependabot-preview[bot] avatar dependabot-support avatar dependabot[bot] avatar greenkeeper[bot] avatar greenkeeperio-bot avatar kodiverse avatar macmcirish avatar mrsflux avatar simlu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

object-scan's Issues

"Leaf" nodes only

Option to only return leaf nodes. Currently this possible using filterfn, however a simple flag would be preferred...

Compare to jsonPath / ObjectPath

Great great work and really impressive!

Would be interesting to see and outline on the project page, which pro's and cons exist in comparison to for example:

For example in

  • Functionality / focus
  • Performance
  • ...

But of course absolutely minor priority... ;)

Minimize traversal for "**"

Currently the traversal is redundant. We can do much better by traversing all non ** first but keeping track of all ** and then traversing all remaining paths using just pure **. Need to handle needle better in this case (prefer non **)

Design, implement, document needles in cb

Currently this is a bit confusing. Differentiation:

  • non excluding needle
  • excluding needle
  • all leaf needles
  • all non excluding needles not followed by an excluding needle

Also: How to keep the cb fn cheap or at least give the option

The automated release is failing 🚨

🚨 The automated release from the master branch failed. 🚨

I recommend you give this issue a high priority, so other packages depending on you could benefit from your bug fixes and new features.

You can find below the list of errors reported by semantic-release. Each one of them has to be resolved in order to automatically publish your package. I’m sure you can resolve this πŸ’ͺ.

Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.

Once all the errors are resolved, semantic-release will release your package the next time you push a commit to the master branch. You can also manually restart the failed CI job that runs semantic-release.

If you are not sure how to resolve this, here is some links that can help you:

If those don’t help, or if this issue is reporting something you think isn’t right, you can always ask the humans behind semantic-release.


The push permission to the Git repository is required.

semantic-release cannot push the version tag to the branch master on remote Git repository with URL https://github.com/simlu/object-scan.git.

Please refer to the authentication configuration documentation to configure the Git credentials on your CI environment and make sure the repositoryUrl is configured with a valid Git URL.


Good luck with your project ✨

Your semantic-release bot πŸ“¦πŸš€

Readme filterfn

Can be used as a callback function
Called in same order as matches appear in result

Improve needle output for '**' matches

The needles are correctly displayed, however the '**' injection is omitted.

Ideally we would display the needles with the '**' injection displayed as '*'.

Not sure how to efficiently do that. Have to think about it more.

See test example (lots of redundancy and hard to interpret)

Add missing functionality for glob compatibility

The ultimate goal is to get this library into a state where we can use it to power very efficient glob matching. The functionality is almost there. Missing:

  • Arbitrary depth matching of specific patterns, e.g. *(pattern), @(pattern) etc. Have to better understand how pattern are used with file extensions, e.g. what does 'source/*(some|file).py' mean?
  • Full regex support. Maybe we can just support that inside ()?

See here for more information: https://facelessuser.github.io/wcmatch/glob/#syntax

Once equivalent functionality is fully supported it should be possible to write a glob library powered by object-scan.

Return key / value (option) instead of list

Should make it possible to have function to return subset of object.

Maybe this should be a callback option instead? Or can we just use what is currently there (breakfn)?

Allow for `key.{some,other.key}` syntax

Allow for key.{some,other.key} syntax

  • Need to carefully evaluate all steps: parse, compile and search
  • Need to verify that object-rewrite still works correctly

Separate out / write more integration tests

Define input as json, write *.spec.json test files and generate tests dynamically. If output doesn't exist write it instead of failing test.

Can use either input json (string reference to input file) or in test defined json

Look at callbackfn tests for reference (log in output for breakfn and callbackfn)

The automated release is failing 🚨

🚨 The automated release from the master branch failed. 🚨

I recommend you give this issue a high priority, so other packages depending on you could benefit from your bug fixes and new features.

You can find below the list of errors reported by semantic-release. Each one of them has to be resolved in order to automatically publish your package. I’m sure you can resolve this πŸ’ͺ.

Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.

Once all the errors are resolved, semantic-release will release your package the next time you push a commit to the master branch. You can also manually restart the failed CI job that runs semantic-release.

If you are not sure how to resolve this, here is some links that can help you:

If those don’t help, or if this issue is reporting something you think isn’t right, you can always ask the humans behind semantic-release.


The push permission to the Git repository is required.

semantic-release cannot push the version tag to the branch master on remote Git repository with URL https://github.com/simlu/object-scan.git.

Please refer to the authentication configuration documentation to configure the Git credentials on your CI environment and make sure the repositoryUrl is configured with a valid Git URL.


Good luck with your project ✨

Your semantic-release bot πŸ“¦πŸš€

Fix ** matching

Should match as empty, but not after nested?

There is probably a bug here!

See test example that has * as a 'matches' entey. It probably shouldn't have

Optimize getMeta / joined performance

  • consider option to determine which fields need to be computed for which cb function (so they're not all computed all the time)
  • consider caching of joined=true
  • consider cb fn length when determining if to compute getMeta
  • consider caching getMeta results smartly (look at nesting level deepness)

Optimization

Now that meta computation gotten more expensive it should only be computed once. However computation should still only happen on demand.

Rename desc

From "wildcard matching" to "glob matching"

Create mass random tests

  • Auto generate data set and needles
  • Randomly select parameters to generate data set and needles (different probabilities)
  • Commit data and results
  • Should prevent regression for weird edge cases

Tldr Use the power of mass random

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.