Skip to content

Commit

Permalink
fix: better umd support
Browse files Browse the repository at this point in the history
  • Loading branch information
satanTime committed Dec 30, 2020
1 parent 623dff3 commit b9b068c
Show file tree
Hide file tree
Showing 15 changed files with 73 additions and 33 deletions.
4 changes: 2 additions & 2 deletions lib/common/core.helpers.ts
@@ -1,7 +1,7 @@
import { InjectionToken } from '@angular/core';
import { getTestBed } from '@angular/core/testing';

import { jitReflector } from './core.reflect';
import coreReflectJit from './core.reflect.jit';
import { Type } from './core.types';

export const getTestBedInjection = <I>(token: Type<I> | InjectionToken<I>): I | undefined => {
Expand Down Expand Up @@ -110,7 +110,7 @@ export const extendClass = <I extends object>(base: Type<I>): Type<I> => {
parameters: any[][];
}> = extendClassicClass(base);

const parameters = jitReflector.parameters(base);
const parameters = coreReflectJit().parameters(base);
if (parameters.length) {
Object.defineProperty(child, 'parameters', {
value: [...parameters],
Expand Down
4 changes: 2 additions & 2 deletions lib/common/core.reflect.directive-resolve.ts
@@ -1,6 +1,6 @@
import { Directive } from '@angular/core';

import { directiveResolver } from './core.reflect';
import coreReflectBody from './core.reflect.body';
import coreReflectDirective from './core.reflect.directive';

export default (def: any): Directive => coreReflectBody((arg: any) => directiveResolver.resolve(arg))(def);
export default (def: any): Directive => coreReflectBody((arg: any) => coreReflectDirective().resolve(arg))(def);
12 changes: 12 additions & 0 deletions lib/common/core.reflect.directive.ts
@@ -0,0 +1,12 @@
import { MockDirectiveResolver } from '@angular/compiler/testing';

import coreReflectJit from './core.reflect.jit';
import ngMocksUniverse from './ng-mocks-universe';

export default (): MockDirectiveResolver => {
if (!ngMocksUniverse.global.has(MockDirectiveResolver)) {
ngMocksUniverse.global.set(MockDirectiveResolver, new MockDirectiveResolver(coreReflectJit()));
}

return ngMocksUniverse.global.get(MockDirectiveResolver);
};
10 changes: 10 additions & 0 deletions lib/common/core.reflect.jit.ts
@@ -0,0 +1,10 @@
import { JitReflector } from './jit-reflector';
import ngMocksUniverse from './ng-mocks-universe';

export default (): JitReflector => {
if (!ngMocksUniverse.global.has(JitReflector)) {
ngMocksUniverse.global.set(JitReflector, new JitReflector());
}

return ngMocksUniverse.global.get(JitReflector);
};
4 changes: 2 additions & 2 deletions lib/common/core.reflect.module-resolve.ts
@@ -1,6 +1,6 @@
import { NgModule } from '@angular/core';

import { ngModuleResolver } from './core.reflect';
import coreReflectBody from './core.reflect.body';
import coreReflectModule from './core.reflect.module';

export default (def: any): NgModule => coreReflectBody((arg: any) => ngModuleResolver.resolve(arg))(def);
export default (def: any): NgModule => coreReflectBody((arg: any) => coreReflectModule().resolve(arg))(def);
12 changes: 12 additions & 0 deletions lib/common/core.reflect.module.ts
@@ -0,0 +1,12 @@
import { MockNgModuleResolver } from '@angular/compiler/testing';

import coreReflectJit from './core.reflect.jit';
import ngMocksUniverse from './ng-mocks-universe';

export default (): MockNgModuleResolver => {
if (!ngMocksUniverse.global.has(MockNgModuleResolver)) {
ngMocksUniverse.global.set(MockNgModuleResolver, new MockNgModuleResolver(coreReflectJit()));
}

return ngMocksUniverse.global.get(MockNgModuleResolver);
};
4 changes: 2 additions & 2 deletions lib/common/core.reflect.pipe-resolve.ts
@@ -1,6 +1,6 @@
import { Pipe } from '@angular/core';

import { pipeResolver } from './core.reflect';
import coreReflectBody from './core.reflect.body';
import coreReflectPipe from './core.reflect.pipe';

export default (def: any): Pipe => coreReflectBody((arg: any) => pipeResolver.resolve(arg))(def);
export default (def: any): Pipe => coreReflectBody((arg: any) => coreReflectPipe().resolve(arg))(def);
12 changes: 12 additions & 0 deletions lib/common/core.reflect.pipe.ts
@@ -0,0 +1,12 @@
import { MockPipeResolver } from '@angular/compiler/testing';

import coreReflectJit from './core.reflect.jit';
import ngMocksUniverse from './ng-mocks-universe';

export default (): MockPipeResolver => {
if (!ngMocksUniverse.global.has(MockPipeResolver)) {
ngMocksUniverse.global.set(MockPipeResolver, new MockPipeResolver(coreReflectJit()));
}

return ngMocksUniverse.global.get(MockPipeResolver);
};
8 changes: 0 additions & 8 deletions lib/common/core.reflect.ts

This file was deleted.

6 changes: 4 additions & 2 deletions lib/common/func.is-ng-type.ts
@@ -1,5 +1,7 @@
import { jitReflector } from './core.reflect';
import coreReflectJit from './core.reflect.jit';
import { Type } from './core.types';

export const isNgType = (declaration: Type<any>, type: string): boolean =>
jitReflector.annotations(declaration).some(annotation => annotation.ngMetadataName === type);
coreReflectJit()
.annotations(declaration)
.some(annotation => annotation.ngMetadataName === type);
6 changes: 3 additions & 3 deletions lib/mock-builder/promise/get-override-meta.ts
@@ -1,14 +1,14 @@
import { Directive } from '@angular/core';

import { directiveResolver } from '../../common/core.reflect';
import coreReflectDirective from '../../common/core.reflect.directive';
import { isNgDef } from '../../common/func.is-ng-def';

export default (value: any): Directive | undefined => {
if (isNgDef(value, 'c')) {
return directiveResolver.resolve(value);
return coreReflectDirective().resolve(value);
}
if (isNgDef(value, 'd')) {
return directiveResolver.resolve(value);
return coreReflectDirective().resolve(value);
}

return undefined;
Expand Down
4 changes: 2 additions & 2 deletions lib/mock-builder/promise/get-root-provider-parameters.ts
@@ -1,4 +1,4 @@
import { jitReflector } from '../../common/core.reflect';
import coreReflectJit from '../../common/core.reflect.jit';
import { NG_MOCKS_ROOT_PROVIDERS } from '../../common/core.tokens';
import ngMocksUniverse from '../../common/ng-mocks-universe';

Expand All @@ -17,7 +17,7 @@ export default (mockDef: BuilderData['mockDef']): Set<any> => {
for (const def of bucket) {
addDefToRootProviderParameters(parameters, mockDef, def);

for (const decorators of jitReflector.parameters(def)) {
for (const decorators of coreReflectJit().parameters(def)) {
const provide: any = extractDep(decorators);
if (skipRootProviderDependency(provide)) {
continue;
Expand Down
4 changes: 2 additions & 2 deletions lib/mock-module/mock-module.spec.ts
Expand Up @@ -19,7 +19,7 @@ import {
import { BrowserModule, By } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';

import { ngModuleResolver } from '../common/core.reflect';
import coreReflectModule from '../common/core.reflect.module';
import ngMocksUniverse from '../common/ng-mocks-universe';
import { MockComponent } from '../mock-component/mock-component';
import { MockRender } from '../mock-render/mock-render';
Expand Down Expand Up @@ -242,7 +242,7 @@ describe('mockProvider', () => {

it('should skip multi tokens in a mock module', () => {
const mock = MockModule(CustomTokenModule);
const def = ngModuleResolver.resolve(mock);
const def = coreReflectModule().resolve(mock);
expect(def.providers).toEqual([
{
deps: [Injector],
Expand Down
8 changes: 4 additions & 4 deletions tests/issue-145/components.spec.ts
@@ -1,7 +1,7 @@
import { Component } from '@angular/core';
import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
import { MockComponent } from 'ng-mocks';
import { directiveResolver } from 'ng-mocks/dist/lib/common/core.reflect';
import coreReflectDirective from 'ng-mocks/dist/lib/common/core.reflect.directive';

@Component({
selector: 'component',
Expand Down Expand Up @@ -38,7 +38,7 @@ export class ComponentValidator {}
describe('issue-145:components', () => {
it('does not add NG_VALUE_ACCESSOR to components', () => {
const mock = MockComponent(ComponentDefault);
const { providers } = directiveResolver.resolve(mock);
const { providers } = coreReflectDirective().resolve(mock);
expect(providers).toEqual([
{
provide: ComponentDefault,
Expand All @@ -49,7 +49,7 @@ describe('issue-145:components', () => {

it('adds NG_VALUE_ACCESSOR to components that provide it', () => {
const mock = MockComponent(ComponentValueAccessor);
const { providers } = directiveResolver.resolve(mock);
const { providers } = coreReflectDirective().resolve(mock);
expect(providers).toEqual([
{
provide: ComponentValueAccessor,
Expand All @@ -65,7 +65,7 @@ describe('issue-145:components', () => {

it('respects NG_VALIDATORS too', () => {
const mock = MockComponent(ComponentValidator);
const { providers } = directiveResolver.resolve(mock);
const { providers } = coreReflectDirective().resolve(mock);
expect(providers).toEqual([
{
provide: ComponentValidator,
Expand Down
8 changes: 4 additions & 4 deletions tests/issue-145/directives.spec.ts
@@ -1,7 +1,7 @@
import { Directive } from '@angular/core';
import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
import { MockDirective } from 'ng-mocks';
import { directiveResolver } from 'ng-mocks/dist/lib/common/core.reflect';
import coreReflectDirective from 'ng-mocks/dist/lib/common/core.reflect.directive';

@Directive({
selector: 'directive',
Expand Down Expand Up @@ -36,7 +36,7 @@ export class DirectiveValidator {}
describe('issue-145:directives', () => {
it('does not add NG_VALUE_ACCESSOR to directives', () => {
const mock = MockDirective(DirectiveDefault);
const { providers } = directiveResolver.resolve(mock);
const { providers } = coreReflectDirective().resolve(mock);
expect(providers).toEqual([
{
provide: DirectiveDefault,
Expand All @@ -47,7 +47,7 @@ describe('issue-145:directives', () => {

it('adds NG_VALUE_ACCESSOR to directives that provide it', () => {
const mock = MockDirective(DirectiveValueAccessor);
const { providers } = directiveResolver.resolve(mock);
const { providers } = coreReflectDirective().resolve(mock);
expect(providers).toEqual([
{
provide: DirectiveValueAccessor,
Expand All @@ -63,7 +63,7 @@ describe('issue-145:directives', () => {

it('respects NG_VALIDATORS too', () => {
const mock = MockDirective(DirectiveValidator);
const { providers } = directiveResolver.resolve(mock);
const { providers } = coreReflectDirective().resolve(mock);
expect(providers).toEqual([
{
provide: DirectiveValidator,
Expand Down

0 comments on commit b9b068c

Please sign in to comment.