Skip to content

Commit

Permalink
add some TODOs
Browse files Browse the repository at this point in the history
  • Loading branch information
jneurock committed Feb 3, 2019
1 parent 5b777f1 commit d973b0e
Show file tree
Hide file tree
Showing 16 changed files with 27 additions and 0 deletions.
1 change: 1 addition & 0 deletions addon/db.js
@@ -1,5 +1,6 @@
import { camelize, pluralize } from 'ember-cli-mirage/utils/inflector';

// TODO: Compose this function
export const getRecords = (db, typeName) => db[getTableName(typeName)];

export const getTableName = (typeName) => camelize(pluralize(typeName));
2 changes: 2 additions & 0 deletions addon/fields/info/create.js
Expand Up @@ -3,6 +3,7 @@ import { getArgsForField } from '../args';
import { getIsRelayConnection } from '../../relay/connection';
import { getSelectedFields } from '../selections';

// TODO: Compose this function
export function createFieldInfo(field, fieldName, type, getType) {
let { isList, recordType } = getType(field, type);
let args = getArgsForField(field);
Expand All @@ -12,6 +13,7 @@ export function createFieldInfo(field, fieldName, type, getType) {
if (getIsRelayConnection(recordType.name, Object.keys(fields))) {
isRelayConnection = true;

// TODO: We're changing state here
fields.edges.args = fields.edges.args.concat(args);
fields.edges.isRelayEdges = true;

Expand Down
1 change: 1 addition & 0 deletions addon/fields/info/resolve.js
Expand Up @@ -10,6 +10,7 @@ const resolveReturnValue = (records, { field }) =>
? records[0]
: records;

// TODO: Compose this function
const getResolveFieldsReducer = (fieldInfo, db, vars, options) =>
(resolvedFields, fieldName) => {
let field = fieldInfo[fieldName];
Expand Down
2 changes: 2 additions & 0 deletions addon/fields/map.js
Expand Up @@ -17,10 +17,12 @@ const getFieldsReducer = (record, field, fieldResolver, db, vars, options) =>
let resolvedFieldName =
getResolvedFieldName(fieldName, field.type.name, options);

// TODO: We're changing state here
if (fieldValue) {
fieldValue.parent = { field, record };
}

// TODO: We're changing state here
if (getIsRelayNodeField(fieldName, field)) {
fieldValue.relayNode = record.node;
}
Expand Down
3 changes: 3 additions & 0 deletions addon/fields/records.js
Expand Up @@ -29,6 +29,7 @@ function getAndFilterRecords(records, field, fieldName, db, vars, options) {
return records;
}

// TODO: Compose this function
export function getRecordsByField(fieldName, field, db, options) {
let { fieldsMap = {} } = options || {};
let edgesNodeField = getEdgesNodeField(fieldName, field);
Expand All @@ -39,6 +40,7 @@ export function getRecordsByField(fieldName, field, db, options) {
return table.slice(0);
}

// TODO: Compose this function
export function getRecordsInField(records, meta) {
let { db, field, fieldName, options, vars } = meta;

Expand All @@ -51,6 +53,7 @@ export function getRecordsInField(records, meta) {
return records;
}

// TODO: Compose this function
export function getRecordsByMappedFieldFn(records, meta) {
let { db, field, fieldName, options = {} } = meta;
let { fieldsMap = {} } = options;
Expand Down
2 changes: 2 additions & 0 deletions addon/fields/selections.js
@@ -1,6 +1,7 @@
import { createFieldInfo } from './info/create';
import { getFieldName } from './name';

// TODO: Compose this function
const getSelectedFieldsReducer = (type, getType) =>
(selections, selection) => {
let fieldName = getFieldName(selection);
Expand All @@ -20,6 +21,7 @@ const inlineFragmentFieldsReducer = (selections, selection) =>
: selection
);

// TODO: Compose this function
export function getSelectedFields({ selectionSet = {} }, type, getType) {
let selectedFieldsReducer = getSelectedFieldsReducer(type, getType);
let { selections = [] } = selectionSet;
Expand Down
2 changes: 2 additions & 0 deletions addon/filter/create.js
Expand Up @@ -24,6 +24,7 @@ const getArgsToFiltersMapper = (vars, varsMapForType = {}) =>
return filter;
};

// TODO: Compose this function
export default function createFilters(field, vars, { varsMap = {} } = {}) {
let { args, type } = field;
let varsMapForType = varsMap[type.name];
Expand All @@ -33,6 +34,7 @@ export default function createFilters(field, vars, { varsMap = {} } = {}) {
let { filters: _filters, relayFilters } = spliceRelayFilters(filters);

filters = _filters;
// TODO: We're changing state here
field.relayFilters = relayFilters;
}

Expand Down
1 change: 1 addition & 0 deletions addon/filter/parent.js
Expand Up @@ -17,6 +17,7 @@ function getParentInfo(parent, isRelayEdges) {
const getParentRecordFilter = (parentFieldName, parentId) =>
(record) => get(record, `${parentFieldName}.id`) === parentId;

// TODO: Compose this function
export function filterByParent(records, { field, fieldName }) {
if (!field.parent) {
return records;
Expand Down
1 change: 1 addition & 0 deletions addon/handler.js
Expand Up @@ -5,6 +5,7 @@ import {
} from './schema';
import { graphql } from 'graphql';

// TODO: Compose this function
const createGraphQLHandler = (rawSchema, options) =>
({ db }, request) => {
let { query, variables } = JSON.parse(request.requestBody);
Expand Down
1 change: 1 addition & 0 deletions addon/mocks/create.js
Expand Up @@ -11,6 +11,7 @@ const mockRootType = (fields = {}, mockFn, db, options) =>
reduceKeys(fields, (mocks, field) =>
contextSet(mocks, field, mockFn(db, options)), {});

// TODO: Compose this function
export function createMocksForSchema(schema, db, options) {
let typesAndMockFns = [
[schema._queryType, getQueryMockFn],
Expand Down
1 change: 1 addition & 0 deletions addon/mocks/mutation.js
@@ -1,6 +1,7 @@
import { contextSet, isFunction, reduceKeys } from '../utils';
import { getRecords } from '../db';

// TODO: Compose this function
const getMutationMocker = (db, { mutations = {}, varsMap = {} } = {}) =>
(_, vars, __, { fieldName, returnType }) => {
let mutation = mutations[fieldName];
Expand Down
1 change: 1 addition & 0 deletions addon/mocks/query.js
Expand Up @@ -6,6 +6,7 @@ import { getTypeForField } from '../fields/type';
import { partial } from '../utils';
import { resolveFieldInfo } from '../fields/info/resolve';

// TODO: Compose this function
const getQueryMocker = (db, options) =>
(_, vars, __, { fieldNodes, returnType, schema }) => {
try {
Expand Down
1 change: 1 addition & 0 deletions addon/relay/edges.js
Expand Up @@ -16,5 +16,6 @@ export function createRelayEdges(records, { field }) {
return records;
}

// TODO: Compose this function
export const getIsEdge = (fieldName, field) =>
fieldName === 'edges' && fieldHasConnectionType(field.parent.field.type.name);
3 changes: 3 additions & 0 deletions addon/relay/filters.js
Expand Up @@ -12,10 +12,12 @@ const reduceRelayFiltersToHash = (filters, { name, value }) =>
const relayFilterReducer = (filterTypes, filter) =>
contextPush(filterTypes, getFilterTypeToSet(filter.resolvedName), filter);

// TODO: We're changing state here
const setPageInfo = (field, records, firstRecordId, lastRecordId) =>
field.parent.field.fields.pageInfo.relayPageInfo = createPageInfo(records,
firstRecordId, lastRecordId, field.type.name);

// TODO: Compose this function
export function applyRelayFilters(records, { field }) {
if (!field.relayFilters) {
return records;
Expand All @@ -40,5 +42,6 @@ export function applyRelayFilters(records, { field }) {
return records;
}

// TODO: Compose this function
export const spliceRelayFilters = (filters) =>
filters.reduce(relayFilterReducer, { filters: [], relayFilters: [] });
2 changes: 2 additions & 0 deletions addon/resolvers/interface-types.js
Expand Up @@ -10,11 +10,13 @@ function addInterfaceTypesToResolvers(interfaces, resolvers = {}) {
return resolvers;
}

// TODO: Compose this function
const getFieldResolver = (fieldName) =>
(data) => data.__typename
? data[fieldName]
: data[getFirstKey(data)][fieldName];

// TODO: Compose this function
const getInterfaceTypeResolverReducer = (typeMap) =>
(resolvers, typeName) => {
let type = typeMap[typeName];
Expand Down
3 changes: 3 additions & 0 deletions addon/schema.js
Expand Up @@ -6,6 +6,7 @@ import {
import { createMocksForSchema } from './mocks/create';
import { createResolversForInterfaceTypes } from './resolvers/interface-types';

// TODO: Compose this function
export function addInterfaceTypeResolversToSchema(schema) {
let interfaceTypeResolvers = createResolversForInterfaceTypes(schema);

Expand All @@ -17,13 +18,15 @@ export function addInterfaceTypeResolversToSchema(schema) {
}
}

// TODO: Compose this function
export const addMocksToSchema = (schema, db, options) =>
addMockFunctionsToSchema({
mocks: createMocksForSchema(schema, db, options),
preserveResolvers: false,
schema
});

// TODO: Compose this function
export const createSchema = (typeDefs) => makeExecutableSchema({
resolverValidationOptions: {
requireResolversForResolveType: false
Expand Down

0 comments on commit d973b0e

Please sign in to comment.