Skip to content

Commit

Permalink
fix(headless): abstract function and add comment for reason
Browse files Browse the repository at this point in the history
  • Loading branch information
EmilK15 committed Jul 16, 2020
1 parent 7dd3329 commit 46f80ff
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 24 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import pluralize from "pluralize";
import { CmsContentModel, CmsFieldTypePlugins, CmsContext } from "@webiny/api-headless-cms/types";
import { createManageTypeName, createTypeName } from "../utils/createTypeName";
import { commonFieldResolvers } from "../utils/commonFieldResolvers";
Expand All @@ -10,6 +9,7 @@ import { resolveDelete } from "../utils/resolvers/manage/resolveDelete";
import { resolvePublish } from "../utils/resolvers/manage/resolvePublish";
import { resolveUnpublish } from "../utils/resolvers/manage/resolveUnpublish";
import { resolveCreateFrom } from "../utils/resolvers/manage/resolveCreateFrom";
import { pluralizedTypeName } from "../utils/pluralizedTypeName";

export interface CreateManageResolvers {
(params: {
Expand All @@ -27,15 +27,11 @@ export const createManageResolvers: CreateManageResolvers = ({
}) => {
const typeName = createTypeName(model.modelId);
const mTypeName = createManageTypeName(typeName);
let pluralizedTypeName = pluralize(typeName);
if (typeName.length === 1) {
pluralizedTypeName = `${typeName}s`;
}

return {
Query: {
[`get${typeName}`]: resolveGet({ model }),
[`list${pluralizedTypeName}`]: resolveList({ model })
[`list${pluralizedTypeName(typeName)}`]: resolveList({ model })
},
Mutation: {
[`create${typeName}`]: resolveCreate({ model }),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import pluralize from "pluralize";
import { CmsFieldTypePlugins, CmsContext, CmsContentModel } from "@webiny/api-headless-cms/types";
import { createManageTypeName, createTypeName } from "../utils/createTypeName";
import { renderInputFields } from "../utils/renderInputFields";
import { renderSortEnum } from "../utils/renderSortEnum";
import { renderFields } from "../utils/renderFields";
import { renderListFilterFields } from "../utils/renderListFilterFields";
import { renderGetFilterFields } from "../utils/renderGetFilterFields";
import { pluralizedTypeName } from "../utils/pluralizedTypeName";

export interface CreateManageSDL {
(params: {
Expand All @@ -18,10 +18,6 @@ export interface CreateManageSDL {
export const createManageSDL: CreateManageSDL = ({ model, fieldTypePlugins }): string => {
const typeName = createTypeName(model.modelId);
const mTypeName = createManageTypeName(typeName);
let pluralizedTypeName = pluralize(typeName);
if (typeName.length === 1) {
pluralizedTypeName = `${typeName}s`;
}

const listFilterFieldsRender = renderListFilterFields({
model,
Expand Down Expand Up @@ -110,7 +106,7 @@ export const createManageSDL: CreateManageSDL = ({ model, fieldTypePlugins }): s
extend type Query {
get${typeName}(where: ${mTypeName}GetWhereInput!): ${mTypeName}Response
list${pluralizedTypeName}(
list${pluralizedTypeName(typeName)}(
where: ${mTypeName}ListWhereInput
sort: [${mTypeName}ListSorter]
limit: Int
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import pluralize from "pluralize";
import { CmsContentModel, CmsFieldTypePlugins, CmsContext } from "@webiny/api-headless-cms/types";
import { GraphQLFieldResolver } from "@webiny/graphql/types";
import { createReadTypeName, createTypeName } from "../utils/createTypeName";
import { commonFieldResolvers } from "../utils/commonFieldResolvers";
import { resolveGet } from "../utils/resolvers/resolveGet";
import { resolveList } from "../utils/resolvers/resolveList";
import { pluralizedTypeName } from "../utils/pluralizedTypeName";

export interface CreateReadResolvers {
(params: {
Expand All @@ -18,16 +18,13 @@ export interface CreateReadResolvers {
export const createReadResolvers: CreateReadResolvers = ({ models, model, fieldTypePlugins }) => {
const typeName = createTypeName(model.modelId);
const rTypeName = createReadTypeName(typeName);
let pluralizedTypeName = pluralize(typeName);
if (typeName.length === 1) {
pluralizedTypeName = `${typeName}s`;
}

const resolvers: { [key: string]: GraphQLFieldResolver } = commonFieldResolvers();

return {
Query: {
[`get${typeName}`]: resolveGet({ model }),
[`list${pluralizedTypeName}`]: resolveList({ model })
[`list${pluralizedTypeName(typeName)}`]: resolveList({ model })
},
[rTypeName]: model.fields.reduce((resolvers, field) => {
const { read } = fieldTypePlugins[field.type];
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import pluralize from "pluralize";
import { CmsContentModel, CmsFieldTypePlugins, CmsContext } from "@webiny/api-headless-cms/types";
import { createReadTypeName, createTypeName } from "../utils/createTypeName";
import { renderSortEnum } from "../utils/renderSortEnum";
import { renderFields } from "../utils/renderFields";
import { renderListFilterFields } from "../utils/renderListFilterFields";
import { renderGetFilterFields } from "../utils/renderGetFilterFields";
import { pluralizedTypeName } from "../utils/pluralizedTypeName";

export interface CreateManageSDL {
(params: {
Expand All @@ -17,10 +17,7 @@ export interface CreateManageSDL {
export const createReadSDL: CreateManageSDL = ({ model, fieldTypePlugins }): string => {
const typeName = createTypeName(model.modelId);
const rTypeName = createReadTypeName(typeName);
let pluralizedTypeName = pluralize(typeName);
if (typeName.length === 1) {
pluralizedTypeName = `${typeName}s`;
}

const listFilterFieldsRender = renderListFilterFields({
model,
type: "read",
Expand Down Expand Up @@ -75,7 +72,7 @@ export const createReadSDL: CreateManageSDL = ({ model, fieldTypePlugins }): str
extend type Query {
get${typeName}(locale: String, where: ${rTypeName}GetWhereInput!): ${rTypeName}Response
list${pluralizedTypeName}(
list${pluralizedTypeName(typeName)}(
locale: String
where: ${rTypeName}ListWhereInput
sort: [${rTypeName}ListSorter]
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import pluralize from "pluralize";

// This will make it so if the content model name is a single capitalized letter
// Ex. A, pluralize will not capitalize the name to AS, and instead make it As

export const pluralizedTypeName = (typeName: string) => {
let pluralizedTypeName = pluralize(typeName);
if (typeName.length === 1) {
pluralizedTypeName = `${typeName}s`;
}
return pluralizedTypeName;
};

0 comments on commit 46f80ff

Please sign in to comment.