hasura-utils v1.0.6
hasura-utils
- Installation
- Synopsis
- Details
- API
- hasura-utils
- Classes
- Class: HasuraUtils
- Interfaces
- Interface: HasuraTableName
- Interface: MetaData
- Interface: Options
Installation
Synopsis
Details
API
hasura-utils
Type aliases
NameFunction
Ƭ NameFunction: function
Defined in index.ts:48
Type declaration:
▸ (table: string, schema?: undefined | string): string
Parameters:
| Name | Type |
|---|---|
table | string |
schema? | undefined | string |
Operation
Ƭ Operation: "insert" | "select" | "update" | "delete"
Defined in index.ts:49
TableFilterFunction
Ƭ TableFilterFunction: function
Defined in index.ts:50
Type declaration:
▸ (table: Table): boolean
Parameters:
| Name | Type |
|---|---|
table | Table |
Variables
Const OPERATIONS
• OPERATIONS: Operation[] = "insert", "select", "update", "delete"
Defined in index.ts:30
Functions
_untrackTable
▸ _untrackTable(table: string, schema: string): object
Defined in migration-commands/untrack-table.ts:1
Parameters:
| Name | Type | Default |
|---|---|---|
table | string | - |
schema | string | "public" |
Returns: object
type: string = "untrack_table"
args: object
table: object
name: string = table
schema: string
createDeletePermission
▸ createDeletePermission(table: string, schema: string, __namedParameters: object): object
Defined in migration-commands/create-delete-permission.ts:3
Parameters:
▪ table: string
▪Default value schema: string= "public"
▪ __namedParameters: object
| Name | Type |
|---|---|
role | string |
filter | object |
Returns: object
createInsertPermission
▸ createInsertPermission(table: string, schema: string, __namedParameters: object): object
Defined in migration-commands/create-insert-permission.ts:3
Parameters:
▪ table: string
▪Default value schema: string= "public"
▪ __namedParameters: object
| Name | Type | Default |
|---|---|---|
columns | string[] | [] |
filter | object | - |
role | string | - |
set | object | - |
Returns: object
createSelectPermission
▸ createSelectPermission(table: string, schema: string, __namedParameters: object): object
Defined in migration-commands/create-select-permission.ts:3
Parameters:
▪ table: string
▪Default value schema: string= "public"
▪ __namedParameters: object
| Name | Type | Default |
|---|---|---|
allowAggregations | boolean | false |
columns | string[] | [] |
computedFields | undefined | string[] | - |
limit | number | 10000 |
role | string | - |
filter | object | - |
Returns: object
createUpdatePermission
▸ createUpdatePermission(table: string, schema: string, __namedParameters: object): object
Defined in migration-commands/create-update-permission.ts:3
Parameters:
▪ table: string
▪Default value schema: string= "public"
▪ __namedParameters: object
| Name | Type | Default |
|---|---|---|
columns | string[] | [] |
role | string | - |
set | undefined | object | - |
filter | object | - |
Returns: object
dropPermission
▸ dropPermission(table: string, schema: string, __namedParameters: object): object
Defined in migration-commands/drop-permission.ts:3
Parameters:
▪ table: string
▪Default value schema: string= "public"
▪ __namedParameters: object
| Name | Type |
|---|---|
operation | "insert" | "select" | "update" | "delete" |
role | string |
Returns: object
formatAndWriteData
▸ formatAndWriteData<T>(data: T, format?: "json" | "yaml", file?: undefined | string): Promise‹string | T›
Defined in helper.ts:8
Type parameters:
▪ T
Parameters:
| Name | Type |
|---|---|
data | T |
format? | "json" | "yaml" |
file? | undefined | string |
Returns: Promise‹string | T›
getColumnNames
▸ getColumnNames(table: Table, exclude: string[]): string[]
Defined in helper.ts:93
Parameters:
| Name | Type |
|---|---|
table | Table |
exclude | string[] |
Returns: string[]
getHasuraCacheRedirectMapSource
▸ getHasuraCacheRedirectMapSource(map: Record‹string, string›): string
Defined in helper.ts:49
Parameters:
| Name | Type |
|---|---|
map | Record‹string, string› |
Returns: string
getMultipleObjectName
▸ getMultipleObjectName(table: string, schema?: undefined | string): string
Defined in helper.ts:45
Returns multiple object name used by Hasura for given PostgreSQL table.
Parameters:
| Name | Type | Description |
|---|---|---|
table | string | is the table name to create single result name. |
schema? | undefined | string | - |
Returns: string
single object name.
getSingleObjectName
▸ getSingleObjectName(table: string, schema?: undefined | string): string
Defined in helper.ts:35
Returns single object name used by Hasura for given PostgreSQL table.
Parameters:
| Name | Type | Description |
|---|---|---|
table | string | is the table name to create single result name. |
schema? | undefined | string | - |
Returns: string
single object name.
getTableName
▸ getTableName(table: string, schema?: undefined | string): string
Defined in helper.ts:25
Parameters:
| Name | Type |
|---|---|
table | string |
schema? | undefined | string |
Returns: string
trackTable
▸ trackTable(table: string, schema: string, options: object): object
Defined in migration-commands/track-table.ts:4
Parameters:
▪ table: string
▪ schema: string
▪ options: object
| Name | Type |
|---|---|
getMultipleObjectName | NameFunction |
getSingleObjectName | NameFunction |
getTableName | NameFunction |
Returns: object
type: string = "track_table"
version: number = 2
args: object
configuration: object
custom_root_fields: object
delete: string =
delete${camelize(options.getMultipleObjectName(table, schema))}insert: string =
add${camelize(options.getMultipleObjectName(table, schema))}select: string = options.getMultipleObjectName(table, schema)
select_aggregate: string =
${camelize(options.getTableName(table, schema), true)}Aggregateselect_by_pk: string = options.getSingleObjectName(table, schema)
update: string =
update${camelize(options.getMultipleObjectName(table, schema))}
table: object
name: string = table
schema: string
writeMigration
▸ writeMigration(dir: string, up: object, down: object): Promise‹any›
Defined in helper.ts:21
Parameters:
| Name | Type |
|---|---|
dir | string |
up | object |
down | object |
Returns: Promise‹any›
Object literals
Const PERMISSION_FUNCTION
▪ PERMISSION_FUNCTION: object
Defined in index.ts:31
delete
• delete: createDeletePermission = createDeletePermission
Defined in index.ts:35
insert
• insert: createInsertPermission = createInsertPermission
Defined in index.ts:32
select
• select: createSelectPermission = createSelectPermission
Defined in index.ts:33
update
• update: createUpdatePermission = createUpdatePermission
Defined in index.ts:34
Classes
Class: HasuraUtils
Hierarchy
- HasuraUtils
Methods
getMetaData
▸ getMetaData(): Promise‹MetaData›
Defined in index.ts:128
Returns: Promise‹MetaData›
getTrackedTables
▸ getTrackedTables(): Promise‹Table[]›
Defined in index.ts:140
Returns: Promise‹Table[]›
writeHasureCacheRedirectMap
▸ writeHasureCacheRedirectMap(file: string, __namedParameters: object): Promise‹string›
Defined in index.ts:206
Creates typescript file for mapping (single object name -> table name) to be used with cache redirects.
Example
import { InMemoryCache, CacheResolver } from "apollo-cache-inmemory";
function getHasuraCacheRedirects(redirectMap: Record<string, string>): Record<string, CacheResolver> {
const result: Record<string, CacheResolver> = {};
Object.entries(redirectMap).forEach(([singleRecordName, tableName]) => {
result[singleRecordName] = (_, args, { getCacheKey }) => getCacheKey({ __typename: tableName, id: args.id });
});
return result;
}
const cache: InMemoryCache = new InMemoryCache({
cacheRedirects: {
Query: { ...getHasuraCacheRedirects(apolloCacheRedirectMap) }
}
});see https://www.apollographql.com/docs/react/performance/performance/
Parameters:
▪ file: string
is the file to wirte mapping.
▪Default value __namedParameters: object= {}
| Name | Type | Default |
|---|---|---|
onlyTracked | boolean | false |
filter | - |
Returns: Promise‹string›
writeMigrationsCreatePermissions
▸ writeMigrationsCreatePermissions(__namedParameters: object): Promise‹string | object›
Defined in index.ts:145
Parameters:
▪ __namedParameters: object
| Name | Type |
|---|---|
dir | string |
filter | undefined | function |
role | string |
set | undefined | object |
excludeColumns | object |
Returns: Promise‹string | object›
writeMigrationsTrackTable
▸ writeMigrationsTrackTable(__namedParameters: object): Promise‹any›
Defined in index.ts:172
Parameters:
▪ __namedParameters: object
| Name | Type |
|---|---|
dir | string |
filter | undefined | function |
Returns: Promise‹any›
Static create
▸ create(__namedParameters: object): Promise‹HasuraUtils›
Defined in index.ts:92
Parameters:
▪Default value __namedParameters: object= {} as any
| Name | Type | Default | ||
|---|---|---|---|---|
adminSecret | string | process.env"X-HASURA-ADMIN-SECRET" | "" | |
database | string | - | ||
includeSchemas | string[] | "public" | ||
multipleObjectNameFunction | function | getMultipleObjectName | ||
password | string | - | ||
singleObjectNameFunction | function | getSingleObjectName | ||
tableNameFunction | function | getTableName | ||
url | string | process.env"GRAPHQL-URL" | "http://localhost:8080/v1/query" | |
user | string | - |
Returns: Promise‹HasuraUtils›
Interfaces
hasura-utils › HasuraTableName
Interface: HasuraTableName
Hierarchy
- HasuraTableName
Properties
name
• name: string
Defined in index.ts:40
schema
• schema: string
Defined in index.ts:39
Interface: MetaData
Hierarchy
- MetaData
Properties
tables
• tables: Array‹object›
Defined in index.ts:45
version
• version: number
Defined in index.ts:44
Interface: Options
Hierarchy
- Options
Properties
Optional adminSecret
• adminSecret? : undefined | string
Defined in index.ts:54
database
• database: string
Defined in index.ts:55
Optional includeSchemas
• includeSchemas? : string[]
Defined in index.ts:58
Optional multipleObjectNameFunction
• multipleObjectNameFunction? : NameFunction
Defined in index.ts:60
password
• password: string
Defined in index.ts:57
Optional singleObjectNameFunction
• singleObjectNameFunction? : NameFunction
Defined in index.ts:59
Optional tableNameFunction
• tableNameFunction? : NameFunction
Defined in index.ts:61
Optional url
• url? : undefined | string
Defined in index.ts:53
user
• user: string
Defined in index.ts:56