skinview3d icon indicating copy to clipboard operation
skinview3d copied to clipboard

Bindings of skinview3d

Open g-plane opened this issue 2 years ago • 21 comments

I'm going to create some packages which are bindings of skinview3d for some popular front-end frameworks/libraries. These packages will provide components and accept properties then pass them to skinview3d.

Currently these frameworks are considered:

  • React
  • Preact
  • Svelte
  • Vue.js 3

The frameworks below will not be supported:

  • Angular
  • Vue.js 2

Additionally, I'm going to create a special binding which will provide Web Components. This allows users to use it if they don't use any front-end frameworks or they're using unsupported frameworks we mentioned above. (Angular and Vue.js 2 support Web Components.)

I've noticed that @Hacksore has created a package for React: Hacksore/react-skinview3d, but it doesn't provide "many options" to let users control the behavior of skinview3d. Personally, I think it could be reasonable since it keeps simple for those users who don't care too much. But for some advanced users, such as Blessing Skin, it's not enough, so I'm not sure if we need to create another binding (It doesn't mean it will replace @Hacksore 's package.), and I'd like to hear from @Hacksore .

g-plane avatar Feb 09 '22 07:02 g-plane

@g-plane I wouldn't mind if we move react-skinview3d to this org and give it a more concise and extensible API.

Don't really have much experience with creating ng/Vue libraries though.

Hacksore avatar Feb 09 '22 12:02 Hacksore

It can be a breaking change if API of react-skinview3d changed hugely, which may confuse users.

g-plane avatar Feb 09 '22 13:02 g-plane

I'd say confusion is possible but that's what major versions are for 😅.

Hacksore avatar Feb 09 '22 16:02 Hacksore

I may put all binding packages into a monorepo. Do we have a nice way to migrate that?

g-plane avatar Feb 10 '22 03:02 g-plane

Not really but you can take the source of mine.

What monorepo tool do you plan on using?

Hacksore avatar Feb 14 '22 13:02 Hacksore

Just pnpm, nothing else.

g-plane avatar Feb 14 '22 14:02 g-plane

Would it be a good idea to maybe scope these packages like @bs-community/react-skinview3d, @bs-community/vue-skinview3d etc?

Not sure there is an npm org set up for this but something we could here input on from @yushijinhun.

Hacksore avatar Feb 14 '22 16:02 Hacksore

I'd like that the npm organization name can be "skinview3d", and they will be "@skinview3d/react" and "@skinview3d/vue", etc.

g-plane avatar Feb 15 '22 01:02 g-plane

Hi 👋 I have decided to make a vue binding of skinview3d. Please let me know if you want to put it in a monorepo :)

so1ve avatar Jun 11 '23 15:06 so1ve

Welcome.

g-plane avatar Jun 11 '23 15:06 g-plane

Here it is: https://github.com/so1ve/vue-skinview3d

so1ve avatar Jun 12 '23 10:06 so1ve

Been keeping react-skinview3d updated as well. Initially the wrapper was very opinionated and lacking support for much customization but now you should be able to do almost anything skinview3d can.

I've created the npm organization skinview3d so let's get all the binds created separately then we can merge them into a monrepo.

@g-plane I'd prefer to use turborepo for the monorepo, do you have objections?

Current standing of bindings so far some of which may never happen.

  • [x] react
  • [x] vue
  • [ ] preact
  • [ ] svelt
  • [ ] solidjs
  • [ ] angular

Hacksore avatar Jun 12 '23 13:06 Hacksore

I prefer Turborepo too.

g-plane avatar Jun 12 '23 13:06 g-plane

I can create a binding for solid too, but I'd like to work on it after we merge the existing bindings into a monorepo to reduce workload.

so1ve avatar Jun 12 '23 15:06 so1ve

@g-plane do you want to still continue this or should we close out this issue?

Hacksore avatar Aug 09 '23 22:08 Hacksore

I don't have time on working on this, but I think we can keep this open for those interested in it.

g-plane avatar Aug 10 '23 01:08 g-plane

@g-plane can you create a new repo and we can move this issue to it?

Hacksore avatar Sep 03 '23 17:09 Hacksore

I think we can turn this repo into monorepo by using pnpm.

g-plane avatar Sep 04 '23 01:09 g-plane

@g-plane but I think it's better to keep the source separated from lib bindings.

Hacksore avatar Sep 04 '23 01:09 Hacksore

@yushijinhun How do you think?

g-plane avatar Sep 04 '23 02:09 g-plane

In principle, nothing prevents you from leaving the main skinview3d library here and creating a separate mono repository for bindings. By the way, I can also help with this.

JoCat avatar Jan 10 '24 09:01 JoCat