1.8.150 • Published 3 months ago

@gapi/ac v1.8.150

Weekly downloads
73
License
MIT
Repository
github
Last release
3 months ago
import { AccessControl, Union } from '@gapi/ac';

enum GraphqlActions {
  query,
  mutation,
  subscription,
  event,
}

enum Roles {
  GUEST,
  USER,
  ADMIN,
}

interface IQuery {
  status: {
    status: number;
  };
}

const Permissions: Union<typeof Roles, IQuery, typeof GraphqlActions> = {
  GUEST: {
    status: {
      query: {
        enabled: false,
      },
    },
  },
  USER: {
    status: {
      query: {
        enabled: true,
        attributes: {
          status: false,
        },
      },
    },
  },
  ADMIN: {
    status: {
      query: {
        enabled: true,
      },
    },
  },
};

const ac = new AccessControl<
  typeof Roles,
  IQuery & ISubscription & IMutation,
  typeof GraphqlActions
>(Permissions);

const canAdminQueryStatus = ac.can('ADMIN', 'query', 'status');
const canAdminQueryStatus = ac.can('USER', 'query', 'status');

if (!canAdminQueryStatus) {
  throw new Error('You are not authorized');
}

const data = { status: 200 };
const filteredData = await ac.filter('USER', 'query', 'status')(data);
filteredData; // { status: null }
1.8.150

3 months ago

1.8.146

10 months ago

1.8.147

10 months ago

1.8.148

10 months ago

1.8.149

10 months ago

1.8.145

1 year ago

1.8.144

1 year ago

1.8.142

1 year ago

1.8.143

1 year ago

1.8.141

1 year ago

1.8.140

1 year ago

1.8.139

1 year ago

1.8.135

1 year ago

1.8.136

1 year ago

1.8.137

1 year ago

1.8.138

1 year ago

1.8.131

2 years ago

1.8.132

2 years ago

1.8.133

2 years ago

1.8.134

2 years ago

1.8.130

2 years ago

1.8.128

2 years ago

1.8.129

2 years ago

1.8.127

3 years ago

1.8.126

3 years ago

1.8.125

3 years ago

1.8.122

3 years ago

1.8.123

3 years ago

1.8.124

3 years ago

1.8.119

3 years ago

1.8.120

3 years ago

1.8.121

3 years ago

1.8.118

3 years ago

1.8.117

3 years ago

1.8.116

3 years ago

1.8.114

3 years ago

1.8.115

3 years ago

1.8.113

3 years ago

1.8.108

3 years ago

1.8.109

3 years ago

1.8.110

3 years ago

1.8.111

3 years ago

1.8.112

3 years ago

1.8.107

3 years ago

1.8.106

3 years ago

1.8.104

3 years ago

1.8.105

3 years ago

1.8.103

3 years ago

1.8.102

3 years ago

1.8.101

3 years ago

1.8.99

3 years ago

1.8.100

3 years ago

1.8.98

3 years ago

1.8.97

3 years ago

1.8.96

3 years ago

1.8.92

3 years ago

1.8.93

3 years ago

1.8.94

3 years ago

1.8.91

3 years ago

1.8.89

3 years ago

1.8.90

3 years ago

1.8.88

3 years ago

1.8.87

3 years ago

1.8.84

4 years ago

1.8.85

4 years ago

1.8.86

4 years ago

1.8.83

4 years ago

1.8.82

4 years ago

1.8.81

4 years ago

1.8.80

4 years ago

1.8.79

4 years ago

1.8.76

4 years ago

1.8.77

4 years ago

1.8.78

4 years ago

1.8.75

4 years ago

1.8.74

4 years ago

1.8.73

4 years ago

1.8.70

4 years ago

1.8.71

4 years ago

1.8.72

4 years ago

1.8.68

4 years ago

1.8.69

4 years ago

1.8.67

4 years ago

1.8.66

4 years ago

1.8.65

4 years ago

1.8.64

4 years ago

1.8.61

4 years ago

1.8.62

4 years ago

1.8.63

4 years ago

1.8.59

4 years ago

1.8.60

4 years ago

1.8.55

4 years ago

1.8.56

4 years ago

1.8.57

4 years ago

1.8.58

4 years ago

1.8.53

4 years ago

1.8.54

4 years ago

1.8.52

4 years ago

1.8.51

4 years ago