@metabohub/forum-library
v0.0.6
Published
<!-- Put your badges here: --> [](https://forge.inrae.fr/metabohub/forvm/mth-forvm-lib/-/commits/dev) [.
To add the library to your Node.js project, please enter the following commands: npm i @metabohub/forum-library
Then you must import the library in your src/main.ts file:
// import the library and its styles
import { MetabohubForumLibrary } from '@metabohub/forum-library';
import '@metabohub/forum-library/dist/src/components/main.css';
const app = createApp(App);
registerPlugins(app); // <= import your plugin like vuetify, ...
app.use(MetabohubForumLibrary); // <= add this line!
app.mount('#app');Finally you can add our WebComponent in you own Vue components:
<!-- Template -->
<template>
<div class="find-associations">
<mth-forum-form-finder @search-query="onSearchQuery" />
<mth-forum-results-display :search-results="dataSearchResults" />
</div>
</template>
<!-- Code -->
<script lang="ts">
// from Vue core
import { ref } from "vue";
// forum - core services and mappers
import { //
ChebiApi, ChemontApi, PubchemApi,//
EndpointSearchQuery, EndpointSearchResults//
} from "@metabohub/forum-library";
// main
export default {
name: "Demo",
components: {},
setup() {
return {
dataSearchResults: ref(new EndpointSearchResults(new ChebiApi(), new ChemontApi(), new PubchemApi()))
};
},
methods: {
onSearchQuery(data: EndpointSearchQuery): void {
// Create new query results
this.dataSearchResults = new EndpointSearchResults(new ChebiApi(), new ChemontApi(), new PubchemApi());
// Apply the query emitted
this.dataSearchResults.searchQuery = data;
},
},
};
</script>
<!-- Style -->
<style lang="scss">
form {
fieldset {
padding: 5px;
legend {
padding: 5px;
margin-left: 20px;
}
}
}
</style>Running the tests
Upcoming.
Deployment
Edit Forum endpoint connection
If you edit src/assets/doc_forum-openapi.json file, you must re-generate the endpoint client code thanks npm run openapi-generator code.
Library build and publish
Build and publish the library
# install node modules listed into 'package.json' / 'package-lock.json' files
npm install
# build the library
npm run build:lib
npm pack
# publish the library
npm publishNotes:
- the publication registry is set into these files:
- .npmrc.
- package.json - key "publishConfig".
- the publication is automatic during CI/CD process; see .gitlab-ci.yml file.
- during the GitLab CI/CD pipeline, the previous package with the same version identifier is removed thanks:
curlcommands - to get all published packages in targeted GitLab packages registry and remove a specific one
(it require a GitLab API token with correct authorizations)
You can use non-stable version of the library using the GitLab npm package registry:
# if you already have installed the library, you must remove the previous one:
npm remove @metabohub/forum-library
# config GitLab npm registry
npm config set -- //forge.inrae.fr/api/v4/projects/11325/packages/npm/:_authToken=__YOUR_GITLAB_TOKEN_HERE__
npm config set @metabohub:registry https://forge.inrae.fr/api/v4/projects/11325/packages/npm/
# to install the library in your current Node.js project:
npm i --save \
--registry=https://forge.inrae.fr/api/v4/projects/11325/packages/npm/ \
@metabohub/forum-library;Standalone showcase build
Build the standalone version with these commands
# install node modules listed into 'package.json' / 'package-lock.json' files
npm install
# either build the DEV standalone version
npm run build:dev
# or build the PROD standalone version
npm run build:prodPlease refer to .env, .env.development and .env.production files to see changes between PROD and DEV versions.
Note: you can run the standalone version into "dev mode" thanks npm run dev command.
Contributing
We welcome contributions! Please follow these steps:
Development Guidelines
Please read Development Guidelines for details on our code of conduct, and the process for submitting pull requests to us.
Code Style
- Use Visual Studio Code IDE
- Use ESLint for JavaScript
- Use Prettier for code formatting
- Run
npm run lintbefore committing
Changelog
All notable changes to this project will be documented in CHANGELOG.md. For the versions available, see the tags on this repository.
Authors
- Nils Paulhe - Initial work - MetaboHUB, INRAE, PFEM.
- William Garrier, Paul-Emeric Saunier - Design and implement initial GUI and TS code - UCA.
- Olivier Filangi - Discovery - MetaboHUB, INRAE, P2M2.
- Franck Giacomoni - project management - MetaboHUB, INRAE, PFEM.
See also the list of contributors who participated in this project.
License
MetaboHUB - Forvm Library is distributed under the CeCILL-2.1 (compatible GNU-GPL) license.
Please refer to LICENSE.txt file for further details.

