Move 'schema:regen' to the toplevel rake/task/ dir
This commit is contained in:
parent
17dac8909e
commit
f51c9c281d
6 changed files with 81 additions and 89 deletions
|
@ -1,5 +1,6 @@
|
||||||
require "bundler/setup"
|
require "bundler/setup"
|
||||||
|
|
||||||
|
load "rake/tasks/schema.rake"
|
||||||
load "rake/tasks/nanoc.rake"
|
load "rake/tasks/nanoc.rake"
|
||||||
load "rake/tasks/gem.rake"
|
load "rake/tasks/gem.rake"
|
||||||
load "rake/tasks/rubocop.rake"
|
load "rake/tasks/rubocop.rake"
|
||||||
|
|
20
rake/tasks/schema.rake
Normal file
20
rake/tasks/schema.rake
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
namespace :schema do
|
||||||
|
workdir = File.join(__dir__, "..", "..")
|
||||||
|
desc "Regenerate the GraphQL schema (server-side and client-side)"
|
||||||
|
task regen: %i[regen:server regen:client]
|
||||||
|
|
||||||
|
task :'regen:server' do
|
||||||
|
Dir.chdir(workdir) do
|
||||||
|
require "twenty-server"
|
||||||
|
schema = File.join(Dir.getwd, "share", "twenty-server", "schema.graphql")
|
||||||
|
mkdir_p File.dirname(schema)
|
||||||
|
File.binwrite schema, Twenty::GraphQL::Schema.to_definition
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
task :'regen:client' do
|
||||||
|
Dir.chdir(File.join(workdir, "twenty-client")) do
|
||||||
|
sh "npm exec graphql-codegen"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,11 +0,0 @@
|
||||||
require "bundler/setup"
|
|
||||||
namespace :schema do
|
|
||||||
desc "Generate src/js/types/schema.ts"
|
|
||||||
task :regen do
|
|
||||||
path = File.join "..", "twenty-server"
|
|
||||||
Bundler.with_unbundled_env {
|
|
||||||
Dir.chdir(path) { sh "bundle exec rake schema:regen" }
|
|
||||||
}
|
|
||||||
sh "npm exec graphql-codegen"
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,5 +1,5 @@
|
||||||
schema:
|
schema:
|
||||||
- ../twenty-backend/share/twenty-backend/schema.graphql
|
- ../twenty-server/share/twenty-server/schema.graphql
|
||||||
|
|
||||||
generates:
|
generates:
|
||||||
src/js/types/schema.ts:
|
src/js/types/schema.ts:
|
||||||
|
|
|
@ -1,56 +1,43 @@
|
||||||
export type Maybe<T> = T | null;
|
export type Maybe<T> = T | null;
|
||||||
export type InputMaybe<T> = Maybe<T>;
|
export type InputMaybe<T> = Maybe<T>;
|
||||||
export type Exact<T extends { [key: string]: unknown }> = {
|
export type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] };
|
||||||
[K in keyof T]: T[K];
|
export type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> };
|
||||||
};
|
export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> };
|
||||||
export type MakeOptional<T, K extends keyof T> = Omit<T, K> & {
|
export type MakeEmpty<T extends { [key: string]: unknown }, K extends keyof T> = { [_ in K]?: never };
|
||||||
[SubKey in K]?: Maybe<T[SubKey]>;
|
export type Incremental<T> = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never };
|
||||||
};
|
|
||||||
export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & {
|
|
||||||
[SubKey in K]: Maybe<T[SubKey]>;
|
|
||||||
};
|
|
||||||
export type MakeEmpty<
|
|
||||||
T extends { [key: string]: unknown },
|
|
||||||
K extends keyof T,
|
|
||||||
> = { [_ in K]?: never };
|
|
||||||
export type Incremental<T> =
|
|
||||||
| T
|
|
||||||
| {
|
|
||||||
[P in keyof T]?: P extends " $fragmentName" | "__typename" ? T[P] : never;
|
|
||||||
};
|
|
||||||
/** All built-in and custom scalars, mapped to their actual values */
|
/** All built-in and custom scalars, mapped to their actual values */
|
||||||
export type Scalars = {
|
export type Scalars = {
|
||||||
ID: { input: string; output: string };
|
ID: { input: string; output: string; }
|
||||||
String: { input: string; output: string };
|
String: { input: string; output: string; }
|
||||||
Boolean: { input: boolean; output: boolean };
|
Boolean: { input: boolean; output: boolean; }
|
||||||
Int: { input: number; output: number };
|
Int: { input: number; output: number; }
|
||||||
Float: { input: number; output: number };
|
Float: { input: number; output: number; }
|
||||||
/** An ISO 8601-encoded datetime */
|
/** An ISO 8601-encoded datetime */
|
||||||
ISO8601DateTime: { input: any; output: any };
|
ISO8601DateTime: { input: any; output: any; }
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Autogenerated return type of CompleteTask. */
|
/** Autogenerated return type of CompleteTask. */
|
||||||
export type CompleteTaskPayload = {
|
export type CompleteTaskPayload = {
|
||||||
__typename?: "CompleteTaskPayload";
|
__typename?: 'CompleteTaskPayload';
|
||||||
errors?: Maybe<Array<Scalars["String"]["output"]>>;
|
errors?: Maybe<Array<Scalars['String']['output']>>;
|
||||||
ok?: Maybe<Scalars["Boolean"]["output"]>;
|
ok?: Maybe<Scalars['Boolean']['output']>;
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Autogenerated return type of CreateTask. */
|
/** Autogenerated return type of CreateTask. */
|
||||||
export type CreateTaskPayload = {
|
export type CreateTaskPayload = {
|
||||||
__typename?: "CreateTaskPayload";
|
__typename?: 'CreateTaskPayload';
|
||||||
errors: Array<Scalars["String"]["output"]>;
|
errors: Array<Scalars['String']['output']>;
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Autogenerated return type of DestroyTask. */
|
/** Autogenerated return type of DestroyTask. */
|
||||||
export type DestroyTaskPayload = {
|
export type DestroyTaskPayload = {
|
||||||
__typename?: "DestroyTaskPayload";
|
__typename?: 'DestroyTaskPayload';
|
||||||
errors?: Maybe<Array<Scalars["String"]["output"]>>;
|
errors?: Maybe<Array<Scalars['String']['output']>>;
|
||||||
ok?: Maybe<Scalars["Boolean"]["output"]>;
|
ok?: Maybe<Scalars['Boolean']['output']>;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type Mutation = {
|
export type Mutation = {
|
||||||
__typename?: "Mutation";
|
__typename?: 'Mutation';
|
||||||
completeTask?: Maybe<CompleteTaskPayload>;
|
completeTask?: Maybe<CompleteTaskPayload>;
|
||||||
createTask?: Maybe<CreateTaskPayload>;
|
createTask?: Maybe<CreateTaskPayload>;
|
||||||
destroyTask?: Maybe<DestroyTaskPayload>;
|
destroyTask?: Maybe<DestroyTaskPayload>;
|
||||||
|
@ -58,89 +45,96 @@ export type Mutation = {
|
||||||
updateTask?: Maybe<UpdateTaskPayload>;
|
updateTask?: Maybe<UpdateTaskPayload>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
export type MutationCompleteTaskArgs = {
|
export type MutationCompleteTaskArgs = {
|
||||||
taskId: Scalars["Int"]["input"];
|
taskId: Scalars['Int']['input'];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
export type MutationCreateTaskArgs = {
|
export type MutationCreateTaskArgs = {
|
||||||
input: TaskInput;
|
input: TaskInput;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
export type MutationDestroyTaskArgs = {
|
export type MutationDestroyTaskArgs = {
|
||||||
taskId: Scalars["Int"]["input"];
|
taskId: Scalars['Int']['input'];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
export type MutationSetRandomProjectColorArgs = {
|
export type MutationSetRandomProjectColorArgs = {
|
||||||
projectId: Scalars["Int"]["input"];
|
projectId: Scalars['Int']['input'];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
export type MutationUpdateTaskArgs = {
|
export type MutationUpdateTaskArgs = {
|
||||||
input: TaskInput;
|
input: TaskInput;
|
||||||
taskId: Scalars["Int"]["input"];
|
taskId: Scalars['Int']['input'];
|
||||||
};
|
};
|
||||||
|
|
||||||
export type Project = {
|
export type Project = {
|
||||||
__typename?: "Project";
|
__typename?: 'Project';
|
||||||
color: Scalars["String"]["output"];
|
color: Scalars['String']['output'];
|
||||||
id: Scalars["Int"]["output"];
|
id: Scalars['Int']['output'];
|
||||||
name: Scalars["String"]["output"];
|
name: Scalars['String']['output'];
|
||||||
path: Scalars["String"]["output"];
|
path: Scalars['String']['output'];
|
||||||
tasks: Array<Task>;
|
tasks: Array<Task>;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type Query = {
|
export type Query = {
|
||||||
__typename?: "Query";
|
__typename?: 'Query';
|
||||||
findTask?: Maybe<Task>;
|
findTask?: Maybe<Task>;
|
||||||
projects: Array<Project>;
|
projects: Array<Project>;
|
||||||
tasks: Array<Task>;
|
tasks: Array<Task>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
export type QueryFindTaskArgs = {
|
export type QueryFindTaskArgs = {
|
||||||
taskId: Scalars["Int"]["input"];
|
taskId: Scalars['Int']['input'];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
export type QueryTasksArgs = {
|
export type QueryTasksArgs = {
|
||||||
projectId?: InputMaybe<Scalars["Int"]["input"]>;
|
projectId?: InputMaybe<Scalars['Int']['input']>;
|
||||||
status: TaskStatus;
|
status: TaskStatus;
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Autogenerated return type of SetRandomProjectColor. */
|
/** Autogenerated return type of SetRandomProjectColor. */
|
||||||
export type SetRandomProjectColorPayload = {
|
export type SetRandomProjectColorPayload = {
|
||||||
__typename?: "SetRandomProjectColorPayload";
|
__typename?: 'SetRandomProjectColorPayload';
|
||||||
errors: Array<Scalars["String"]["output"]>;
|
errors: Array<Scalars['String']['output']>;
|
||||||
project?: Maybe<Project>;
|
project?: Maybe<Project>;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type Task = {
|
export type Task = {
|
||||||
__typename?: "Task";
|
__typename?: 'Task';
|
||||||
content: Scalars["String"]["output"];
|
content: Scalars['String']['output'];
|
||||||
id: Scalars["Int"]["output"];
|
id: Scalars['Int']['output'];
|
||||||
inProgress: Scalars["Boolean"]["output"];
|
inProgress: Scalars['Boolean']['output'];
|
||||||
isBacklogged: Scalars["Boolean"]["output"];
|
isBacklogged: Scalars['Boolean']['output'];
|
||||||
isComplete: Scalars["Boolean"]["output"];
|
isComplete: Scalars['Boolean']['output'];
|
||||||
isReady: Scalars["Boolean"]["output"];
|
isReady: Scalars['Boolean']['output'];
|
||||||
project: Project;
|
project: Project;
|
||||||
status: TaskStatus;
|
status: TaskStatus;
|
||||||
title: Scalars["String"]["output"];
|
title: Scalars['String']['output'];
|
||||||
updatedAt: Scalars["ISO8601DateTime"]["output"];
|
updatedAt: Scalars['ISO8601DateTime']['output'];
|
||||||
};
|
};
|
||||||
|
|
||||||
export type TaskInput = {
|
export type TaskInput = {
|
||||||
content?: InputMaybe<Scalars["String"]["input"]>;
|
content?: InputMaybe<Scalars['String']['input']>;
|
||||||
projectId?: InputMaybe<Scalars["Int"]["input"]>;
|
projectId?: InputMaybe<Scalars['Int']['input']>;
|
||||||
status?: InputMaybe<TaskStatus>;
|
status?: InputMaybe<TaskStatus>;
|
||||||
title?: InputMaybe<Scalars["String"]["input"]>;
|
title?: InputMaybe<Scalars['String']['input']>;
|
||||||
};
|
};
|
||||||
|
|
||||||
export enum TaskStatus {
|
export enum TaskStatus {
|
||||||
Backlog = "backlog",
|
Backlog = 'backlog',
|
||||||
Complete = "complete",
|
Complete = 'complete',
|
||||||
InProgress = "in_progress",
|
InProgress = 'in_progress',
|
||||||
Ready = "ready",
|
Ready = 'ready'
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Autogenerated return type of UpdateTask. */
|
/** Autogenerated return type of UpdateTask. */
|
||||||
export type UpdateTaskPayload = {
|
export type UpdateTaskPayload = {
|
||||||
__typename?: "UpdateTaskPayload";
|
__typename?: 'UpdateTaskPayload';
|
||||||
errors: Array<Scalars["String"]["output"]>;
|
errors: Array<Scalars['String']['output']>;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
require "bundler/setup"
|
|
||||||
require "fileutils"
|
|
||||||
|
|
||||||
namespace :schema do
|
|
||||||
desc "Generate share/twenty-server/schema.graphql"
|
|
||||||
task :regen do
|
|
||||||
require "twenty-server"
|
|
||||||
schema = File.join(__dir__, "share", "twenty-server", "schema.graphql")
|
|
||||||
FileUtils.mkdir_p File.dirname(schema)
|
|
||||||
File.binwrite schema, Twenty::GraphQL::Schema.to_definition
|
|
||||||
end
|
|
||||||
end
|
|
Loading…
Reference in a new issue