dmstern / npmfrog Goto Github PK
View Code? Open in Web Editor NEWA npmjs.org-like web interface for jFrog Artifactory with material design
A npmjs.org-like web interface for jFrog Artifactory with material design
to reduce REST calls to artifactory
Artifactory Version 6.6.1
Current workaround:
We get the packages from the hard drive cache. Due to this curcumstance every newly submitted package has to be called at least one time in the browser to get into the cache and also foreign packages from the cache are displayed.
Ideas:
Maybe the Artifactory API has changed? Or is this a bug in Artifactory?
Like Verdaccio and others, npmfrog should be able to be installed globally (npm i -g npmfrog
) and executed as a global os command (npmfrog
).
npmfrog/src/views/PackageDetail.vue
Line 398 in dc313ef
IS:
In the README.md file, it's said, one should duplicate the sample config file and adapt the values.
This isn't that simple as it could be, especially since the file is located in a global node_modules directory, where it is not obvious, where to go and what to do to configure npmFrog at the first startup.
SHOULD:
At the first startup, npmFrog should check if there is a config file already in the home directory. If not, it should create one with the default values or placeholders. The project folder as a configuration location should only be a development fallback.
Currently, you have to search something before you can see the headline ("Found x/y packages on <artifactroy.url>").
This should be already shown at the start up.
If you go to the PackageDetail view by selecting an SearchItem item of type Package
, this SearchItem does not get removed from the search list. This causes the behaviour, that the packageList is accidentally filtered when the user returns to the PackageList view.
Evtl. Create a service for each type of backend data or a global middleware. For Packages this Caching is done in PackageService.ts. Maybe one should create a global 'DataService' / 'DataStore'.
This is a cool idea. Which Artifactory versions are supported or targeted? We're using artifactory enterprise 6.5.8 and the rest api seems a bit different than what is in here
PackageDetail.vue:
Add a button or icon beside the code block under install
: When the user clicks on that button, the full install command should be copied to clipboard and a success notification should show up.
If the user clicks on a crafter or keyword in the PackageDetail.vue, it should be ensured that this item is in the search list. Otherwise, the list breaks and nothing is shown and search list is empty.
The about dialog should be shareable with an url.
On the PackageDetail vue, If I click on a dependecy, I want to see the packageDetail.vue of the clicked dependencies's package.
PackageDetail.vue
In the PackageDetail View:
For example, if I click on an icon or button near the package's author or a keyword, the PackageList should open, filtered by that author or keyword.
Should be integrated in About dialog.
Maybe just a link to the github releases page.
To reduce REST calls and file reading to npmfrog server.
As a user I would like to see an avatar image of an author in the
The Avatar should be looked up in the following third-party-services:
Add recursive color search
Cache color in crafter object
Avoid duplicate Crafters
Reproduce:
Result: console errors says:
vue.runtime.esm.js:587 [Vue warn]: Error in created hook: "TypeError: Cannot set property 'vnode' of undefined"
found in
---> <VTreeviewNode>
<VTreeview>
<VTabItem>
<VTabsItems>
<ThemeProvider>
<VTabs>
<VCard>
<PackageDetail> at src\views\PackageDetail.vue
<VContent>
<VApp>
<App> at src\App.vue
<Root>
warn @ vue.runtime.esm.js:587
logError @ vue.runtime.esm.js:1733
globalHandleError @ vue.runtime.esm.js:1728
handleError @ vue.runtime.esm.js:1717
callHook @ vue.runtime.esm.js:2919
Vue._init @ vue.runtime.esm.js:4626
VueComponent @ vue.runtime.esm.js:4794
createComponentInstanceForVnode @ vue.runtime.esm.js:4306
init @ vue.runtime.esm.js:4127
createComponent @ vue.runtime.esm.js:5604
createElm @ vue.runtime.esm.js:5551
updateChildren @ vue.runtime.esm.js:5841
patchVnode @ vue.runtime.esm.js:5932
patch @ vue.runtime.esm.js:6092
Vue._update @ vue.runtime.esm.js:2666
updateComponent @ vue.runtime.esm.js:2784
get @ vue.runtime.esm.js:3138
run @ vue.runtime.esm.js:3215
flushSchedulerQueue @ vue.runtime.esm.js:2977
(anonymous) @ vue.runtime.esm.js:1833
flushCallbacks @ vue.runtime.esm.js:1754
./node_modules/core-js/modules/_invoke.js.module.exports @ _invoke.js:5
queue.(anonymous function) @ _task.js:35
run @ _task.js:21
listener @ _task.js:25
vue.runtime.esm.js:1737 TypeError: Cannot set property 'vnode' of undefined
at VueComponent.register (vuetify.js:15543)
at VueComponent.created (vuetify.js:15761)
at callHook (vue.runtime.esm.js:2917)
at VueComponent.Vue._init (vue.runtime.esm.js:4626)
at new VueComponent (vue.runtime.esm.js:4794)
at createComponentInstanceForVnode (vue.runtime.esm.js:4306)
at init (vue.runtime.esm.js:4127)
at createComponent (vue.runtime.esm.js:5604)
at createElm (vue.runtime.esm.js:5551)
at updateChildren (vue.runtime.esm.js:5841)
And the treeview is not working properly anymore.
Should show a tree view with the files that are contained in the packe. On clicking on the file entries in the tree view, I wand to see the code of that file beautiful rendered at the bottom of the page.
Currently, only the package author get evaluated. npmjs.org takes the author and all contributors, which resluts to "collaborators".
npmFrog should do something similar.
When a user selects a previous version in the version history of the package detail page, he should be able to copy and paste it's URL.
Currently the ports for the back-end (30001) and front-end (8000) are hard-coded. These should be configurable in the config.json file under ~/.npmfrog.
Currently, the installation instructions are written for the usage of npm by default. This should be extended by commands for yarn.
Which package manager is used should be configurable or choosable via the UI.
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.