Skip to content

Commit

Permalink
Merge pull request #21 from nextcloud-libraries/refactor
Browse files Browse the repository at this point in the history
Refactor: Use Vite, Vitest add ESLint and Prettier
  • Loading branch information
susnux authored Jun 19, 2024
2 parents 8cfd1ca + d697de1 commit e186677
Show file tree
Hide file tree
Showing 13 changed files with 5,650 additions and 8,581 deletions.
98 changes: 98 additions & 0 deletions .github/workflows/lint-eslint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT

name: Lint eslint

on: pull_request

permissions:
contents: read

concurrency:
group: lint-eslint-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
changes:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read

outputs:
src: ${{ steps.changes.outputs.src}}

steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- 'src/**'
- 'appinfo/info.xml'
- 'package.json'
- 'package-lock.json'
- 'tsconfig.json'
- '.eslintrc.*'
- '.eslintignore'
- '**.js'
- '**.ts'
- '**.vue'
lint:
runs-on: ubuntu-latest

needs: changes
if: needs.changes.outputs.src != 'false'

name: NPM lint

steps:
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7

- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
with:
fallbackNode: '^20'
fallbackNpm: '^10'

- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}

- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'

- name: Install dependencies
env:
CYPRESS_INSTALL_BINARY: 0
PUPPETEER_SKIP_DOWNLOAD: true
run: npm ci

- name: Lint
run: npm run lint

summary:
permissions:
contents: none
runs-on: ubuntu-latest
needs: [changes, lint]

if: always()

# This is the summary, we just avoid to rename it so that branch protection rules still match
name: eslint

steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.lint.result != 'success' }}; then exit 1; fi
17 changes: 0 additions & 17 deletions .github/workflows/lint.yml

This file was deleted.

110 changes: 110 additions & 0 deletions .github/workflows/node-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
#
# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT

name: Node tests

on:
pull_request:
push:
branches:
- main
- master
- stable*

permissions:
contents: read

concurrency:
group: node-tests-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
changes:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read

outputs:
src: ${{ steps.changes.outputs.src}}

steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '__tests__/**'
- '__mocks__/**'
- 'src/**'
- 'appinfo/info.xml'
- 'package.json'
- 'package-lock.json'
- 'tsconfig.json'
- '**.js'
- '**.ts'
- '**.vue'
test:
runs-on: ubuntu-latest

needs: changes
if: needs.changes.outputs.src != 'false'

steps:
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7

- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
with:
fallbackNode: '^20'
fallbackNpm: '^10'

- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}

- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'

- name: Install dependencies & build
env:
CYPRESS_INSTALL_BINARY: 0
run: |
npm ci
npm run build --if-present
- name: Test
run: npm run test --if-present

- name: Test and process coverage
run: npm run test:coverage --if-present

- name: Collect coverage
uses: codecov/codecov-action@125fc84a9a348dbcf27191600683ec096ec9021c # v4.4.1
with:
files: ./coverage/lcov.info

summary:
permissions:
contents: none
runs-on: ubuntu-latest
needs: [changes, test]

if: always()

name: test-summary

steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.test.result != 'success' }}; then exit 1; fi
1 change: 0 additions & 1 deletion .npmignore

This file was deleted.

11 changes: 11 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: CC0-1.0

# version control systems directories
**/.git

# 3rdparty dependencies
**/node_modules

# Compiled JS output
dist/
26 changes: 19 additions & 7 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,34 @@
All notable changes to this project will be documented in this file.

## 2.0.0 – 2021-04-07

### Changed
- Browserslist config updates, which means some older browsers are no longer supported
- Dependency updates

- Browserslist config updates, which means some older browsers are no longer supported
- Dependency updates

## 1.1.2 - 2020-04-06

### Changed
- Dependency updates

- Dependency updates

### Fixed
- Update vulnerable packages

- Update vulnerable packages

## 1.1.1 - 2020-03-19

### Changed
- Dependency updates

- Dependency updates

### Fixed
- Update vulnerable packages

- Update vulnerable packages

## 1.1.0 - 2020-01-08

### Changed
- Updated documentation

- Updated documentation
12 changes: 0 additions & 12 deletions babel.config.js

This file was deleted.

19 changes: 19 additions & 0 deletions lib/index.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/**
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: CC0-1.0
*/
import { expect, test } from 'vitest'
import { Type } from '.'

test('ShareType', () => {
for (const type of Object.values(Type)) {
if (typeof type === 'string') {
// This should be the key of the enum, so we should be able to get the value
// eslint-disable-next-line @typescript-eslint/no-explicit-any
expect((Type as any)[type]).toBeTypeOf('number')
} else {
expect(type).toBeTypeOf('number')
expect(Type[type]).toBeTypeOf('string')
}
}
})
26 changes: 14 additions & 12 deletions lib/index.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
export enum Type {
SHARE_TYPE_USER = 0,
SHARE_TYPE_GROUP = 1,
SHARE_TYPE_LINK = 3,
SHARE_TYPE_EMAIL = 4,
SHARE_TYPE_REMOTE = 6,
SHARE_TYPE_CIRCLE = 7,
SHARE_TYPE_GUEST = 8,
SHARE_TYPE_REMOTE_GROUP = 9,
SHARE_TYPE_ROOM = 10,
SHARE_TYPE_DECK = 12,
/** @since Nextcloud 26.0.0 */
SHARE_TYPE_FEDERATED_GROUP = 14,
SHARE_TYPE_USER = 0,
SHARE_TYPE_GROUP = 1,
SHARE_TYPE_LINK = 3,
SHARE_TYPE_EMAIL = 4,
SHARE_TYPE_REMOTE = 6,
SHARE_TYPE_CIRCLE = 7,
SHARE_TYPE_GUEST = 8,
SHARE_TYPE_REMOTE_GROUP = 9,
SHARE_TYPE_ROOM = 10,
SHARE_TYPE_DECK = 12,
/**
* @since 26.0.0
*/
SHARE_TYPE_FEDERATED_GROUP = 14,
}
Loading

0 comments on commit e186677

Please sign in to comment.