GithubHelp home page GithubHelp logo

hileomsi / usefeathers Goto Github PK

View Code? Open in Web Editor NEW
4.0 3.0 0.0 3.14 MB

React Hooks + FeathersJS = useFeathers. Increase productivity in building small and medium applications.

License: MIT License

HTML 14.21% CSS 0.94% JavaScript 84.85%

usefeathers's Introduction

useFeathers

โš“๏ธ React Hooks + FeathersJS = useFeathers. Increase productivity in building small and medium applications. ๐Ÿš€

Hooks

  • useFeathers
  • useFind
  • useGet
  • useCreate
  • usePatch
  • useUpdate
  • useRemove
  • useRealtime
  • useAuthenticate
  • useLogout
  • useAuthenticationEvents

Additional features

  • Paginate
  • Realtime
  • Realtime deep populate
  • Custom filter realtime
  • Cache

Install

Use yarn

yarn add usefeathers

or use npm

npm i usefeathers --save 

Demo

Example

useFeathers

Set instante feathers client for initilalization hooks.

import io from 'socket.io-client';
import feathers from '@feathersjs/feathers';
import socketio from '@feathersjs/socketio-client';
import auth from '@feathersjs/authentication-client';
import useFeathers from 'usefeathers';

const URL = 'http://localhost:3030';

const socket = io(URL);
const feathers = feathers()
  .configure(socketio(socket))
  .configure(auth({
    storage: window.localStorage
  }));

useFeathers(feathers);

useFind

import { useFind } from 'usefeathers';

const [users, loading, error] = useFind('users', query);
// OR
const [fetchUsers, users, loading, error] = useFind(() => 'users');
const response = await fetchUsers(query); // return Promise;
// OR
const options = { paginate: true }; // optional
const [{ data }, loading, error, fetchMore] = useFind('users', query, options);
// OR
const options = { paginate: true }; // optional
const [fetchUsers, users, loading, error, fetchMore] = useFind(() => 'users', options);
const options = {
	paginate: true || false,
	realtime: true || false // watch events created, patched, updated, removed, and automatically make the changes 
};

useGet

import { useGet } from 'usefeathers';

const options = { realtime: true }; // optional
const [user, loading, error] = useGet('users', id, query, options);
// OR
const [getUser, user, loading, error] = useGet(() => 'users', options);
const response = await getUser(id, query); // return Promise
const options = {
	realtime: true || false
};

useCreate

import { useCreate } from 'usefeathers';

const [user, loading, error] = useCreate('users', {
	name: 'foo',
	email: '[email protected]'
}, query);
// OR
const [createUser, user, loading, error] = useCreate(() => 'users');
const response = await createUsers(data, query); // return Promise

// query optional

usePatch

import { usePatch } from 'usefeathers';

const [user, loading, error] = usePatch('users', id, {
	name: 'foo',
	email: '[email protected]'
}, query);
// OR
const [patchUser, user, loading, error] = usePatch(() => 'users');
const response = await patchUser(id, data, query); // return Promise

// query optional

useUpdate

import { useUpdate } from 'usefeathers';

const [user, loading, error] = useUpdate('users', id, {
	name: 'foo',
	email: '[email protected]'
}, query);
// OR
const [updateUser, user, loading, error] = useUpdate(() => 'users');
const response = await updateUser(id, data, query); // return Promise

// query optional

useRemove

import { useRemove } from 'usefeathers';

const [user, loading, error] = useRemove('users', id, query);
// OR
const [removeUser, user, loading, error] = useRemove(() => 'users');
const response = await removeUser(id, query); // return Promise

// query optional

useRealtime

import { useRealtime } from 'usefeathers';

// events "created", "patched", "updated", "removed"

const [userCreated] = useRealtime('users', 'created');
// OR
const [userCreated] = useRealtime('users', 'created', (userCreated) => {
	console.log('created => ', userCreated);
});

useAuthenticate / useLogout / useAuthenticationEvents

import { useAuthenticate, useLogout, useAuthenticationEvents } from 'usefeathers';

const [authenticate, dataAuth, authenticated, loading, error] = useAuthenticate();
const [logout] = useLogout();
const response = useAuthenticationEvents('authenticated', (...args) => {
	console.log('event authenticated => ', args);
});

// events "authenticated", "logout", "reauthentication-error"

License

usefeathers's People

Contributors

hileomsi avatar

Stargazers

William Hart avatar Ahmet Simsek avatar Wietse Neven avatar Luiz Fernando avatar

Watchers

James Cloos avatar Brad Hick avatar  avatar

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.