diff --git a/libs/ngrx-entity-relationship/augments/ng-package.json b/libs/ngrx-entity-relationship/augments/ng-package.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/libs/ngrx-entity-relationship/augments/ng-package.json @@ -0,0 +1 @@ +{} diff --git a/libs/ngrx-entity-relationship/augments/src/public_api.ts b/libs/ngrx-entity-relationship/augments/src/public_api.ts new file mode 100644 index 000000000..0c4f37ec8 --- /dev/null +++ b/libs/ngrx-entity-relationship/augments/src/public_api.ts @@ -0,0 +1,8 @@ +declare global { + // tslint:disable-next-line:class-name + export interface SELECTOR_META { + gqlFields?: Array; + } +} + +export {}; diff --git a/libs/ngrx-entity-relationship/graphql/ng-package.json b/libs/ngrx-entity-relationship/graphql/ng-package.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/libs/ngrx-entity-relationship/graphql/ng-package.json @@ -0,0 +1 @@ +{} diff --git a/libs/ngrx-entity-relationship/graphql/src/lib/toGraphQL.ts b/libs/ngrx-entity-relationship/graphql/src/lib/toGraphQL.ts new file mode 100644 index 000000000..47c04b298 --- /dev/null +++ b/libs/ngrx-entity-relationship/graphql/src/lib/toGraphQL.ts @@ -0,0 +1,160 @@ +import {ENTITY_SELECTOR} from 'ngrx-entity-relationship'; +import 'ngrx-entity-relationship/augments'; + +const resolveGraphQL = ( + selector: ENTITY_SELECTOR, + options: { + include: Array; + prefix: string; + level: number; + } = { + include: [], + prefix: '', + level: 0, + }, +) => { + const prefix = options.prefix ? options.prefix.repeat(options.level) : ''; + let query = ''; + const included: Array = []; + for (const relationship of selector.relationships) { + if (typeof relationship.keyId !== 'string') { + continue; + } + if (typeof relationship.keyValue !== 'string') { + continue; + } + if (relationship.ngrxEntityRelationship === 'childrenEntities') { + included.push(relationship.keyValue); + query += `${prefix}${relationship.keyValue}`; + query += `${prefix ? ' ' : ''}{${prefix ? '\n' : ''}${resolveGraphQL(relationship, { + include: [relationship.keyId], + prefix: options.prefix, + level: options.level + 1, + })}${prefix}}${prefix ? '\n' : ''}`; + } else if (relationship.ngrxEntityRelationship === 'childEntity') { + included.push(relationship.keyValue); + query += `${prefix}${relationship.keyValue}`; + query += `${prefix ? ' ' : ''}{${prefix ? '\n' : ''}${resolveGraphQL(relationship, { + include: [relationship.keyId], + prefix: options.prefix, + level: options.level + 1, + })}${prefix}}${prefix ? '\n' : ''}`; + } else { + included.push(relationship.keyId); + included.push(relationship.keyValue); + query += `${prefix}${relationship.keyId}`; + query += `\n${prefix}${relationship.keyValue}`; + query += `${prefix ? ' ' : ''}{${prefix ? '\n' : ''}${resolveGraphQL(relationship, { + include: [], + prefix: options.prefix, + level: options.level + 1, + })}${prefix}}${prefix ? '\n' : ''}`; + } + } + for (const field of options.include) { + if (typeof field !== 'string') { + continue; + } + if (included.indexOf(field) !== -1) { + continue; + } + query += `${prefix}${field}\n`; + } + const fields = selector.meta.gqlFields || []; + for (const field of fields) { + if (included.indexOf(field) !== -1) { + continue; + } + query += `${prefix}${field}\n`; + } + return query; +}; + +function encodeValue(data: any): string | undefined { + if (typeof data === 'number') { + return JSON.stringify(data); + } + if (typeof data === 'string') { + return JSON.stringify(data); + } + if (data === null || data === undefined) { + return JSON.stringify(null); + } + if (typeof data === 'function') { + return undefined; + } + if (Array.isArray(data)) { + return JSON.stringify(data.map(encodeValue).filter(v => v !== undefined)); + } + const fields: Array = []; + for (const key of Object.keys(data)) { + const value = encodeValue(data[key]); + if (value === undefined) { + continue; + } + fields.push(`${key}:${value}`); + } + return `{${fields.join(',')}}`; +} + +export function toGraphQL(...queries: Array): string; +export function toGraphQL(query: string, params: object, selector: ENTITY_SELECTOR): string; +export function toGraphQL(query: string, selector: ENTITY_SELECTOR): string; + +export function toGraphQL(...queries: Array): string { + const prefix = ''; + let query = ''; + let selector: ENTITY_SELECTOR | undefined; + let params: Record | null | string | undefined; + if (queries.length >= 2 && typeof queries[1] !== 'string') { + if (queries[2] && typeof queries[2] !== 'string') { + [query, params, selector] = queries; + } else { + [query, selector] = queries; + } + } + + const stringParams: Array = []; + if (typeof params === 'string') { + stringParams.push(params); + } + if (params && typeof params === 'object') { + for (const key of Object.keys(params)) { + if (key === '$') { + continue; + } + stringParams.push(`${key}:${prefix ? ' ' : ''}${encodeValue(params[key])}`); + } + } + if (params && typeof params === 'object' && params.$ && typeof params.$ === 'object') { + const params$ = params.$; + for (const key of Object.keys(params$)) { + if (typeof params$[key] !== 'string' || params$[key][0] !== '$') { + throw new Error(`${key} should be a variable that starts with $ symbol`); + } + stringParams.push(`${key}:${prefix ? ' ' : ''}${params$[key]}`); + } + } + params = stringParams.length ? `(${stringParams.join(`,${prefix ? ' ' : ''}`)})` : ''; + + if (selector) { + return `{\n${prefix}${query}${params}${prefix ? ' ' : ''}{\n${resolveGraphQL(selector, { + include: [], + prefix: `${prefix}`, + level: 2, + })}${prefix}}\n}`; + } + const parts: Array = []; + for (let part of queries) { + if (typeof part !== 'string') { + continue; + } + part = part.trim(); + if (part.substr(0, 1) === '{' && part.substr(part.length - 1, 1) === '}') { + part = part.substr(1, part.length - 2); + } + parts.push(part.trim()); + } + + return `{${parts.join('\n')}}`; +} diff --git a/libs/ngrx-entity-relationship/graphql/src/lib/toMutation.ts b/libs/ngrx-entity-relationship/graphql/src/lib/toMutation.ts new file mode 100644 index 000000000..a4bc0162b --- /dev/null +++ b/libs/ngrx-entity-relationship/graphql/src/lib/toMutation.ts @@ -0,0 +1,12 @@ +import {toTerm} from './toTerm'; + +export function toMutation(toGraphQL: string): string; +export function toMutation( + variables: { + [key: string]: 'ID' | 'ID!' | 'String!' | 'String' | 'Boolean!' | 'Boolean' | string; + }, + toGraphQL: string, +): string; +export function toMutation(...args: Array): string { + return toTerm('mutation', ...args); +} diff --git a/libs/ngrx-entity-relationship/graphql/src/lib/toQuery.ts b/libs/ngrx-entity-relationship/graphql/src/lib/toQuery.ts new file mode 100644 index 000000000..c3999f936 --- /dev/null +++ b/libs/ngrx-entity-relationship/graphql/src/lib/toQuery.ts @@ -0,0 +1,12 @@ +import {toTerm} from './toTerm'; + +export function toQuery(toGraphQL: string): string; +export function toQuery( + variables: { + [key: string]: 'ID' | 'ID!' | 'String!' | 'String' | 'Boolean!' | 'Boolean' | string; + }, + toGraphQL: string, +): string; +export function toQuery(...args: Array): string { + return toTerm('query', ...args); +} diff --git a/libs/ngrx-entity-relationship/graphql/src/lib/toSubscription.ts b/libs/ngrx-entity-relationship/graphql/src/lib/toSubscription.ts new file mode 100644 index 000000000..a1d4f1681 --- /dev/null +++ b/libs/ngrx-entity-relationship/graphql/src/lib/toSubscription.ts @@ -0,0 +1,12 @@ +import {toTerm} from './toTerm'; + +export function toSubscription(toGraphQL: string): string; +export function toSubscription( + variables: { + [key: string]: 'ID' | 'ID!' | 'String!' | 'String' | 'Boolean!' | 'Boolean' | string; + }, + toGraphQL: string, +): string; +export function toSubscription(...args: Array): string { + return toTerm('subscription', ...args); +} diff --git a/libs/ngrx-entity-relationship/graphql/src/lib/toTerm.ts b/libs/ngrx-entity-relationship/graphql/src/lib/toTerm.ts new file mode 100644 index 000000000..ddf0f141f --- /dev/null +++ b/libs/ngrx-entity-relationship/graphql/src/lib/toTerm.ts @@ -0,0 +1,15 @@ +export function toTerm(term: 'query' | 'subscription' | 'mutation', ...args: Array): string { + const params: Array = []; + let toGraphQL = ''; + + if (typeof args[0] === 'object') { + for (const key of Object.keys(args[0] || {})) { + params.push(`${key}:${args[0][key]}`); + } + toGraphQL = args[1]; + } else { + toGraphQL = args[0]; + } + + return `${term}${params.length ? `(${params.join(',')})` : ''}${toGraphQL}`; +} diff --git a/libs/ngrx-entity-relationship/graphql/src/public_api.ts b/libs/ngrx-entity-relationship/graphql/src/public_api.ts new file mode 100644 index 000000000..547933062 --- /dev/null +++ b/libs/ngrx-entity-relationship/graphql/src/public_api.ts @@ -0,0 +1,6 @@ +import 'ngrx-entity-relationship/augments'; + +export * from './lib/toGraphQL'; +export * from './lib/toMutation'; +export * from './lib/toQuery'; +export * from './lib/toSubscription'; diff --git a/libs/ngrx-entity-relationship/test/graphql/src/lib/toGraphQL.spec.ts b/libs/ngrx-entity-relationship/test/graphql/src/lib/toGraphQL.spec.ts new file mode 100644 index 000000000..b9198a843 --- /dev/null +++ b/libs/ngrx-entity-relationship/test/graphql/src/lib/toGraphQL.spec.ts @@ -0,0 +1,8 @@ +import {toGraphQL} from '../../../../graphql/src/lib/toGraphQL'; + +describe('toGraphQL', () => { + it('combines strings', () => { + const actual = toGraphQL('1', '2', '3'); + expect(actual).toEqual('{1\n2\n3}'); + }); +}); diff --git a/libs/ngrx-entity-relationship/test/operators/relationships.spec.ts b/libs/ngrx-entity-relationship/test/rxjs/src/operators/relationships.spec.ts similarity index 97% rename from libs/ngrx-entity-relationship/test/operators/relationships.spec.ts rename to libs/ngrx-entity-relationship/test/rxjs/src/operators/relationships.spec.ts index 750de7f4a..56551fd8c 100644 --- a/libs/ngrx-entity-relationship/test/operators/relationships.spec.ts +++ b/libs/ngrx-entity-relationship/test/rxjs/src/operators/relationships.spec.ts @@ -1,7 +1,7 @@ import {of, Subject} from 'rxjs'; -import {relationships} from '../../rxjs/src/public_api'; -import {HANDLER_ROOT_ENTITIES, HANDLER_ROOT_ENTITY, UNKNOWN} from '../../src/lib/types'; +import {relationships} from '../../../../rxjs/src/public_api'; +import {HANDLER_ROOT_ENTITIES, HANDLER_ROOT_ENTITY, UNKNOWN} from '../../../../src/lib/types'; describe('operators/relationships', () => { interface Entity { diff --git a/libs/ngrx-entity-relationship/test/childEntity.spec.ts b/libs/ngrx-entity-relationship/test/src/lib/childEntity.spec.ts similarity index 99% rename from libs/ngrx-entity-relationship/test/childEntity.spec.ts rename to libs/ngrx-entity-relationship/test/src/lib/childEntity.spec.ts index ff83c9f9f..e1eb98757 100644 --- a/libs/ngrx-entity-relationship/test/childEntity.spec.ts +++ b/libs/ngrx-entity-relationship/test/src/lib/childEntity.spec.ts @@ -1,5 +1,5 @@ -import {UNKNOWN} from '../src/lib/types'; -import {childEntity, ENTITY_STATE, FEATURE_SELECTOR, HANDLER_RELATED_ENTITY} from '../src/public_api'; +import {UNKNOWN} from '../../../src/lib/types'; +import {childEntity, ENTITY_STATE, FEATURE_SELECTOR, HANDLER_RELATED_ENTITY} from '../../../src/public_api'; describe('childEntity', () => { interface Entity { diff --git a/libs/ngrx-entity-relationship/test/childEntitySelector.spec.ts b/libs/ngrx-entity-relationship/test/src/lib/childEntitySelector.spec.ts similarity index 93% rename from libs/ngrx-entity-relationship/test/childEntitySelector.spec.ts rename to libs/ngrx-entity-relationship/test/src/lib/childEntitySelector.spec.ts index 449367f50..94b73c889 100644 --- a/libs/ngrx-entity-relationship/test/childEntitySelector.spec.ts +++ b/libs/ngrx-entity-relationship/test/src/lib/childEntitySelector.spec.ts @@ -1,4 +1,5 @@ -import {childEntitySelector, HANDLER_RELATED_ENTITY} from 'ngrx-entity-relationship'; +import {childEntitySelector} from '../../../src/lib/childEntitySelector'; +import {HANDLER_RELATED_ENTITY} from '../../../src/lib/types'; describe('childEntitySelector', () => { interface Entity { diff --git a/libs/ngrx-entity-relationship/test/childrenEntities.spec.ts b/libs/ngrx-entity-relationship/test/src/lib/childrenEntities.spec.ts similarity index 99% rename from libs/ngrx-entity-relationship/test/childrenEntities.spec.ts rename to libs/ngrx-entity-relationship/test/src/lib/childrenEntities.spec.ts index 883d47853..d3f9850d6 100644 --- a/libs/ngrx-entity-relationship/test/childrenEntities.spec.ts +++ b/libs/ngrx-entity-relationship/test/src/lib/childrenEntities.spec.ts @@ -1,5 +1,5 @@ -import {UNKNOWN} from '../src/lib/types'; -import {childrenEntities, ENTITY_STATE, FEATURE_SELECTOR, HANDLER_RELATED_ENTITY} from '../src/public_api'; +import {UNKNOWN} from '../../../src/lib/types'; +import {childrenEntities, ENTITY_STATE, FEATURE_SELECTOR, HANDLER_RELATED_ENTITY} from '../../../src/public_api'; describe('childrenEntities', () => { interface Entity { diff --git a/libs/ngrx-entity-relationship/test/childrenEntitiesSelector.spec.ts b/libs/ngrx-entity-relationship/test/src/lib/childrenEntitiesSelector.spec.ts similarity index 93% rename from libs/ngrx-entity-relationship/test/childrenEntitiesSelector.spec.ts rename to libs/ngrx-entity-relationship/test/src/lib/childrenEntitiesSelector.spec.ts index 847b0789a..0faa1c608 100644 --- a/libs/ngrx-entity-relationship/test/childrenEntitiesSelector.spec.ts +++ b/libs/ngrx-entity-relationship/test/src/lib/childrenEntitiesSelector.spec.ts @@ -1,4 +1,5 @@ -import {childrenEntitiesSelector, HANDLER_RELATED_ENTITY} from 'ngrx-entity-relationship'; +import {childrenEntitiesSelector} from '../../../src/lib/childrenEntitiesSelector'; +import {HANDLER_RELATED_ENTITY} from '../../../src/lib/types'; describe('childrenEntitiesSelector', () => { interface Entity { diff --git a/libs/ngrx-entity-relationship/test/relatedEntity.spec.ts b/libs/ngrx-entity-relationship/test/src/lib/relatedEntity.spec.ts similarity index 99% rename from libs/ngrx-entity-relationship/test/relatedEntity.spec.ts rename to libs/ngrx-entity-relationship/test/src/lib/relatedEntity.spec.ts index 7be2eadbe..c7b0c8827 100644 --- a/libs/ngrx-entity-relationship/test/relatedEntity.spec.ts +++ b/libs/ngrx-entity-relationship/test/src/lib/relatedEntity.spec.ts @@ -1,5 +1,5 @@ -import {UNKNOWN} from '../src/lib/types'; -import {ENTITY_STATE, FEATURE_SELECTOR, HANDLER_RELATED_ENTITY, relatedEntity} from '../src/public_api'; +import {UNKNOWN} from '../../../src/lib/types'; +import {ENTITY_STATE, FEATURE_SELECTOR, HANDLER_RELATED_ENTITY, relatedEntity} from '../../../src/public_api'; describe('relatedEntity', () => { interface Entity { diff --git a/libs/ngrx-entity-relationship/test/relatedEntitySelector.spec.ts b/libs/ngrx-entity-relationship/test/src/lib/relatedEntitySelector.spec.ts similarity index 93% rename from libs/ngrx-entity-relationship/test/relatedEntitySelector.spec.ts rename to libs/ngrx-entity-relationship/test/src/lib/relatedEntitySelector.spec.ts index 5bfb3acb0..aed036945 100644 --- a/libs/ngrx-entity-relationship/test/relatedEntitySelector.spec.ts +++ b/libs/ngrx-entity-relationship/test/src/lib/relatedEntitySelector.spec.ts @@ -1,4 +1,5 @@ -import {HANDLER_RELATED_ENTITY, relatedEntitySelector} from 'ngrx-entity-relationship'; +import {relatedEntitySelector} from '../../../src/lib/relatedEntitySelector'; +import {HANDLER_RELATED_ENTITY} from '../../../src/lib/types'; describe('relatedEntitySelector', () => { interface Entity { diff --git a/libs/ngrx-entity-relationship/test/rootEntities.spec.ts b/libs/ngrx-entity-relationship/test/src/lib/rootEntities.spec.ts similarity index 96% rename from libs/ngrx-entity-relationship/test/rootEntities.spec.ts rename to libs/ngrx-entity-relationship/test/src/lib/rootEntities.spec.ts index 761ab4d52..89d58ece3 100644 --- a/libs/ngrx-entity-relationship/test/rootEntities.spec.ts +++ b/libs/ngrx-entity-relationship/test/src/lib/rootEntities.spec.ts @@ -1,12 +1,7 @@ -import { - FEATURE_SELECTOR, - HANDLER_ROOT_ENTITY, - ID_SELECTOR, - ID_TYPES, - rootEntities, - rootEntity, - rootEntityFlags, -} from 'ngrx-entity-relationship'; +import {rootEntities} from '../../../src/lib/rootEntities'; +import {rootEntity} from '../../../src/lib/rootEntity'; +import {rootEntityFlags} from '../../../src/lib/rootEntityFlags'; +import {FEATURE_SELECTOR, HANDLER_ROOT_ENTITY, ID_SELECTOR, ID_TYPES} from '../../../src/lib/types'; describe('rootEntities', () => { interface Entity { diff --git a/libs/ngrx-entity-relationship/test/rootEntity.spec.ts b/libs/ngrx-entity-relationship/test/src/lib/rootEntity.spec.ts similarity index 99% rename from libs/ngrx-entity-relationship/test/rootEntity.spec.ts rename to libs/ngrx-entity-relationship/test/src/lib/rootEntity.spec.ts index 73abb9842..fbba539ac 100644 --- a/libs/ngrx-entity-relationship/test/rootEntity.spec.ts +++ b/libs/ngrx-entity-relationship/test/src/lib/rootEntity.spec.ts @@ -1,5 +1,5 @@ -import {FEATURE_SELECTOR, UNKNOWN} from '../src/lib/types'; -import {ENTITY_STATE, HANDLER_RELATED_ENTITY, rootEntity, rootEntityFlags} from '../src/public_api'; +import {FEATURE_SELECTOR, UNKNOWN} from '../../../src/lib/types'; +import {ENTITY_STATE, HANDLER_RELATED_ENTITY, rootEntity, rootEntityFlags} from '../../../src/public_api'; describe('rootEntity', () => { interface Entity { diff --git a/libs/ngrx-entity-relationship/test/rootEntitySelector.spec.ts b/libs/ngrx-entity-relationship/test/src/lib/rootEntitySelector.spec.ts similarity index 96% rename from libs/ngrx-entity-relationship/test/rootEntitySelector.spec.ts rename to libs/ngrx-entity-relationship/test/src/lib/rootEntitySelector.spec.ts index 2778d2405..98ec93d51 100644 --- a/libs/ngrx-entity-relationship/test/rootEntitySelector.spec.ts +++ b/libs/ngrx-entity-relationship/test/src/lib/rootEntitySelector.spec.ts @@ -1,4 +1,5 @@ -import {ENTITY_STATE, HANDLER_RELATED_ENTITY, rootEntitySelector} from 'ngrx-entity-relationship'; +import {rootEntitySelector} from '../../../src/lib/rootEntitySelector'; +import {ENTITY_STATE, HANDLER_RELATED_ENTITY} from '../../../src/lib/types'; describe('rootEntitySelector', () => { interface Entity { diff --git a/libs/ngrx-entity-relationship/test/store/actions.spec.ts b/libs/ngrx-entity-relationship/test/src/lib/store/actions.spec.ts similarity index 95% rename from libs/ngrx-entity-relationship/test/store/actions.spec.ts rename to libs/ngrx-entity-relationship/test/src/lib/store/actions.spec.ts index c8339ff63..8378309ef 100644 --- a/libs/ngrx-entity-relationship/test/store/actions.spec.ts +++ b/libs/ngrx-entity-relationship/test/src/lib/store/actions.spec.ts @@ -1,11 +1,11 @@ +import {rootEntity} from '../../../../src/lib/rootEntity'; import { ngrxEntityRelationshipActions, - ReduceFlat, reduceFlat, - ReduceGraph, + ReduceFlat, reduceGraph, - rootEntity, -} from 'ngrx-entity-relationship'; + ReduceGraph, +} from '../../../../src/lib/store/actions'; describe('store/actions', () => { it('ReduceFlat', () => { diff --git a/libs/ngrx-entity-relationship/test/store/fromFlat.spec.ts b/libs/ngrx-entity-relationship/test/src/lib/store/fromFlat.spec.ts similarity index 95% rename from libs/ngrx-entity-relationship/test/store/fromFlat.spec.ts rename to libs/ngrx-entity-relationship/test/src/lib/store/fromFlat.spec.ts index 4b5844e5d..8b130a6c3 100644 --- a/libs/ngrx-entity-relationship/test/store/fromFlat.spec.ts +++ b/libs/ngrx-entity-relationship/test/src/lib/store/fromFlat.spec.ts @@ -1,6 +1,6 @@ -import {fromFlat} from '../../src/lib/store/fromFlat'; -import {injectEntity} from '../../src/lib/store/injectEntity'; -import {relatedEntity, rootEntity} from '../../src/public_api'; +import {fromFlat} from '../../../../src/lib/store/fromFlat'; +import {injectEntity} from '../../../../src/lib/store/injectEntity'; +import {relatedEntity, rootEntity} from '../../../../src/public_api'; describe('store/fromFlat', () => { let injectEntitySpy: jasmine.Spy; diff --git a/libs/ngrx-entity-relationship/test/store/fromGraph.spec.ts b/libs/ngrx-entity-relationship/test/src/lib/store/fromGraph.spec.ts similarity index 94% rename from libs/ngrx-entity-relationship/test/store/fromGraph.spec.ts rename to libs/ngrx-entity-relationship/test/src/lib/store/fromGraph.spec.ts index 6c3f60b78..a1daebe21 100644 --- a/libs/ngrx-entity-relationship/test/store/fromGraph.spec.ts +++ b/libs/ngrx-entity-relationship/test/src/lib/store/fromGraph.spec.ts @@ -1,6 +1,6 @@ -import {fromGraph} from '../../src/lib/store/fromGraph'; -import {injectEntity} from '../../src/lib/store/injectEntity'; -import {relatedEntity, rootEntity} from '../../src/public_api'; +import {fromGraph} from '../../../../src/lib/store/fromGraph'; +import {injectEntity} from '../../../../src/lib/store/injectEntity'; +import {relatedEntity, rootEntity} from '../../../../src/public_api'; describe('store/fromGraph', () => { let injectEntitySpy: jasmine.Spy; diff --git a/libs/ngrx-entity-relationship/test/store/injectEntity.spec.ts b/libs/ngrx-entity-relationship/test/src/lib/store/injectEntity.spec.ts similarity index 96% rename from libs/ngrx-entity-relationship/test/store/injectEntity.spec.ts rename to libs/ngrx-entity-relationship/test/src/lib/store/injectEntity.spec.ts index 0e604e335..7e739bb46 100644 --- a/libs/ngrx-entity-relationship/test/store/injectEntity.spec.ts +++ b/libs/ngrx-entity-relationship/test/src/lib/store/injectEntity.spec.ts @@ -1,6 +1,6 @@ -import {injectEntity} from '../../src/lib/store/injectEntity'; -import {patchState} from '../../src/lib/store/patchState'; -import {rootEntity} from '../../src/public_api'; +import {injectEntity} from '../../../../src/lib/store/injectEntity'; +import {patchState} from '../../../../src/lib/store/patchState'; +import {rootEntity} from '../../../../src/public_api'; describe('store/patchState', () => { let patchStateSpy: jasmine.Spy; diff --git a/libs/ngrx-entity-relationship/test/store/ngrxEntityRelationshipReducer.spec.ts b/libs/ngrx-entity-relationship/test/src/lib/store/ngrxEntityRelationshipReducer.spec.ts similarity index 94% rename from libs/ngrx-entity-relationship/test/store/ngrxEntityRelationshipReducer.spec.ts rename to libs/ngrx-entity-relationship/test/src/lib/store/ngrxEntityRelationshipReducer.spec.ts index 1b86ed79d..4d78cca52 100644 --- a/libs/ngrx-entity-relationship/test/store/ngrxEntityRelationshipReducer.spec.ts +++ b/libs/ngrx-entity-relationship/test/src/lib/store/ngrxEntityRelationshipReducer.spec.ts @@ -1,6 +1,6 @@ -import {fromFlat} from '../../src/lib/store/fromFlat'; -import {fromGraph} from '../../src/lib/store/fromGraph'; -import {ngrxEntityRelationshipActions, ngrxEntityRelationshipReducer} from '../../src/public_api'; +import {fromFlat} from '../../../../src/lib/store/fromFlat'; +import {fromGraph} from '../../../../src/lib/store/fromGraph'; +import {ngrxEntityRelationshipActions, ngrxEntityRelationshipReducer} from '../../../../src/public_api'; describe('store/ngrxEntityRelationshipReducer', () => { let fromGraphSpy: jasmine.Spy; diff --git a/libs/ngrx-entity-relationship/test/store/patchState.spec.ts b/libs/ngrx-entity-relationship/test/src/lib/store/patchState.spec.ts similarity index 97% rename from libs/ngrx-entity-relationship/test/store/patchState.spec.ts rename to libs/ngrx-entity-relationship/test/src/lib/store/patchState.spec.ts index 23c41f27c..cf66d152b 100644 --- a/libs/ngrx-entity-relationship/test/store/patchState.spec.ts +++ b/libs/ngrx-entity-relationship/test/src/lib/store/patchState.spec.ts @@ -1,4 +1,4 @@ -import {patchState} from '../../src/lib/store/patchState'; +import {patchState} from '../../../../src/lib/store/patchState'; describe('store/patchState', () => { it('touches only objects', () => { diff --git a/libs/ngrx-entity-relationship/test/utils.spec.ts b/libs/ngrx-entity-relationship/test/src/lib/utils.spec.ts similarity index 99% rename from libs/ngrx-entity-relationship/test/utils.spec.ts rename to libs/ngrx-entity-relationship/test/src/lib/utils.spec.ts index c0e28ebfd..1ef7bec2b 100644 --- a/libs/ngrx-entity-relationship/test/utils.spec.ts +++ b/libs/ngrx-entity-relationship/test/src/lib/utils.spec.ts @@ -1,4 +1,4 @@ -import {argsToArray, mergeCache, normalizeSelector, objectValues, verifyCache} from '../src/lib/utils'; +import {argsToArray, mergeCache, normalizeSelector, objectValues, verifyCache} from '../../../src/lib/utils'; describe('utils', () => { describe('normalizeSelector', () => { diff --git a/libs/ngrx-entity-relationship/tsconfig.lib.json b/libs/ngrx-entity-relationship/tsconfig.lib.json index f481af250..08993aa70 100644 --- a/libs/ngrx-entity-relationship/tsconfig.lib.json +++ b/libs/ngrx-entity-relationship/tsconfig.lib.json @@ -15,6 +15,6 @@ "strictMetadataEmit": true, "enableResourceInlining": true }, - "files": ["src/public_api.ts", "rxjs/src/public_api.ts"], + "files": ["src/public_api.ts", "rxjs/src/public_api.ts", "augments/src/public_api.ts", "graphql/src/public_api.ts"], "exclude": ["src/test.ts", "**/*.spec.ts"] } diff --git a/tsconfig.base.json b/tsconfig.base.json index 68ec8ea44..c6577948c 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -15,6 +15,8 @@ "baseUrl": ".", "paths": { "ngrx-entity-relationship": ["libs/ngrx-entity-relationship/src/public_api.ts"], + "ngrx-entity-relationship/augments": ["libs/ngrx-entity-relationship/augments/src/public_api.ts"], + "ngrx-entity-relationship/graphql": ["libs/ngrx-entity-relationship/graphql/src/public_api.ts"], "ngrx-entity-relationship/rxjs": ["libs/ngrx-entity-relationship/rxjs/src/public_api.ts"] }, "skipLibCheck": true,