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"
|
||||
|
||||
load "rake/tasks/schema.rake"
|
||||
load "rake/tasks/nanoc.rake"
|
||||
load "rake/tasks/gem.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:
|
||||
- ../twenty-backend/share/twenty-backend/schema.graphql
|
||||
- ../twenty-server/share/twenty-server/schema.graphql
|
||||
|
||||
generates:
|
||||
src/js/types/schema.ts:
|
||||
|
|
|
@ -1,56 +1,43 @@
|
|||
export type Maybe<T> = T | null;
|
||||
export type InputMaybe<T> = Maybe<T>;
|
||||
export type Exact<T extends { [key: string]: unknown }> = {
|
||||
[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 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;
|
||||
};
|
||||
export type Exact<T extends { [key: string]: unknown }> = { [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 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 */
|
||||
export type Scalars = {
|
||||
ID: { input: string; output: string };
|
||||
String: { input: string; output: string };
|
||||
Boolean: { input: boolean; output: boolean };
|
||||
Int: { input: number; output: number };
|
||||
Float: { input: number; output: number };
|
||||
ID: { input: string; output: string; }
|
||||
String: { input: string; output: string; }
|
||||
Boolean: { input: boolean; output: boolean; }
|
||||
Int: { input: number; output: number; }
|
||||
Float: { input: number; output: number; }
|
||||
/** An ISO 8601-encoded datetime */
|
||||
ISO8601DateTime: { input: any; output: any };
|
||||
ISO8601DateTime: { input: any; output: any; }
|
||||
};
|
||||
|
||||
/** Autogenerated return type of CompleteTask. */
|
||||
export type CompleteTaskPayload = {
|
||||
__typename?: "CompleteTaskPayload";
|
||||
errors?: Maybe<Array<Scalars["String"]["output"]>>;
|
||||
ok?: Maybe<Scalars["Boolean"]["output"]>;
|
||||
__typename?: 'CompleteTaskPayload';
|
||||
errors?: Maybe<Array<Scalars['String']['output']>>;
|
||||
ok?: Maybe<Scalars['Boolean']['output']>;
|
||||
};
|
||||
|
||||
/** Autogenerated return type of CreateTask. */
|
||||
export type CreateTaskPayload = {
|
||||
__typename?: "CreateTaskPayload";
|
||||
errors: Array<Scalars["String"]["output"]>;
|
||||
__typename?: 'CreateTaskPayload';
|
||||
errors: Array<Scalars['String']['output']>;
|
||||
};
|
||||
|
||||
/** Autogenerated return type of DestroyTask. */
|
||||
export type DestroyTaskPayload = {
|
||||
__typename?: "DestroyTaskPayload";
|
||||
errors?: Maybe<Array<Scalars["String"]["output"]>>;
|
||||
ok?: Maybe<Scalars["Boolean"]["output"]>;
|
||||
__typename?: 'DestroyTaskPayload';
|
||||
errors?: Maybe<Array<Scalars['String']['output']>>;
|
||||
ok?: Maybe<Scalars['Boolean']['output']>;
|
||||
};
|
||||
|
||||
export type Mutation = {
|
||||
__typename?: "Mutation";
|
||||
__typename?: 'Mutation';
|
||||
completeTask?: Maybe<CompleteTaskPayload>;
|
||||
createTask?: Maybe<CreateTaskPayload>;
|
||||
destroyTask?: Maybe<DestroyTaskPayload>;
|
||||
|
@ -58,89 +45,96 @@ export type Mutation = {
|
|||
updateTask?: Maybe<UpdateTaskPayload>;
|
||||
};
|
||||
|
||||
|
||||
export type MutationCompleteTaskArgs = {
|
||||
taskId: Scalars["Int"]["input"];
|
||||
taskId: Scalars['Int']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type MutationCreateTaskArgs = {
|
||||
input: TaskInput;
|
||||
};
|
||||
|
||||
|
||||
export type MutationDestroyTaskArgs = {
|
||||
taskId: Scalars["Int"]["input"];
|
||||
taskId: Scalars['Int']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type MutationSetRandomProjectColorArgs = {
|
||||
projectId: Scalars["Int"]["input"];
|
||||
projectId: Scalars['Int']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type MutationUpdateTaskArgs = {
|
||||
input: TaskInput;
|
||||
taskId: Scalars["Int"]["input"];
|
||||
taskId: Scalars['Int']['input'];
|
||||
};
|
||||
|
||||
export type Project = {
|
||||
__typename?: "Project";
|
||||
color: Scalars["String"]["output"];
|
||||
id: Scalars["Int"]["output"];
|
||||
name: Scalars["String"]["output"];
|
||||
path: Scalars["String"]["output"];
|
||||
__typename?: 'Project';
|
||||
color: Scalars['String']['output'];
|
||||
id: Scalars['Int']['output'];
|
||||
name: Scalars['String']['output'];
|
||||
path: Scalars['String']['output'];
|
||||
tasks: Array<Task>;
|
||||
};
|
||||
|
||||
export type Query = {
|
||||
__typename?: "Query";
|
||||
__typename?: 'Query';
|
||||
findTask?: Maybe<Task>;
|
||||
projects: Array<Project>;
|
||||
tasks: Array<Task>;
|
||||
};
|
||||
|
||||
|
||||
export type QueryFindTaskArgs = {
|
||||
taskId: Scalars["Int"]["input"];
|
||||
taskId: Scalars['Int']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type QueryTasksArgs = {
|
||||
projectId?: InputMaybe<Scalars["Int"]["input"]>;
|
||||
projectId?: InputMaybe<Scalars['Int']['input']>;
|
||||
status: TaskStatus;
|
||||
};
|
||||
|
||||
/** Autogenerated return type of SetRandomProjectColor. */
|
||||
export type SetRandomProjectColorPayload = {
|
||||
__typename?: "SetRandomProjectColorPayload";
|
||||
errors: Array<Scalars["String"]["output"]>;
|
||||
__typename?: 'SetRandomProjectColorPayload';
|
||||
errors: Array<Scalars['String']['output']>;
|
||||
project?: Maybe<Project>;
|
||||
};
|
||||
|
||||
export type Task = {
|
||||
__typename?: "Task";
|
||||
content: Scalars["String"]["output"];
|
||||
id: Scalars["Int"]["output"];
|
||||
inProgress: Scalars["Boolean"]["output"];
|
||||
isBacklogged: Scalars["Boolean"]["output"];
|
||||
isComplete: Scalars["Boolean"]["output"];
|
||||
isReady: Scalars["Boolean"]["output"];
|
||||
__typename?: 'Task';
|
||||
content: Scalars['String']['output'];
|
||||
id: Scalars['Int']['output'];
|
||||
inProgress: Scalars['Boolean']['output'];
|
||||
isBacklogged: Scalars['Boolean']['output'];
|
||||
isComplete: Scalars['Boolean']['output'];
|
||||
isReady: Scalars['Boolean']['output'];
|
||||
project: Project;
|
||||
status: TaskStatus;
|
||||
title: Scalars["String"]["output"];
|
||||
updatedAt: Scalars["ISO8601DateTime"]["output"];
|
||||
title: Scalars['String']['output'];
|
||||
updatedAt: Scalars['ISO8601DateTime']['output'];
|
||||
};
|
||||
|
||||
export type TaskInput = {
|
||||
content?: InputMaybe<Scalars["String"]["input"]>;
|
||||
projectId?: InputMaybe<Scalars["Int"]["input"]>;
|
||||
content?: InputMaybe<Scalars['String']['input']>;
|
||||
projectId?: InputMaybe<Scalars['Int']['input']>;
|
||||
status?: InputMaybe<TaskStatus>;
|
||||
title?: InputMaybe<Scalars["String"]["input"]>;
|
||||
title?: InputMaybe<Scalars['String']['input']>;
|
||||
};
|
||||
|
||||
export enum TaskStatus {
|
||||
Backlog = "backlog",
|
||||
Complete = "complete",
|
||||
InProgress = "in_progress",
|
||||
Ready = "ready",
|
||||
Backlog = 'backlog',
|
||||
Complete = 'complete',
|
||||
InProgress = 'in_progress',
|
||||
Ready = 'ready'
|
||||
}
|
||||
|
||||
/** Autogenerated return type of UpdateTask. */
|
||||
export type UpdateTaskPayload = {
|
||||
__typename?: "UpdateTaskPayload";
|
||||
errors: Array<Scalars["String"]["output"]>;
|
||||
__typename?: 'UpdateTaskPayload';
|
||||
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