blackflux / object-scan Goto Github PK
View Code? Open in Web Editor NEWTraverse object hierarchies using matching and callbacks.
License: MIT License
Traverse object hierarchies using matching and callbacks.
License: MIT License
Option to only return leaf nodes. Currently this possible using filterfn, however a simple flag would be preferred...
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
But of course absolutely minor priority... ;)
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 **
)
Currently this is a bit confusing. Differentiation:
Also: How to keep the cb fn cheap or at least give the option
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.
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 π¦π
https://github.com/simlu/object-scan/blob/master/src/index.js#L27
And other check below (2x)
Will need sufficient amount of tests to ensure edge cases are handled correctly
Eg tree
, traversal
. What else?
Why are these separate really? Is there a good use case?
E.g. Matching "a" or "foo" in a key
Can be used as a callback function
Called in same order as matches appear in result
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)
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:
*(pattern)
, @(pattern)
etc. Have to better understand how pattern are used with file extensions, e.g. what does 'source/*(some|file).py'
mean?()
?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
.
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)?
Have to think about what the use case is and how it could be handled differently
There are a lot of callbacks going on. Need to document the order they're executed in and write a test to ensure it stays that way.
In almost all spots it's desired to have joined=false
and it's a huge performance penalty to have it set to true.
We could also compare to other (similar) implementation, ie object-glob
Allow for key.{some,other.key}
syntax
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)
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.
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 π¦π
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
Now that meta computation gotten more expensive it should only be computed once. However computation should still only happen on demand.
I. E.
settings.log -= [...]
Allow.setting to false.
Move options under settings key
From "wildcard matching" to "glob matching"
When exclusion is used there should be a post processing step in the compile step that removes all previous and matching targets from the search tree. This has been hacked in for now here (for the recursive logic):
https://github.com/blackflux/object-scan/pull/876/files#diff-ea68f5d98be2a91004d43789469827c1R75
However this should be handled generically
Definitely require a bit of rework. Also need to consider how it ties in with #279
Tldr Use the power of mass random
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.