Skip to content

Commit

Permalink
Merge pull request #1 from Exabyte-io/feature/SOF-6643
Browse files Browse the repository at this point in the history
SOF-6643: Implement COVE and migrate first set of components
  • Loading branch information
zoomchik authored Jun 12, 2023
2 parents 69e255f + 423aba1 commit 7e5b7f9
Show file tree
Hide file tree
Showing 67 changed files with 8,423 additions and 175 deletions.
17 changes: 0 additions & 17 deletions .babelrc

This file was deleted.

39 changes: 37 additions & 2 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"extends": ["airbnb", "prettier", "eslint:recommended"],
"extends": ["@exabyte-io/eslint-config"],
"settings": {
"import/resolver": {
"node": {
Expand Down Expand Up @@ -55,6 +55,41 @@
]
}
]
}
},
"overrides": [
{
"files": [
"*.js",
"*.ts",
"*.tsx"
],
"extends": [
"@exabyte-io/eslint-config",
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
// "plugin:@typescript-eslint/recommended-requiring-type-checking",
"plugin:import/typescript"
],
"parser": "@typescript-eslint/parser",
"rules": {
"@typescript-eslint/ban-ts-comment": "off",
"import/no-absolute-path": "off",
"import/extensions": "off",
"react/forbid-prop-types": "off",
"react/jsx-filename-extension": "off",
"react/require-default-props": "off",
"no-use-before-define": "off",
"no-restricted-exports": "off",
"no-shadow": "off",
"@typescript-eslint/no-use-before-define": [
"error"
]
},
"plugins": [
"@typescript-eslint"
]
}
]
}

4 changes: 2 additions & 2 deletions .github/workflows/cicd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
if: github.repository != 'Exabyte-io/template-definitions'
strategy:
matrix:
node-version: [12.x, 14.x, 16.x]
node-version: [14.19.x]

steps:
- name: Checkout this repository
Expand Down Expand Up @@ -53,7 +53,7 @@ jobs:
- name: Publish JS release
uses: ./actions/js/publish
with:
node-version: 12.21.x
node-version: 14.19.x
npm-token: ${{ secrets.NPM_TOKEN }}
github-token: ${{ secrets.BOT_GITHUB_TOKEN }}

3 changes: 2 additions & 1 deletion .prettierrc
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"singleQuote": false,
"printWidth": 100,
"trailingComma": "all",
"tabWidth": 4
"tabWidth": 4,
"bracketSameLine": true
}

90 changes: 84 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,87 @@
# cove.js
[![npm version](https://badge.fury.io/js/%40exabyte-io%2Fcove.svg)](https://badge.fury.io/js/%40exabyte-io%2Fcove)
[![License: Apache](https://img.shields.io/badge/License-Apache-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)

## TODO
# cove

Use `template.py` (analog to `cookiecutter`) to go through user prompts
for some information and then write out templated values in select files.
After usage, remove the `template.py` file and the `README.md` and associated
`files` can be committed.
cove houses entity definitions for use in the Mat3ra platform.


### Installation

For usage within a javascript project:

```bash
npm install @exabyte-io/cove.js
```

For development:

```bash
git clone https://github.com/Exabyte-io/cove.js.git
```

### Typescript

Typescript and all necessary type dependencies must be present in dependency section of package.json in order
to transpile files and generate type definitions during package installation on postinstall command.
It is necessary for testing arbitrary branches for example as dependency
git+https://github.com/Exabyte-io/cove.js.git#b7604da7717232ac38a6372fea603f0b04645ade in web-app.

### Contribution

This repository is an [open-source](LICENSE.md) work-in-progress and we welcome contributions.

We regularly deploy the latest code containing all accepted contributions online as part of the
[Mat3ra.com](https://mat3ra.com) platform, so contributors will see their code in action there.

See [ESSE](https://github.com/Exabyte-io/esse) for additional context regarding the data schemas used here.

Useful commands for development:

```bash
# run linter without persistence
npm run lint

# run linter and save edits
npm run lint:fix

# compile the library
npm run transpile

# run tests
npm run test
```

## Using Linter

Linter setup will prevent committing files that don't adhere to the code standard. It will
attempt to fix what it can automatically prior to the commit in order to reduce diff noise. This can lead to "unexpected" behavior where a
file that is staged for commit is not identical to the file that actually gets committed. This happens
in the `lint-staged` directive of the `package.json` file (by using a `husky` pre-commit hook). For example,
if you add extra whitespace to a file, stage it, and try to commit it, you will see the following:

```bash
➜ repo-js git:(feature/cool-feature) ✗ git commit -m "Awesome feature works great"
✔ Preparing...
✔ Running tasks...
✖ Prevented an empty git commit!
✔ Reverting to original state because of errors...
✔ Cleaning up...

⚠ lint-staged prevented an empty git commit.
Use the --allow-empty option to continue, or check your task configuration

husky - pre-commit hook exited with code 1 (error)
```

The staged change may remain but will not have been committed. Then it will look like you still have a staged
change to commit, but the pre-commit hook will not actually commit it for you, quite frustrating! Styling can
be applied manually and fixed by running:

```bash
npm run lint:fix
```

In which case, you may need to then add the linter edits to your staging, which in the example above, puts the
file back to identical with the base branch, resulting in no staged changes whatsoever.

Loading

0 comments on commit 7e5b7f9

Please sign in to comment.