Skip to content

Commit

Permalink
Merge pull request woocommerce#28995 from woocommerce/packages/api/si…
Browse files Browse the repository at this point in the history
…mplify-imports

simplify imports/exports in api package
  • Loading branch information
zhongruige authored Feb 4, 2021
2 parents ce31630 + ba6debf commit 9ae9a2f
Show file tree
Hide file tree
Showing 26 changed files with 112 additions and 57 deletions.
2 changes: 1 addition & 1 deletion tests/e2e/api/src/__test_data__/dummy-model.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Model } from '../models/model';
import { Model } from '../models';

/**
* A dummy model that can be used in test files.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Model } from '../../models/model';
import { Model } from '../../models';
import {
CreatesModels,
DeletesChildModels,
Expand Down
3 changes: 3 additions & 0 deletions tests/e2e/api/src/framework/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export * from './transformations';
export * from './model-repository';
export * from './model-transformer';
4 changes: 2 additions & 2 deletions tests/e2e/api/src/framework/model-repository.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { Model, ModelID } from '../models/model';
import { Model, ModelID } from '../models';

/**
* An interface for describing the shape of parent identifiers for repositories.
*
* @typedef ModelParentID
* @alias Object.<string,ModelID>
*/
interface ModelParentID {
export interface ModelParentID {
[ key: number ]: ModelID
}

Expand Down
3 changes: 1 addition & 2 deletions tests/e2e/api/src/framework/model-transformer.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { Model } from '../models/model';
import { ModelConstructor } from '../models/shared-types';
import { Model, ModelConstructor } from '../models';

/**
* An interface for an object that can perform transformations both to and from a representation
Expand Down
6 changes: 6 additions & 0 deletions tests/e2e/api/src/framework/transformations/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
export * from './add-property-transformation';
export * from './custom-transformation';
export * from './ignore-property-transformation';
export * from './key-change-transformation';
export * from './model-transformer-transformation';
export * from './property-type-transformation';
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { ModelTransformation, TransformationOrder } from '../model-transformer';
import { Model } from '../../models/model';
import { Model } from '../../models';

/**
* @typedef KeyChanges
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { ModelTransformation, ModelTransformer, TransformationOrder } from '../model-transformer';
import { Model } from '../../models/model';
import { ModelConstructor } from '../../models/shared-types';
import { Model, ModelConstructor } from '../../models';

/**
* A model transformation that applies another transformer to a property.
Expand Down
8 changes: 4 additions & 4 deletions tests/e2e/api/src/models/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
export { SimpleProduct } from './products/simple-product';

export { SettingGroup } from './settings/setting-group';
export { Setting } from './settings/setting';
export * from './products';
export * from './model';
export * from './settings';
export * from './shared-types';
3 changes: 3 additions & 0 deletions tests/e2e/api/src/models/products/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export * from './abstract-product';
export * from './shared-types';
export * from './simple-product';
7 changes: 4 additions & 3 deletions tests/e2e/api/src/models/products/simple-product.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
import { AbstractProduct, ProductSearchParams, ProductUpdateParams } from './abstract-product';
import { HTTPClient } from '../../http';
import { simpleProductRESTRepository } from '../../repositories/rest/products/simple-product';
import { simpleProductRESTRepository } from '../../repositories';
import {
CreatesModels,
DeletesModels, ListsModels,
DeletesModels,
ListsModels,
ModelRepositoryParams,
ReadsModels,
UpdatesModels,
} from '../../framework/model-repository';
} from '../../framework';

/**
* The parameters embedded in this generic can be used in the ModelRepository in order to give
Expand Down
2 changes: 2 additions & 0 deletions tests/e2e/api/src/models/settings/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
export * from './setting-group';
export * from './setting';
4 changes: 2 additions & 2 deletions tests/e2e/api/src/models/settings/setting-group.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Model, ModelID } from '../model';
import { HTTPClient } from '../../http';
import { settingGroupRESTRepository } from '../../repositories/rest/settings/setting-group';
import { ListsModels, ModelRepositoryParams } from '../../framework/model-repository';
import { settingGroupRESTRepository } from '../../repositories';
import { ListsModels, ModelRepositoryParams } from '../../framework';

/**
* The parameters embedded in this generic can be used in the ModelRepository in order to give
Expand Down
4 changes: 2 additions & 2 deletions tests/e2e/api/src/models/settings/setting.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { Model, ModelID } from '../model';
import { HTTPClient } from '../../http';
import { settingRESTRepository } from '../../repositories/rest/settings/setting';
import { settingRESTRepository } from '../../repositories';
import {
ModelRepositoryParams,
ListsChildModels,
ReadsChildModels,
UpdatesChildModels,
} from '../../framework/model-repository';
} from '../../framework';

/**
* The parameters embedded in this generic can be used in the ModelRepository in order to give
Expand Down
1 change: 1 addition & 0 deletions tests/e2e/api/src/repositories/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from './rest';
5 changes: 2 additions & 3 deletions tests/e2e/api/src/repositories/rest/__tests__/shared.spec.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { mock, MockProxy } from 'jest-mock-extended';
import { HTTPClient, HTTPResponse } from '../../../http';
import { ModelTransformer } from '../../../framework/model-transformer';
import { ModelTransformer, ModelRepositoryParams } from '../../../framework';
import { DummyModel } from '../../../__test_data__/dummy-model';
import {
restCreate,
Expand All @@ -12,8 +12,7 @@ import {
restUpdate,
restUpdateChild,
} from '../shared';
import { ModelRepositoryParams } from '../../../framework/model-repository';
import { Model } from '../../../models/model';
import { Model } from '../../../models';

type DummyModelParams = ModelRepositoryParams< DummyModel, never, { search: string }, 'name' >

Expand Down
2 changes: 2 additions & 0 deletions tests/e2e/api/src/repositories/rest/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
export * from './products';
export * from './settings';
7 changes: 7 additions & 0 deletions tests/e2e/api/src/repositories/rest/products/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { createProductTransformer } from './shared';
import { simpleProductRESTRepository } from './simple-product';

export {
createProductTransformer,
simpleProductRESTRepository,
};
27 changes: 17 additions & 10 deletions tests/e2e/api/src/repositories/rest/products/shared.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,23 @@
import { ModelTransformation, ModelTransformer, TransformationOrder } from '../../../framework/model-transformer';
import { KeyChangeTransformation } from '../../../framework/transformations/key-change-transformation';
import { AbstractProduct } from '../../../models/products/abstract-product';
import { AddPropertyTransformation } from '../../../framework/transformations/add-property-transformation';
import { IgnorePropertyTransformation } from '../../../framework/transformations/ignore-property-transformation';
import {
ModelTransformation,
ModelTransformer,
TransformationOrder,
KeyChangeTransformation,
AddPropertyTransformation,
IgnorePropertyTransformation,
PropertyType,
PropertyTypeTransformation,
} from '../../../framework/transformations/property-type-transformation';
import { CustomTransformation } from '../../../framework/transformations/custom-transformation';
import { ProductAttribute, ProductDownload, ProductImage, ProductTerm } from '../../../models/products/shared-types';
import { ModelTransformerTransformation } from '../../../framework/transformations/model-transformer-transformation';
import { MetaData } from '../../../models/shared-types';
CustomTransformation,
ModelTransformerTransformation,
} from '../../../framework';
import {
AbstractProduct,
ProductAttribute,
ProductDownload,
ProductImage,
ProductTerm,
MetaData,
} from '../../../models';
import { createMetaDataTransformer } from '../shared';

/**
Expand Down
16 changes: 11 additions & 5 deletions tests/e2e/api/src/repositories/rest/products/simple-product.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,23 @@
import { HTTPClient } from '../../../http';
import { ModelRepository } from '../../../framework/model-repository';
import { SimpleProduct } from '../../../models';
import { ModelRepository } from '../../../framework';
import {
SimpleProduct,
ModelID,
CreatesSimpleProducts,
DeletesSimpleProducts,
ListsSimpleProducts,
ReadsSimpleProducts,
SimpleProductRepositoryParams,
UpdatesSimpleProducts,
} from '../../../models/products/simple-product';
} from '../../../models';
import { createProductTransformer } from './shared';
import { restCreate, restDelete, restList, restRead, restUpdate } from '../shared';
import { ModelID } from '../../../models/model';
import {
restCreate,
restDelete,
restList,
restRead,
restUpdate,
} from '../shared';

/**
* Creates a new ModelRepository instance for interacting with models via the REST API.
Expand Down
7 changes: 7 additions & 0 deletions tests/e2e/api/src/repositories/rest/settings/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import settingRESTRepository from './setting';
import settingGroupRESTRepository from './setting-group';

export {
settingRESTRepository,
settingGroupRESTRepository,
};
17 changes: 11 additions & 6 deletions tests/e2e/api/src/repositories/rest/settings/setting-group.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
import { HTTPClient } from '../../../http';
import { ModelRepository } from '../../../framework/model-repository';
import { SettingGroup } from '../../../models';
import { ListsSettingGroups, SettingGroupRepositoryParams } from '../../../models/settings/setting-group';
import { ModelTransformer } from '../../../framework/model-transformer';
import { KeyChangeTransformation } from '../../../framework/transformations/key-change-transformation';
import {
ModelRepository,
ModelTransformer,
KeyChangeTransformation,
} from '../../../framework';
import {
SettingGroup,
ListsSettingGroups,
SettingGroupRepositoryParams,
} from '../../../models';
import { restList } from '../shared';

function createTransformer(): ModelTransformer< SettingGroup > {
Expand All @@ -20,7 +25,7 @@ function createTransformer(): ModelTransformer< SettingGroup > {
* @param {HTTPClient} httpClient The HTTP client for the REST requests to be made using.
* @return {ListsSettingGroups} The created repository.
*/
export function settingGroupRESTRepository( httpClient: HTTPClient ): ListsSettingGroups {
export default function settingGroupRESTRepository( httpClient: HTTPClient ): ListsSettingGroups {
const transformer = createTransformer();

return new ModelRepository(
Expand Down
15 changes: 9 additions & 6 deletions tests/e2e/api/src/repositories/rest/settings/setting.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
import { HTTPClient } from '../../../http';
import { ModelRepository, ParentID } from '../../../framework/model-repository';
import { Setting } from '../../../models';
import {
ModelRepository,
ParentID,
ModelTransformer,
} from '../../../framework';
import {
ModelID,
Setting,
ListsSettings,
ReadsSettings,
SettingRepositoryParams,
UpdatesSettings,
} from '../../../models/settings/setting';
import { ModelTransformer } from '../../../framework/model-transformer';
} from '../../../models';
import { restListChild, restReadChild, restUpdateChild } from '../shared';
import { ModelID } from '../../../models/model';

function createTransformer(): ModelTransformer< Setting > {
return new ModelTransformer( [] );
Expand All @@ -21,7 +24,7 @@ function createTransformer(): ModelTransformer< Setting > {
* @param {HTTPClient} httpClient The HTTP client for the REST requests to be made using.
* @return {ListsSettings|ReadsSettings|UpdatesSettings} The created repository.
*/
export function settingRESTRepository( httpClient: HTTPClient ): ListsSettings & ReadsSettings & UpdatesSettings {
export default function settingRESTRepository( httpClient: HTTPClient ): ListsSettings & ReadsSettings & UpdatesSettings {
const buildURL = ( parent: ParentID< SettingRepositoryParams >, id: ModelID ) => '/wc/v3/settings/' + parent + '/' + id;
const transformer = createTransformer();

Expand Down
15 changes: 10 additions & 5 deletions tests/e2e/api/src/repositories/rest/shared.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
import { ModelTransformer } from '../../framework/model-transformer';
import { MetaData, ModelConstructor } from '../../models/shared-types';
import { IgnorePropertyTransformation } from '../../framework/transformations/ignore-property-transformation';
import { HTTPClient } from '../../http';
import {
ListFn,
Expand All @@ -16,8 +13,16 @@ import {
UpdateChildFn,
DeleteChildFn,
CreateFn,
} from '../../framework/model-repository';
import { ModelID } from '../../models/model';
ModelTransformer,
IgnorePropertyTransformation,
// @ts-ignore
ModelParentID,
} from '../../framework';
import {
ModelID,
MetaData,
ModelConstructor,
} from '../../models';

/**
* Creates a new transformer for metadata models.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { mock, MockProxy } from 'jest-mock-extended';
import { UpdatesSettings } from '../../models/settings/setting';
import { UpdatesSettings } from '../../models';
import { SettingService } from '../setting-service';

describe( 'SettingService', () => {
Expand Down
2 changes: 1 addition & 1 deletion tests/e2e/api/src/services/setting-service.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Setting, UpdatesSettings } from '../models/settings/setting';
import { Setting, UpdatesSettings } from '../models';

/**
* A service that wraps setting changes in convenient methods.
Expand Down

0 comments on commit 9ae9a2f

Please sign in to comment.