Coder Social home page Coder Social logo

plugins's Introduction

dprint

CI Homebrew

Monorepo for dprint—a pluggable and configurable code formatting platform.

Links

Plugins

Notes

This repo is under active early development.

  1. The interface between the CLI and plugins might change often. You may need to keep updating to the latest version of both the CLI and plugins (the CLI will let you know what to do).
    • An upgrade path will be outlined in the release notes when this occurs.
  2. I do a lot of this development in my spare time. Please consider sponsoring if you are a commercial company using this.

plugins's People

Contributors

dsherret avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

myobie malobre

plugins's Issues

Do not store plugins in git

Instead of storing the plugins in git, this site should instead be a redirect service to github release assets. It could basically match a url like https://plugins.dprint.dev/typescript-x.x.x.wasm and know to redirect to https://github.com/dprint/dprint-plugin-typescript/releases/download/0.19.9/typescript-0.19.9.wasm

Future things, when I have time.

Trigger workflow run when plugin's repo changes

At the current moment, some of the plugins checkout this repo and push an update to info.json. This should be changed instead for this repo to run a workflow that updates info.json when any of the plugins are published.

Store old redirects in file

Now that all plugins have standardized to plugin.wasm and plugin.exe-plugin in the GH releases along with having standardized schema file locations, most of the complex redirect logic should be removed and instead a file can be generated that maps all the old redirects. This file would be loaded on startup and paths would be checked against it.

Redirect for any GitHub repo

It might be neat to provide a url for a redirect to user repos for wasm plugins.

# tag names with dashes would not be supported
https://plugins.dprint.dev/<username>/<name>-<tag-name>.wasm
# goes to (if exists)
https://github.com/<username>/dprint-plugin-<name>/releases/download/<tag-name>/plugin.wasm
# goes to (if not repo exists) -- this same behaviour with the repo name happens for the other urls too
https://github.com/<username>/<name>/releases/download/<tag-name>/plugin.wasm

https://plugins.dprint.dev/<username>/<name>-latest.wasm
# goes to
https://github.com/<username>/dprint-plugin-<name>/releases/latest/download/plugin.wasm

https://plugins.dprint.dev/<username>/<name>-<tag-name>/schema.json
# goes to
https://github.com/<username>/dprint-plugin-<name>/releases/download/<tag-name>/schema.json

https://plugins.dprint.dev/<username>/<name>-latest/schema.json
# goes to
https://github.com/<username>/dprint-plugin-<name>/releases/latest/download/schema.json

The dprint-plugin- would be implicitly added if a repo exists at dprint-plugin-<name>, but you could always specify the full path to the repo.

This would also allow the site to provide special handling to make these wasm plugins work in the dprint playground when providing a custom url.

info.json file should be dynamically generated

Now that this is a deploy app instead of a static github pages site, it doesn't make sense for the plugin repos to update this repo.

  1. Remove ./scripts/replace-plugin.js
  2. Store the "latest" urls as a key in info.json, but then make the version and url keys dynamically generated for when the file gets served.
  3. Remove the caching for the homepage render.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.