nextcloud / cdav-library

:date: 📇 CalDAV and CardDAV client library for JavaScript
https://www.npmjs.com/package/@nextcloud/cdav-library
GNU Affero General Public License v3.0
64 stars 15 forks source link

General-purpose WebDAV library #142

Open georgehrke opened 5 years ago

georgehrke commented 5 years ago

We should turn this library into a general-purpose webdav library. A plugin system should allow for extensibility.

CalDAV and CardDAV should be moved out of the core lib and into their own plugins. (Their API should remain the same though)

Additional plugins that are needed for the Files App:

It should be enough if the core lib provides:

(The entire principal stuff should be part of the CalDAV / CardDAV plugin)

georgehrke commented 4 years ago

@skjnldsv Do you think it's still worth it or are we happy enough with webdav in Photos and Files?

skjnldsv commented 4 years ago

Well, so far I am happy with those, but i'm just basically doing propfind and other simple stuff.

We need to decide what is our real goal here. DO we want to make a general dav api? Do we want to create a dedicated wrapper with nextcloud functions?

I'm torn between a simple library that is easy to maintain and a complex one that reduce our implementation as devs :grin:

skjnldsv commented 4 years ago

Though maybe it can be worth to not create a new one but to improve the webdav one ? The open source world have everything to gain here, and us too I think.

Considering the webdav lib is already providing us the necessary steady base that fits our needs. If we need to change too much for our purpose, it won't make sense.

wilbowma commented 3 years ago

FWIW, another node project already does this: https://github.com/lambdabaa/dav

skjnldsv commented 3 years ago

@wilbowma https://github.com/lambdabaa/dav is a dead project. We are using https://github.com/perry-mitchell/webdav-client in some part of Nextcloud now

oliveiraigorm commented 2 years ago

I'm developing an app for nextcloud and I believe you module would help me a ton, can someone provide the basic usage, because I'm quite lost here. Thanks!