Browse Source

Merge pull request #6905 from abpframework/auto-merge/rel-4-1/19

Merge branch dev with rel-4.1
pull/6913/head
Mehmet Erim 5 years ago
committed by GitHub
parent
commit
356aba9bda
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleTemplateBase.cs
  2. 22
      npm/ng-packs/packages/core/src/lib/models/utility.ts
  3. 14
      npm/ng-packs/packages/core/src/lib/services/permission.service.ts
  4. 4
      npm/ng-packs/packages/core/src/lib/utils/internal-store-utils.ts
  5. 6
      npm/ng-packs/packages/core/testing/src/lib/core-testing.module.ts
  6. 1
      npm/ng-packs/packages/core/testing/src/lib/services/index.ts
  7. 34
      npm/ng-packs/packages/core/testing/src/lib/services/mock-permission.service.ts
  8. 10
      npm/ng-packs/packages/core/testing/src/lib/utils/clear-page.util.ts
  9. 2
      npm/ng-packs/packages/core/testing/src/lib/utils/index.ts
  10. 6
      npm/ng-packs/packages/core/testing/src/lib/utils/wait.util.ts
  11. 2
      npm/ng-packs/packages/core/testing/src/public-api.ts
  12. 17
      npm/ng-packs/scripts/publish.ts

2
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleTemplateBase.cs

@ -75,7 +75,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.Module
private static void UpdateNuGetConfig(ProjectBuildContext context, List<ProjectBuildPipelineStep> steps)
{
steps.Add(new UpdateNuGetConfigStep("/aspnet-core/NuGet.Config"));
steps.Add(new UpdateNuGetConfigStep("/NuGet.Config"));
}
private void CleanupFolderHierarchy(ProjectBuildContext context, List<ProjectBuildPipelineStep> steps)

22
npm/ng-packs/packages/core/src/lib/models/utility.ts

@ -1,13 +1,21 @@
/* tslint:disable:ban-types */
import { TemplateRef, Type } from '@angular/core';
export type DeepPartial<T> = {
[P in keyof T]?: T[P] extends Serializable ? DeepPartial<T[P]> : T[P];
};
export type DeepPartial<T> = Partible<T> extends never
? T
: {
[K in keyof T]?: DeepPartial<T[K]>;
};
type Serializable = Record<
string | number | symbol,
string | number | boolean | Record<string | number | symbol, any>
>;
type Partible<T> = T extends Primitive | Array<any>
? never
: {
[K in keyof T]: T[K] extends Function ? never : T[K];
} extends T
? T
: never;
export type Primitive = undefined | null | boolean | string | number | bigint | symbol;
export type InferredInstanceOf<T> = T extends Type<infer U> ? U : never;
export type InferredContextOf<T> = T extends TemplateRef<infer U> ? U : never;

14
npm/ng-packs/packages/core/src/lib/services/permission.service.ts

@ -6,7 +6,7 @@ import { ConfigStateService } from './config-state.service';
@Injectable({ providedIn: 'root' })
export class PermissionService {
constructor(private configState: ConfigStateService) {}
constructor(protected configState: ConfigStateService) {}
getGrantedPolicy$(key: string) {
return this.getStream().pipe(
@ -19,7 +19,7 @@ export class PermissionService {
return this.isPolicyGranted(key, policies);
}
private isPolicyGranted(key: string, grantedPolicies: Record<string, boolean>) {
protected isPolicyGranted(key: string, grantedPolicies: Record<string, boolean>) {
if (!key) return true;
const orRegexp = /\|\|/g;
@ -43,19 +43,19 @@ export class PermissionService {
return this.getPolicy(key, grantedPolicies);
}
private getStream() {
protected getStream() {
return this.configState.getAll$().pipe(map(this.mapToPolicies));
}
private getSnapshot() {
protected getSnapshot() {
return this.mapToPolicies(this.configState.getAll());
}
private mapToPolicies(applicationConfiguration: ApplicationConfigurationDto) {
return snq(() => applicationConfiguration.auth.grantedPolicies);
protected mapToPolicies(applicationConfiguration: ApplicationConfigurationDto) {
return snq(() => applicationConfiguration.auth.grantedPolicies, {});
}
private getPolicy(key: string, grantedPolicies: Record<string, boolean>) {
protected getPolicy(key: string, grantedPolicies: Record<string, boolean>) {
return snq(() => grantedPolicies[key], false);
}
}

4
npm/ng-packs/packages/core/src/lib/utils/internal-store-utils.ts

@ -33,7 +33,7 @@ export class InternalStore<State> {
}
this.state$.next(patchedState);
this.update$.next(patchedState);
this.update$.next(patchedState as DeepPartial<State>);
}
deepPatch(state: DeepPartial<State>) {
@ -43,7 +43,7 @@ export class InternalStore<State> {
set(state: State) {
this.state$.next(state);
this.update$.next(state);
this.update$.next(state as DeepPartial<State>);
}
reset() {

6
npm/ng-packs/packages/core/testing/src/lib/core-testing.module.ts

@ -4,6 +4,7 @@ import {
coreOptionsFactory,
CORE_OPTIONS,
LIST_QUERY_DEBOUNCE_TIME,
PermissionService,
RestService,
} from '@abp/ng.core';
import { APP_BASE_HREF } from '@angular/common';
@ -11,6 +12,7 @@ import { ModuleWithProviders, NgModule } from '@angular/core';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { provideRoutes } from '@angular/router';
import { RouterTestingModule } from '@angular/router/testing';
import { MockPermissionService } from './services/mock-permission.service';
import { MockRestService } from './services/mock-rest.service';
/**
@ -42,6 +44,10 @@ export class CoreTestingModule {
provide: LIST_QUERY_DEBOUNCE_TIME,
useValue: listQueryDebounceTime,
},
{
provide: PermissionService,
useClass: MockPermissionService,
},
{
provide: RestService,
useClass: MockRestService,

1
npm/ng-packs/packages/core/testing/src/lib/services/index.ts

@ -1 +1,2 @@
export * from './mock-permission.service';
export * from './mock-rest.service';

34
npm/ng-packs/packages/core/testing/src/lib/services/mock-permission.service.ts

@ -0,0 +1,34 @@
import { ConfigStateService, PermissionService } from '@abp/ng.core';
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root',
})
export class MockPermissionService extends PermissionService {
constructor(protected configState: ConfigStateService) {
super(configState);
this.grantAllPolicies();
}
grantAllPolicies() {
const grantedPolicies = new Proxy(
{},
{
get() {
return true;
},
},
);
this.configState['store'].deepPatch({ auth: { grantedPolicies } });
}
grantPolicies(keys: string[]) {
const grantedPolicies = keys.reduce((policies, key) => {
policies[key] = true;
return policies;
}, {});
this.configState['store'].deepPatch({ auth: { grantedPolicies } });
}
}

10
npm/ng-packs/packages/core/testing/src/lib/utils/clear-page.util.ts

@ -0,0 +1,10 @@
import { ComponentFixture } from '@angular/core/testing';
export function clearPage<T extends any>(_fixture: ComponentFixture<T>) {
if (!document) return;
const elements = document.querySelectorAll('body > *');
elements.forEach(element => {
if (/^(abp|ngb)-/i.test(element.tagName)) document.body.removeChild(element);
});
}

2
npm/ng-packs/packages/core/testing/src/lib/utils/index.ts

@ -0,0 +1,2 @@
export * from './clear-page.util';
export * from './wait.util';

6
npm/ng-packs/packages/core/testing/src/lib/utils/wait.util.ts

@ -0,0 +1,6 @@
import { ComponentFixture } from '@angular/core/testing';
export function wait<T extends any>(fixture: ComponentFixture<T>, timeout = 0) {
fixture.detectChanges();
return new Promise(res => setTimeout(res, timeout));
}

2
npm/ng-packs/packages/core/testing/src/public-api.ts

@ -1 +1,3 @@
export * from './lib/core-testing.module';
export * from './lib/services';
export * from './lib/utils';

17
npm/ng-packs/scripts/publish.ts

@ -8,13 +8,14 @@ program
'-v, --nextVersion <version>',
'next semantic version. Available versions: ["major", "minor", "patch", "premajor", "preminor", "prepatch", "prerelease", "or type a custom version"]',
)
.option('-r, --registry <registry>', 'target npm server registry')
.option('-p, --preview', 'publishes with preview tag')
.option('-r, --rc', 'publishes with next tag')
.option('-g, --skipGit', 'skips git push');
program.parse(process.argv);
const publish = async () => {
(async () => {
const versions = ['major', 'minor', 'patch', 'premajor', 'preminor', 'prepatch', 'prerelease'];
if (!program.nextVersion) {
@ -22,9 +23,11 @@ const publish = async () => {
process.exit(1);
}
const registry = program.preview
? 'https://www.myget.org/F/abp-nightly/auth/8f2a5234-1bce-4dc7-b976-2983078590a9/npm/'
: 'https://registry.npmjs.org';
const registry =
program.registry ||
(program.preview
? 'https://www.myget.org/F/abp-nightly/auth/8f2a5234-1bce-4dc7-b976-2983078590a9/npm/'
: 'https://registry.npmjs.org');
try {
await fse.remove('../dist');
@ -88,8 +91,4 @@ const publish = async () => {
}
process.exit(0);
};
publish();
export default publish;
})();

Loading…
Cancel
Save