Skip to content

Commit b7327c9

Browse files
committed
Merge with branch big-restructure
1 parent 01d51d6 commit b7327c9

File tree

238 files changed

+221151
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

238 files changed

+221151
-0
lines changed

.eslintrc.js

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
module.exports = {
2+
env: {
3+
browser: true,
4+
es2021: true,
5+
},
6+
extends: ["airbnb-base", "prettier"],
7+
parser: "@typescript-eslint/parser",
8+
parserOptions: {
9+
ecmaVersion: 12,
10+
sourceType: "module",
11+
},
12+
plugins: ["@typescript-eslint", "prettier"],
13+
ignorePatterns: ["**/dist/*", "**/node_modules/*", "**/*.json", "**/*.js"],
14+
rules: {
15+
"prettier/prettier": [
16+
"error",
17+
{
18+
endOfLine: "auto",
19+
},
20+
],
21+
indent: "off",
22+
"no-shadow": "off",
23+
"lines-between-class-members": "off",
24+
"linebreak-style": "off",
25+
"arrow-body-style": "off",
26+
"prefer-destructuring": "off",
27+
"no-console": "off",
28+
"no-param-reassign": "off",
29+
"eol-last": "off",
30+
"no-unused-vars": "off",
31+
"class-methods-use-this": "off",
32+
"no-await-in-loop": "off",
33+
"no-return-assign": "off",
34+
"no-restricted-syntax": "off",
35+
"no-useless-constructor": "off",
36+
"no-empty-function": "off",
37+
"no-continue": "off",
38+
"no-underscore-dangle": "off",
39+
"guard-for-in": "off",
40+
"import/extensions": [
41+
"error",
42+
"ignorePackages",
43+
{
44+
js: "never",
45+
ts: "never",
46+
},
47+
],
48+
"import/prefer-default-export": "off",
49+
"no-plusplus": "off",
50+
},
51+
settings: {
52+
"import/resolver": {
53+
node: {
54+
extensions: [".js", ".jsx", ".ts", ".tsx", ".d.ts"],
55+
},
56+
},
57+
},
58+
overrides: [
59+
{
60+
files: ["*.test.ts"],
61+
env: {
62+
jest: true,
63+
},
64+
},
65+
],
66+
};

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
name: "Bug report 🐛"
2+
description: Report an issue with IFC.js components
3+
body:
4+
- type: markdown
5+
attributes:
6+
value: |
7+
Thanks for taking the time to fill out this bug report! <img src="https://ifcjs.github.io/info/img/logo.svg" width="16">
8+
- type: textarea
9+
id: bug-description
10+
attributes:
11+
label: Describe the bug 📝
12+
description: A clear and concise description of what the bug is. If you intend to submit a PR for this issue, tell us in the description. Thanks!
13+
placeholder: |
14+
I am doing ...
15+
What I expect is ...
16+
What is actually happening is...
17+
validations:
18+
required: true
19+
- type: input
20+
id: reproduction
21+
attributes:
22+
label: Reproduction ▶️
23+
description: If possible, please provide an [asciinema record](https://asciinema.org/) or a link to a repo that can reproduce the problem you ran into. A [minimal reproduction](https://stackoverflow.com/help/minimal-reproducible-example) is desirable. If a report is vague (e.g. just a generic error message) and has no reproduction, solving it will also be a slower or unfeasible process.
24+
placeholder: Reproduction URL
25+
validations:
26+
required: false
27+
- type: textarea
28+
id: reproduction-steps
29+
attributes:
30+
label: Steps to reproduce 🔢
31+
description: Please provide any reproduction steps that may need to be described.
32+
placeholder: |
33+
1. Run `npm install`.
34+
2. ...
35+
validations:
36+
required: false
37+
- type: textarea
38+
id: system-info
39+
attributes:
40+
label: System Info 💻
41+
description: Output of `npx envinfo --system --npmPackages 'openbim-components' --binaries --browsers`
42+
render: shell
43+
placeholder: System, Binaries, Browsers
44+
validations:
45+
required: true
46+
- type: dropdown
47+
id: package-manager
48+
attributes:
49+
label: Used Package Manager 📦
50+
description: Select the used package manager
51+
options:
52+
- npm
53+
- yarn
54+
- pnpm
55+
validations:
56+
required: true
57+
- type: textarea
58+
id: logs
59+
attributes:
60+
label: Error Trace/Logs 📃
61+
description: |
62+
Optional if provided reproduction. Please try not to insert an image but copy paste the error trace/logs text.
63+
64+
Provide the error log here in the format below:
65+
````
66+
<details>
67+
<summary>Click to expand!</summary>
68+
69+
```shell
70+
// paste the log text here
71+
```
72+
</details>
73+
````
74+
- type: checkboxes
75+
id: checkboxes
76+
attributes:
77+
label: Validations ✅
78+
description: "Before submitting the issue, please make sure that you have:"
79+
options:
80+
- label: Read the [docs](https://ifcjs.github.io/info/docs/Introduction).
81+
required: true
82+
- label: Check that there isn't [already an issue](https://github.com/IFCjs/components/issues) that reports the same bug to avoid creating a duplicate.
83+
required: true
84+
- label: Make sure this is a IFC.js components issue and not a framework-specific issue. For example, if it's a THREE.js related bug, it should likely be reported to [mrdoob/threejs](https://github.com/mrdoob/three.js) instead.
85+
required: true
86+
- label: Check that this is a concrete bug. For Q&A join our [Discord Chat Server](https://discord.gg/FXfyR4XrKT).
87+
required: true
88+
- label: The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.
89+
required: true

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
contact_links:
2+
- name: IFC.js web-ifc Issues
3+
url: https://github.com/IFCjs/web-ifc
4+
about: Issues related with web-ifc, the javascript library to read and write ifc files.
5+
- name: IFC.js web-ifc-three Issues
6+
url: https://github.com/IFCjs/web-ifc-three
7+
about: Issues related with web-ifc-three, the implementation of web-ifc for THREE.js.
8+
- name: IFC.js web-ifc-viewer Issues
9+
url: https://github.com/IFCjs/web-ifc-viewer
10+
about: Issues related with web-ifc-viewer, the official IFC.js viewer and toolkit.
11+
- name: Discord Chat
12+
url: https://discord.gg/FXfyR4XrKT
13+
about: Join the official Discord server and discuss with other IFC.js members in real time.
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: "New feature proposal 🚀"
2+
description: Propose a new feature to be added to IFC.js components
3+
body:
4+
- type: markdown
5+
attributes:
6+
value: |
7+
Thanks for your interest in the project and taking the time to fill out this feature report! <img src="https://ifcjs.github.io/info/img/logo.svg" width="16">
8+
- type: textarea
9+
id: feature-description
10+
attributes:
11+
label: Description 📝
12+
description: "Clear and concise description of the problem. Please make the reason and usecases as detailed as possible. If you intend to submit a PR for this issue, tell us in the description. Thanks!"
13+
placeholder: "Example: As a BIM developer/engineer using IFC.js I want [goal / wish] so that [benefit]."
14+
validations:
15+
required: true
16+
- type: textarea
17+
id: suggested-solution
18+
attributes:
19+
label: Suggested solution 💡
20+
description: If possible, include in this field a solution or approach that would solve or implement the described feature.
21+
placeholder: "In module/component [xy] we could provide the following implementation..."
22+
validations:
23+
required: false
24+
- type: textarea
25+
id: alternative
26+
attributes:
27+
label: Alternative ⛕
28+
description: Clear and concise description of any alternative solutions or features you've considered.
29+
validations:
30+
required: false
31+
- type: textarea
32+
id: additional-context
33+
attributes:
34+
label: Additional context ☝️
35+
description: Any other context or screenshots about the feature request here.
36+
validations:
37+
required: false
38+
- type: checkboxes
39+
id: checkboxes
40+
attributes:
41+
label: Validations ✅
42+
description: "Before submitting the issue, please make sure that you have:"
43+
options:
44+
- label: Read the [docs](https://ifcjs.github.io/info/docs/Introduction).
45+
required: true
46+
- label: Check that there isn't [already an issue](https://github.com/IFCjs/components/issues) that requests the same feature to avoid creating a duplicate.
47+
required: true

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<!-- Thanks you so much for your PR, your contribution is appreciated! ❤️ -->
2+
3+
### Description
4+
5+
<!-- Please insert your description here. Make sure to provide info about the "what" this PR is solving -->
6+
7+
### Additional context
8+
9+
<!-- e.g. is there anything you'd like reviewers to focus on? -->
10+
11+
---
12+
13+
### What is the purpose of this pull request? <!-- (put an "X" next to an item) -->
14+
15+
- [ ] Bug fix
16+
- [ ] New Feature
17+
- [ ] Documentation update
18+
- [ ] Other
19+
20+
### Before submitting the PR, please make sure you do the following:
21+
22+
- [ ] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
23+
- [ ] Follow the [Conventional Commits v1.0.0](https://www.conventionalcommits.org/en/v1.0.0/) standard for PR naming (e.g. `feat(examples): add hello-world example`).
24+
- [ ] Provide a description in this PR that addresses **what** the PR is solving, or reference the issue that it solves (e.g. `fixes #123`).
25+
- [ ] Ideally, include relevant tests that fail without this PR but pass with it.

.github/workflows/publish-npm.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# .github/workflows/publish-npm.yml
2+
# This workflow pushes new published releases to https://www.npmjs.com using
3+
# the Yarn Package Manager.
4+
name: Publish package to npmjs (using Yarn)
5+
on:
6+
release:
7+
types: [published]
8+
workflow_call:
9+
secrets:
10+
NPM_TOKEN:
11+
required: true
12+
type: string
13+
jobs:
14+
build:
15+
runs-on: ubuntu-latest
16+
steps:
17+
- uses: actions/checkout@v3
18+
- uses: actions/setup-node@v3
19+
with:
20+
node-version: '18.16.x' # Use LTS
21+
registry-url: 'https://registry.npmjs.org'
22+
scope: '@octocat'
23+
- run: yarn
24+
- run: yarn npm publish
25+
env:
26+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

.github/workflows/release-please.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# .github/workflows/release-please.yml
2+
# This workflow handles the release-please system that manages releasing new versions.
3+
# It also calls `publish-npm.yml`, which then handles publishing to npmjs.
4+
# See: https://github.com/googleapis/release-please
5+
name: release-please
6+
on:
7+
push:
8+
branches:
9+
- main
10+
permissions:
11+
contents: write
12+
pull-requests: write
13+
jobs:
14+
release-please:
15+
runs-on: ubuntu-latest
16+
steps:
17+
- uses: google-github-actions/release-please-action@v3 # Handle local releases
18+
id: release
19+
with:
20+
release-type: node
21+
package-name: openbim-components
22+
- uses: ./.github/workflows/publish-npm.yml # Publish to npmjs
23+
with:
24+
secrets:
25+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
26+
# Publish only if release-please creates a published release
27+
if: ${{ steps.release.outputs.release_created }}

.github/workflows/tests.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: tests
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
branches: [ main ]
8+
9+
jobs:
10+
build:
11+
12+
runs-on: ubuntu-latest
13+
14+
strategy:
15+
matrix:
16+
node-version: [12.x]
17+
18+
steps:
19+
- uses: actions/checkout@v2
20+
- name: Use Node.js ${{ matrix.node-version }}
21+
uses: actions/setup-node@v1
22+
with:
23+
node-version: ${{ matrix.node-version }}
24+
- run: yarn install
25+
- run: yarn test

0 commit comments

Comments
 (0)