编译问题

This commit is contained in:
Xu Chang 2022-06-21 18:27:14 +08:00
parent a2fd067634
commit b7bf70a954
7 changed files with 22 additions and 18 deletions

View File

@ -1,7 +1,7 @@
import { EntityDict } from "general-app-domain";
import { WechatMpEnv } from "general-app-domain/Token/Schema";
import { QiniuUploadInfo } from "oak-frontend-base/src/types/Upload";
import { AspectDict as CommonAspectDict } from 'oak-common-aspect/src/aspectDict';
// import { AspectDict as CommonAspectDict } from 'oak-common-aspect/src/aspectDict';
import { GeneralRuntimeContext } from "..";
type GeneralAspectDict<ED extends EntityDict, Cxt extends GeneralRuntimeContext<ED>> = {
@ -17,4 +17,4 @@ type GeneralAspectDict<ED extends EntityDict, Cxt extends GeneralRuntimeContext<
getUploadInfo: (params: { origin: string, fileName: string }, context: Cxt) => Promise<QiniuUploadInfo>,
};
export type AspectDict<ED extends EntityDict, Cxt extends GeneralRuntimeContext<ED>> = CommonAspectDict<ED, Cxt> & GeneralAspectDict<ED, Cxt>;
export type AspectDict<ED extends EntityDict, Cxt extends GeneralRuntimeContext<ED>> = GeneralAspectDict<ED, Cxt>;

View File

@ -2,7 +2,7 @@ import { GeneralRuntimeContext } from '../RuntimeContext';
import { EntityDict } from 'general-app-domain';
import { SystemConfig } from 'general-app-domain/System/Schema';
import qiniuInstance from '../utils/externalUpload/qiniu';
import { QiniuUploadInfo } from 'oak-frontend-base/src/types/Upload';
import { QiniuUploadInfo } from 'oak-frontend-base/lib/types/Upload';
const ExternalUploadClazz = {
qiniu: qiniuInstance,

View File

@ -1,6 +1,6 @@
import { loginByPassword, loginMp, loginWechatMp, syncUserInfoWechatMp } from './token';
import { getUploadInfo } from './extraFile';
import commonAspectDict from 'oak-common-aspect';
// import commonAspectDict from 'oak-common-aspect';
import { assign } from 'lodash';
export const aspectDict = assign({
loginByPassword,
@ -8,6 +8,6 @@ export const aspectDict = assign({
loginWechatMp,
syncUserInfoWechatMp,
getUploadInfo,
}, commonAspectDict);
}/* , commonAspectDict */);
// export type AspectDict<ED extends EntityDict & BaseEntityDict> = TokenAD<ED> & CrudAD<ED>;

View File

@ -3,6 +3,7 @@ import { Action, Feature } from 'oak-frontend-base';
import { Aspect, AspectWrapper, Context, SelectRowShape } from 'oak-domain/lib/types';
import { RWLock } from 'oak-domain/lib/utils/concurrent';
import { Cache } from 'oak-frontend-base';
import { AspectDict as CommonAspectDict } from 'oak-common-aspect/lib/aspectDict';
import assert from 'assert';
import { AspectDict } from '../aspects/aspectDict';
@ -32,13 +33,13 @@ const projection : {
}
};
export class Application<ED extends EntityDict, Cxt extends GeneralRuntimeContext<ED>, AD extends AspectDict<ED, Cxt>> extends Feature<ED, Cxt, AD> {
export class Application<ED extends EntityDict, Cxt extends GeneralRuntimeContext<ED>, AD extends AspectDict<ED, Cxt>> extends Feature<ED, Cxt, AD & CommonAspectDict<ED, Cxt>> {
private applicationId: string;
private application?: SelectRowShape<ED['application']['Schema'], typeof projection>;
private rwLock: RWLock;
private cache: Cache<ED, Cxt, AD>;
private cache: Cache<ED, Cxt, AD & CommonAspectDict<ED, Cxt>>;
constructor(aspectWrapper: AspectWrapper<ED, Cxt, AD>, applicationId: string, cache: Cache<ED, Cxt, AD>) {
constructor(aspectWrapper: AspectWrapper<ED, Cxt, AD>, applicationId: string, cache: Cache<ED, Cxt, AD & CommonAspectDict<ED, Cxt>>) {
super(aspectWrapper);
this.rwLock = new RWLock();
this.applicationId = applicationId;

View File

@ -2,6 +2,7 @@ import { EntityDict } from 'general-app-domain';
import { Action, Feature } from 'oak-frontend-base';
import { AspectWrapper, DeduceCreateOperationData } from 'oak-domain/lib/types';
import { Upload } from 'oak-frontend-base';
import { AspectDict as CommonAspectDict } from 'oak-common-aspect/lib/aspectDict';
import { AspectDict } from '../aspects/aspectDict';
import { GeneralRuntimeContext } from '..';
@ -9,8 +10,8 @@ export class ExtraFile<
ED extends EntityDict,
Cxt extends GeneralRuntimeContext<ED>,
AD extends AspectDict<ED, Cxt>
> extends Feature<ED, Cxt, AD> {
constructor(aspectWrapper: AspectWrapper<ED, Cxt, AD>) {
> extends Feature<ED, Cxt, AD & CommonAspectDict<ED, Cxt>> {
constructor(aspectWrapper: AspectWrapper<ED, Cxt, AD & CommonAspectDict<ED, Cxt>>) {
super(aspectWrapper);
}
@Action

View File

@ -1,4 +1,5 @@
import { EntityDict } from 'general-app-domain';
import { AspectDict as CommonAspectDict } from 'oak-common-aspect/lib/aspectDict';
import { Token } from './token';
import { ExtraFile } from './extraFile';
import { Application } from './application';
@ -8,14 +9,14 @@ import { AspectDict } from '../aspects/aspectDict';
import { AspectWrapper } from 'oak-domain/lib/types';
export function initialize<ED extends EntityDict, Cxt extends GeneralRuntimeContext<ED>, AD extends AspectDict<ED, Cxt>>(
aspectWrapper: AspectWrapper<ED, Cxt, AD>,
basicFeatures: BasicFeatures<ED, Cxt, AD>,
aspectWrapper: AspectWrapper<ED, Cxt, AD & CommonAspectDict<ED, Cxt>>,
basicFeatures: BasicFeatures<ED, Cxt, AD & CommonAspectDict<ED, Cxt>>,
applicationId: string,
context: Cxt,
) {
const token = new Token<ED, Cxt, AD>(aspectWrapper, basicFeatures.cache, context);
const extraFile = new ExtraFile<ED, Cxt, AD>(aspectWrapper);
const application = new Application<ED, Cxt, AD>(aspectWrapper, applicationId, basicFeatures.cache);
const token = new Token<ED, Cxt, AD & CommonAspectDict<ED, Cxt>>(aspectWrapper, basicFeatures.cache, context);
const extraFile = new ExtraFile<ED, Cxt, AD & CommonAspectDict<ED, Cxt>>(aspectWrapper);
const application = new Application<ED, Cxt, AD & CommonAspectDict<ED, Cxt>>(aspectWrapper, applicationId, basicFeatures.cache);
return {
token,
extraFile,

View File

@ -4,17 +4,18 @@ import { Action, Feature } from 'oak-frontend-base';
import { RWLock } from 'oak-domain/lib/utils/concurrent';
import { WechatMpEnv } from 'general-app-domain/Token/Schema';
import { Cache } from 'oak-frontend-base';
import { AspectDict as CommonAspectDict } from 'oak-common-aspect/lib/aspectDict';
import { AspectDict } from '../aspects/aspectDict';
import { GeneralRuntimeContext } from '..';
import { AspectWrapper } from 'oak-domain/lib/types';
export class Token<ED extends EntityDict, Cxt extends GeneralRuntimeContext<ED>, AD extends AspectDict<ED, Cxt>> extends Feature<ED, Cxt, AD> {
export class Token<ED extends EntityDict, Cxt extends GeneralRuntimeContext<ED>, AD extends AspectDict<ED, Cxt>> extends Feature<ED, Cxt, AD & CommonAspectDict<ED, Cxt>> {
private token?: string;
private rwLock: RWLock;
private cache: Cache<ED, Cxt, AD>;
private cache: Cache<ED, Cxt, AD & CommonAspectDict<ED, Cxt>>;
private context: Cxt;
constructor(aspectWrapper: AspectWrapper<ED, Cxt, AD>, cache: Cache<ED, Cxt, AD>, context: Cxt) {
constructor(aspectWrapper: AspectWrapper<ED, Cxt, AD & CommonAspectDict<ED, Cxt>>, cache: Cache<ED, Cxt, AD & CommonAspectDict<ED, Cxt>>, context: Cxt) {
super(aspectWrapper);
this.rwLock = new RWLock();
this.cache = cache;