Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hahow/jwplayer-plugins
This is the monorepo of the JW Player plugins that hahow is using
https://github.com/hahow/jwplayer-plugins
jwplayer jwplayer-plugin
Last synced: about 1 month ago
JSON representation
This is the monorepo of the JW Player plugins that hahow is using
- Host: GitHub
- URL: https://github.com/hahow/jwplayer-plugins
- Owner: hahow
- Created: 2022-09-02T08:03:38.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-28T09:26:35.000Z (9 months ago)
- Last Synced: 2024-11-09T13:06:44.284Z (about 1 month ago)
- Topics: jwplayer, jwplayer-plugin
- Language: TypeScript
- Homepage: https://hahow.github.io/jwplayer-plugins/
- Size: 4.56 MB
- Stars: 1
- Watchers: 6
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# JW Player Plugins
This is the monorepo of the [JW Player](https://www.jwplayer.com/) plugins that @hahow is using.
powered by:
- [Turborepo](https://turborepo.org/) — High-performance build system for Monorepos
- [Storybook](https://storybook.js.org/) — UI component environment powered by Vite
- [Tsup](https://github.com/egoist/tsup) — TypeScript bundler powered by esbuild
- [Changesets](https://github.com/changesets/changesets) - for managing versioning and changelogs
- [GitHub Actions](https://github.com/changesets/action) - for fully automated package publishingAs well as a few others tools preconfigured:
- [TypeScript](https://www.typescriptlang.org/) for static type checking
- [ESLint](https://eslint.org/) for code linting
- [Prettier](https://prettier.io) for code formatting## What's inside?
This turborepo uses [npm](https://www.npmjs.com/) as a package manager. It includes the following packages/apps:
### Apps and Packages
- `apps/docs`: a [Storybook](https://storybook.js.org/) app
- `packages/jwplayer-plugins-full-viewport`: a JW Player plugin that allows users to switch the video player to full-viewport size mode
- `packages/jwplayer-plugins-screenshot`: a JW Player plugin that allows users to capture the current frame and download it as a PNG image
- `packages/jwplayer-plugins-track-notes`: a JW Player plugin that allows users to mark notes on the player's timeline
- `packages/jwplayer-plugins-watermark`: a JW Player plugin that allows to display watermarks on the video player
- `packages/eslint-config-custom`: `eslint` configurations (includes `eslint-config-prettier`)
- `packages/tsconfig`: `tsconfig.json`s used throughout the monorepo## Usage
Please refer to the [Documentation](https://hahow.github.io/jwplayer-plugins/)
## Contributing
### Installation
1. Clone the repo
```
git clone [email protected]:hahow/jwplayer-plugins.git
```2. Install NPM packages
```
npm install
```### Commands
- `npm run build` - Build all packages including the Storybook site
- `npm run dev` - Run all packages locally and preview with Storybook
- `npm run lint` - Lint all packages
- `npm run clean` - Clean up all node_modules and dist folders (runs each package's clean script)
- `npm run changeset` - Generate a changesetTurborepo enables us to "hoist" dependencies that are shared between packages to the root `package.json`. This means smaller `node_modules` folders and a better local dev experience. To install a dependency for the entire monorepo, use the `-w` workspaces flag with `npm install`:
```bash
# Install npm package only for apps/docs
npm install some-package -w=docs# Install npm package only for packages/jwplayer-plugin-watermark
npm install some-package -w=packages/jwplayer-plugin-watermark# Linting apps/docs
npm run lint -w=docs# Build the specified package
npm run build -w=packages/jwplayer-plugin-watermark
```### Versioning & Publishing Packages
This repository uses [Changesets](https://github.com/changesets/changesets) to manage versions, create changelogs, and publish to npm. It's preconfigured so you can start publishing packages immediately.
#### Generating the Changelog
To generate your changelog, run `npm run changeset` locally:
1. **Which packages would you like to include?** – This shows which packages and changed and which have remained the same. By default, no packages are included. Press `space` to select the packages you want to include in the `changeset`.
1. **Which packages should have a major bump?** – Press `space` to select the packages you want to bump versions for.
1. If doing the first major version, confirm you want to release.
1. Write a summary for the changes.
1. Confirm the changeset looks as expected.
1. A new Markdown file will be created in the `changeset` folder with the summary and a list of the packages included.### Releasing
When you merge your code to GitHub, the [GitHub Action](https://github.com/changesets/action) will run the `release` script defined in the root `package.json`.