1.8.151 • Published 1 year ago

@gapi/ac v1.8.151

Weekly downloads
73
License
MIT
Repository
github
Last release
1 year 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.151

1 year ago

1.8.150

1 year ago

1.8.146

2 years ago

1.8.147

2 years ago

1.8.148

2 years ago

1.8.149

2 years ago

1.8.145

2 years ago

1.8.144

2 years ago

1.8.142

2 years ago

1.8.143

2 years ago

1.8.141

2 years ago

1.8.140

2 years ago

1.8.139

2 years ago

1.8.135

2 years ago

1.8.136

2 years ago

1.8.137

2 years ago

1.8.138

2 years ago

1.8.131

3 years ago

1.8.132

3 years ago

1.8.133

3 years ago

1.8.134

3 years ago

1.8.130

3 years ago

1.8.128

4 years ago

1.8.129

4 years ago

1.8.127

4 years ago

1.8.126

4 years ago

1.8.125

4 years ago

1.8.122

4 years ago

1.8.123

4 years ago

1.8.124

4 years ago

1.8.119

4 years ago

1.8.120

4 years ago

1.8.121

4 years ago

1.8.118

4 years ago

1.8.117

4 years ago

1.8.116

4 years ago

1.8.114

4 years ago

1.8.115

4 years ago

1.8.113

4 years ago

1.8.108

4 years ago

1.8.109

4 years ago

1.8.110

4 years ago

1.8.111

4 years ago

1.8.112

4 years ago

1.8.107

4 years ago

1.8.106

4 years ago

1.8.104

4 years ago

1.8.105

4 years ago

1.8.103

4 years ago

1.8.102

4 years ago

1.8.101

4 years ago

1.8.99

5 years ago

1.8.100

5 years ago

1.8.98

5 years ago

1.8.97

5 years ago

1.8.96

5 years ago

1.8.92

5 years ago

1.8.93

5 years ago

1.8.94

5 years ago

1.8.91

5 years ago

1.8.89

5 years ago

1.8.90

5 years ago

1.8.88

5 years ago

1.8.87

5 years ago

1.8.84

5 years ago

1.8.85

5 years ago

1.8.86

5 years ago

1.8.83

5 years ago

1.8.82

5 years ago

1.8.81

5 years ago

1.8.80

5 years ago

1.8.79

5 years ago

1.8.76

5 years ago

1.8.77

5 years ago

1.8.78

5 years ago

1.8.75

5 years ago

1.8.74

5 years ago

1.8.73

5 years ago

1.8.70

5 years ago

1.8.71

5 years ago

1.8.72

5 years ago

1.8.68

5 years ago

1.8.69

5 years ago

1.8.67

5 years ago

1.8.66

5 years ago

1.8.65

5 years ago

1.8.64

5 years ago

1.8.61

5 years ago

1.8.62

5 years ago

1.8.63

5 years ago

1.8.59

5 years ago

1.8.60

5 years ago

1.8.55

5 years ago

1.8.56

5 years ago

1.8.57

5 years ago

1.8.58

5 years ago

1.8.53

5 years ago

1.8.54

5 years ago

1.8.52

5 years ago

1.8.51

5 years ago