pure-orm 4.0.0-3 → 4.0.0-6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -3
- package/coverage/clover.xml +347 -343
- package/coverage/coverage-final.json +2 -2
- package/coverage/lcov-report/dist/src/factory.js.html +41 -17
- package/coverage/lcov-report/dist/src/index.html +14 -14
- package/coverage/lcov-report/dist/src/index.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/blog/index.html +1 -1
- package/coverage/lcov-report/dist/test-utils/blog/models/article.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/blog/models/article_tag.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/blog/models/index.html +1 -1
- package/coverage/lcov-report/dist/test-utils/blog/models/person.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/blog/models/tag.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/blog/orm.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/five/index.html +1 -1
- package/coverage/lcov-report/dist/test-utils/five/models/index.html +1 -1
- package/coverage/lcov-report/dist/test-utils/five/models/line-item.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/five/models/order.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/five/models/parcel-event.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/five/models/parcel-line-item.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/five/models/parcel.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/five/orm.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/nine/index.html +1 -1
- package/coverage/lcov-report/dist/test-utils/nine/models/feature-switch.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/nine/models/index.html +1 -1
- package/coverage/lcov-report/dist/test-utils/nine/orm.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order/index.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order/models/index.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order/models/line-item.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order/models/order.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order/models/product-variant.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order/models/product.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order/models/utm-source.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order/orm.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/index.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/actual-product-variant.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/color.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/customer.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/gender.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/index.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/inventory-level.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/line-item.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/order.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/parcel-event.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/parcel-line-item.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/parcel.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/physical-address.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/product-variant-image.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/product-variant.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/product.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/refund.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/shipment-actual-product-variant.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/shipment.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/size.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/utm-medium.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/utm-source.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/orm.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/six/index.html +1 -1
- package/coverage/lcov-report/dist/test-utils/six/models/customer.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/six/models/index.html +1 -1
- package/coverage/lcov-report/dist/test-utils/six/models/line-item.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/six/models/order.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/six/models/parcel-line-item.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/six/models/parcel.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/six/orm.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/thirteen/index.html +1 -1
- package/coverage/lcov-report/dist/test-utils/thirteen/models/audience.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/thirteen/models/brand.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/thirteen/models/category.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/thirteen/models/index.html +1 -1
- package/coverage/lcov-report/dist/test-utils/thirteen/models/member.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/thirteen/models/passion.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/thirteen/models/product.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/thirteen/models/recommendation-audience.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/thirteen/models/recommendation.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/thirteen/orm.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/three/index.html +1 -1
- package/coverage/lcov-report/dist/test-utils/three/results.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/twelve/index.html +1 -1
- package/coverage/lcov-report/dist/test-utils/twelve/models/index.html +1 -1
- package/coverage/lcov-report/dist/test-utils/twelve/models/member.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/twelve/models/prompt.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/twelve/orm.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/two/index.html +1 -1
- package/coverage/lcov-report/dist/test-utils/two/results.js.html +1 -1
- package/coverage/lcov-report/index.html +21 -21
- package/coverage/lcov-report/src/factory.ts.html +55 -25
- package/coverage/lcov-report/src/index.html +14 -14
- package/coverage/lcov-report/src/index.ts.html +1 -1
- package/coverage/lcov-report/test-utils/blog/index.html +1 -1
- package/coverage/lcov-report/test-utils/blog/models/article.ts.html +1 -1
- package/coverage/lcov-report/test-utils/blog/models/article_tag.ts.html +1 -1
- package/coverage/lcov-report/test-utils/blog/models/index.html +1 -1
- package/coverage/lcov-report/test-utils/blog/models/person.ts.html +1 -1
- package/coverage/lcov-report/test-utils/blog/models/tag.ts.html +1 -1
- package/coverage/lcov-report/test-utils/blog/orm.ts.html +1 -1
- package/coverage/lcov-report/test-utils/five/index.html +1 -1
- package/coverage/lcov-report/test-utils/five/models/index.html +1 -1
- package/coverage/lcov-report/test-utils/five/models/line-item.ts.html +1 -1
- package/coverage/lcov-report/test-utils/five/models/order.ts.html +1 -1
- package/coverage/lcov-report/test-utils/five/models/parcel-event.ts.html +1 -1
- package/coverage/lcov-report/test-utils/five/models/parcel-line-item.ts.html +1 -1
- package/coverage/lcov-report/test-utils/five/models/parcel.ts.html +1 -1
- package/coverage/lcov-report/test-utils/five/orm.ts.html +1 -1
- package/coverage/lcov-report/test-utils/nine/index.html +1 -1
- package/coverage/lcov-report/test-utils/nine/models/feature-switch.ts.html +1 -1
- package/coverage/lcov-report/test-utils/nine/models/index.html +1 -1
- package/coverage/lcov-report/test-utils/nine/orm.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order/index.html +1 -1
- package/coverage/lcov-report/test-utils/order/models/index.html +1 -1
- package/coverage/lcov-report/test-utils/order/models/line-item.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order/models/order.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order/models/product-variant.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order/models/product.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order/models/utm-source.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order/orm.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/index.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/actual-product-variant.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/color.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/customer.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/gender.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/index.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/inventory-level.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/line-item.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/order.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/parcel-event.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/parcel-line-item.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/parcel.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/physical-address.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/product-variant-image.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/product-variant.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/product.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/refund.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/shipment-actual-product-variant.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/shipment.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/size.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/utm-medium.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/utm-source.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/orm.ts.html +1 -1
- package/coverage/lcov-report/test-utils/six/index.html +1 -1
- package/coverage/lcov-report/test-utils/six/models/customer.ts.html +1 -1
- package/coverage/lcov-report/test-utils/six/models/index.html +1 -1
- package/coverage/lcov-report/test-utils/six/models/line-item.ts.html +1 -1
- package/coverage/lcov-report/test-utils/six/models/order.ts.html +1 -1
- package/coverage/lcov-report/test-utils/six/models/parcel-line-item.ts.html +1 -1
- package/coverage/lcov-report/test-utils/six/models/parcel.ts.html +1 -1
- package/coverage/lcov-report/test-utils/six/orm.ts.html +1 -1
- package/coverage/lcov-report/test-utils/thirteen/index.html +1 -1
- package/coverage/lcov-report/test-utils/thirteen/models/audience.ts.html +1 -1
- package/coverage/lcov-report/test-utils/thirteen/models/brand.ts.html +1 -1
- package/coverage/lcov-report/test-utils/thirteen/models/category.ts.html +1 -1
- package/coverage/lcov-report/test-utils/thirteen/models/index.html +1 -1
- package/coverage/lcov-report/test-utils/thirteen/models/member.ts.html +1 -1
- package/coverage/lcov-report/test-utils/thirteen/models/passion.ts.html +1 -1
- package/coverage/lcov-report/test-utils/thirteen/models/product.ts.html +1 -1
- package/coverage/lcov-report/test-utils/thirteen/models/recommendation-audience.ts.html +1 -1
- package/coverage/lcov-report/test-utils/thirteen/models/recommendation.ts.html +1 -1
- package/coverage/lcov-report/test-utils/thirteen/orm.ts.html +1 -1
- package/coverage/lcov-report/test-utils/three/index.html +1 -1
- package/coverage/lcov-report/test-utils/three/results.js.html +1 -1
- package/coverage/lcov-report/test-utils/twelve/index.html +1 -1
- package/coverage/lcov-report/test-utils/twelve/models/index.html +1 -1
- package/coverage/lcov-report/test-utils/twelve/models/member.ts.html +1 -1
- package/coverage/lcov-report/test-utils/twelve/models/prompt.ts.html +1 -1
- package/coverage/lcov-report/test-utils/twelve/orm.ts.html +1 -1
- package/coverage/lcov-report/test-utils/two/index.html +1 -1
- package/coverage/lcov-report/test-utils/two/results.js.html +1 -1
- package/coverage/lcov.info +688 -668
- package/dist/example/factories/orm.d.ts +3 -2
- package/dist/example/models/employer.d.ts +1 -1
- package/dist/example/models/job.d.ts +1 -1
- package/dist/example/models/person.d.ts +1 -1
- package/dist/src/factory.d.ts +5 -4
- package/dist/src/factory.js +14 -6
- package/dist/src/factory.spec.js +5 -5
- package/dist/test-utils/blog/models/article.d.ts +1 -1
- package/dist/test-utils/blog/models/article_tag.d.ts +1 -1
- package/dist/test-utils/blog/models/person.d.ts +1 -1
- package/dist/test-utils/blog/models/tag.d.ts +1 -1
- package/dist/test-utils/five/models/line-item.d.ts +1 -1
- package/dist/test-utils/five/models/order.d.ts +1 -1
- package/dist/test-utils/five/models/parcel-event.d.ts +1 -1
- package/dist/test-utils/five/models/parcel-line-item.d.ts +1 -1
- package/dist/test-utils/five/models/parcel.d.ts +1 -1
- package/dist/test-utils/five/orm.d.ts +3 -2
- package/dist/test-utils/nine/models/feature-switch.d.ts +1 -1
- package/dist/test-utils/nine/orm.d.ts +3 -2
- package/dist/test-utils/order/models/line-item.d.ts +1 -1
- package/dist/test-utils/order/models/order.d.ts +1 -1
- package/dist/test-utils/order/models/product-variant.d.ts +1 -1
- package/dist/test-utils/order/models/product.d.ts +1 -1
- package/dist/test-utils/order/models/utm-source.d.ts +1 -1
- package/dist/test-utils/order/orm.d.ts +3 -2
- package/dist/test-utils/order-more/models/actual-product-variant.d.ts +1 -1
- package/dist/test-utils/order-more/models/color.d.ts +1 -1
- package/dist/test-utils/order-more/models/customer.d.ts +1 -1
- package/dist/test-utils/order-more/models/gender.d.ts +1 -1
- package/dist/test-utils/order-more/models/inventory-level.d.ts +1 -1
- package/dist/test-utils/order-more/models/line-item.d.ts +1 -1
- package/dist/test-utils/order-more/models/order.d.ts +1 -1
- package/dist/test-utils/order-more/models/parcel-event.d.ts +1 -1
- package/dist/test-utils/order-more/models/parcel-line-item.d.ts +1 -1
- package/dist/test-utils/order-more/models/parcel.d.ts +1 -1
- package/dist/test-utils/order-more/models/physical-address.d.ts +1 -1
- package/dist/test-utils/order-more/models/product-variant-image.d.ts +1 -1
- package/dist/test-utils/order-more/models/product-variant.d.ts +1 -1
- package/dist/test-utils/order-more/models/product.d.ts +1 -1
- package/dist/test-utils/order-more/models/refund.d.ts +1 -1
- package/dist/test-utils/order-more/models/shipment-actual-product-variant.d.ts +1 -1
- package/dist/test-utils/order-more/models/shipment.d.ts +1 -1
- package/dist/test-utils/order-more/models/size.d.ts +1 -1
- package/dist/test-utils/order-more/models/utm-medium.d.ts +1 -1
- package/dist/test-utils/order-more/models/utm-source.d.ts +1 -1
- package/dist/test-utils/order-more/orm.d.ts +3 -2
- package/dist/test-utils/six/models/customer.d.ts +1 -1
- package/dist/test-utils/six/models/line-item.d.ts +1 -1
- package/dist/test-utils/six/models/order.d.ts +1 -1
- package/dist/test-utils/six/models/parcel-line-item.d.ts +1 -1
- package/dist/test-utils/six/models/parcel.d.ts +1 -1
- package/dist/test-utils/six/orm.d.ts +3 -2
- package/dist/test-utils/thirteen/models/audience.d.ts +1 -1
- package/dist/test-utils/thirteen/models/brand.d.ts +1 -1
- package/dist/test-utils/thirteen/models/category.d.ts +1 -1
- package/dist/test-utils/thirteen/models/member.d.ts +1 -1
- package/dist/test-utils/thirteen/models/passion.d.ts +1 -1
- package/dist/test-utils/thirteen/models/product.d.ts +1 -1
- package/dist/test-utils/thirteen/models/recommendation-audience.d.ts +1 -1
- package/dist/test-utils/thirteen/models/recommendation.d.ts +1 -1
- package/dist/test-utils/thirteen/orm.d.ts +3 -2
- package/dist/test-utils/twelve/models/member.d.ts +1 -1
- package/dist/test-utils/twelve/models/prompt.d.ts +1 -1
- package/dist/test-utils/twelve/orm.d.ts +3 -2
- package/package.json +1 -1
- package/src/factory.spec.ts +5 -5
- package/src/factory.ts +24 -14
|
@@ -14,7 +14,7 @@ export declare class LineItems implements ICollection<LineItem> {
|
|
|
14
14
|
}
|
|
15
15
|
export declare const lineItemEntity: {
|
|
16
16
|
tableName: string;
|
|
17
|
-
columns:
|
|
17
|
+
columns: import("../../../src/factory").IColumn[];
|
|
18
18
|
Model: typeof LineItem;
|
|
19
19
|
Collection: typeof LineItems;
|
|
20
20
|
};
|
|
@@ -14,7 +14,7 @@ export declare class Orders implements ICollection<Order> {
|
|
|
14
14
|
}
|
|
15
15
|
export declare const orderEntity: {
|
|
16
16
|
tableName: string;
|
|
17
|
-
columns:
|
|
17
|
+
columns: import("../../../src/factory").IColumn[];
|
|
18
18
|
Model: typeof Order;
|
|
19
19
|
Collection: typeof Orders;
|
|
20
20
|
};
|
|
@@ -17,7 +17,7 @@ export declare class ParcelLineItems implements ICollection<ParcelLineItem> {
|
|
|
17
17
|
}
|
|
18
18
|
export declare const parcelLineItemEntity: {
|
|
19
19
|
tableName: string;
|
|
20
|
-
columns:
|
|
20
|
+
columns: import("../../../src/factory").IColumn[];
|
|
21
21
|
Model: typeof ParcelLineItem;
|
|
22
22
|
Collection: typeof ParcelLineItems;
|
|
23
23
|
};
|
|
@@ -11,7 +11,7 @@ export declare class Parcels implements ICollection<Parcel> {
|
|
|
11
11
|
}
|
|
12
12
|
export declare const parcelEntity: {
|
|
13
13
|
tableName: string;
|
|
14
|
-
columns:
|
|
14
|
+
columns: import("../../../src/factory").IColumn[];
|
|
15
15
|
Model: typeof Parcel;
|
|
16
16
|
Collection: typeof Parcels;
|
|
17
17
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
declare const orm: {
|
|
2
2
|
nestClump: (clump: import("../../src/factory").IModel[][]) => object;
|
|
3
3
|
clumpIntoGroups: (processed: import("../../src/factory").IModel[][]) => import("../../src/factory").IModel[][][];
|
|
4
|
-
mapToBos: (objectified: any) =>
|
|
4
|
+
mapToBos: (objectified: any) => import("../../src/factory").IModel[];
|
|
5
5
|
objectifyDatabaseResult: (result: object) => any;
|
|
6
|
-
createFromDatabase: <T extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(_result:
|
|
6
|
+
createFromDatabase: <T extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(_result: any) => T | undefined;
|
|
7
7
|
createOneFromDatabase: <T_1 extends import("../../src/factory").IModel>(_result: any) => T_1;
|
|
8
8
|
createOneOrNoneFromDatabase: <T_2 extends import("../../src/factory").IModel>(_result: any) => void | T_2;
|
|
9
9
|
createManyFromDatabase: <T_3 extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(_result: any) => T_3;
|
|
@@ -43,5 +43,6 @@ declare const orm: {
|
|
|
43
43
|
getAnyMatching: <T_14 extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(model: import("../../src/factory").IModel) => void | T_14;
|
|
44
44
|
getAllMatching: <T_15 extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(model: import("../../src/factory").IModel) => T_15;
|
|
45
45
|
tables: any;
|
|
46
|
+
db: any;
|
|
46
47
|
};
|
|
47
48
|
export default orm;
|
|
@@ -11,7 +11,7 @@ export declare class Audiences implements ICollection<Audience> {
|
|
|
11
11
|
}
|
|
12
12
|
export declare const audienceEntity: {
|
|
13
13
|
tableName: string;
|
|
14
|
-
columns:
|
|
14
|
+
columns: import("../../../src/factory").IColumn[];
|
|
15
15
|
Model: typeof Audience;
|
|
16
16
|
Collection: typeof Audiences;
|
|
17
17
|
};
|
|
@@ -11,7 +11,7 @@ export declare class Brands implements ICollection<Brand> {
|
|
|
11
11
|
}
|
|
12
12
|
export declare const brandEntity: {
|
|
13
13
|
tableName: string;
|
|
14
|
-
columns:
|
|
14
|
+
columns: import("../../../src/factory").IColumn[];
|
|
15
15
|
Model: typeof Brand;
|
|
16
16
|
Collection: typeof Brands;
|
|
17
17
|
};
|
|
@@ -11,7 +11,7 @@ export declare class Categories implements ICollection<Category> {
|
|
|
11
11
|
}
|
|
12
12
|
export declare const categoryEntity: {
|
|
13
13
|
tableName: string;
|
|
14
|
-
columns:
|
|
14
|
+
columns: import("../../../src/factory").IColumn[];
|
|
15
15
|
Model: typeof Category;
|
|
16
16
|
Collection: typeof Categories;
|
|
17
17
|
};
|
|
@@ -11,7 +11,7 @@ export declare class Members implements ICollection<Member> {
|
|
|
11
11
|
}
|
|
12
12
|
export declare const memberEntity: {
|
|
13
13
|
tableName: string;
|
|
14
|
-
columns:
|
|
14
|
+
columns: import("../../../src/factory").IColumn[];
|
|
15
15
|
Model: typeof Member;
|
|
16
16
|
Collection: typeof Members;
|
|
17
17
|
};
|
|
@@ -11,7 +11,7 @@ export declare class Passions implements ICollection<Passion> {
|
|
|
11
11
|
}
|
|
12
12
|
export declare const passionEntity: {
|
|
13
13
|
tableName: string;
|
|
14
|
-
columns:
|
|
14
|
+
columns: import("../../../src/factory").IColumn[];
|
|
15
15
|
Model: typeof Passion;
|
|
16
16
|
Collection: typeof Passions;
|
|
17
17
|
};
|
|
@@ -14,7 +14,7 @@ export declare class Products implements ICollection<Product> {
|
|
|
14
14
|
}
|
|
15
15
|
export declare const productEntity: {
|
|
16
16
|
tableName: string;
|
|
17
|
-
columns:
|
|
17
|
+
columns: import("../../../src/factory").IColumn[];
|
|
18
18
|
Model: typeof Product;
|
|
19
19
|
Collection: typeof Products;
|
|
20
20
|
};
|
|
@@ -17,7 +17,7 @@ export declare class RecommendationAudiences implements ICollection<Recommendati
|
|
|
17
17
|
}
|
|
18
18
|
export declare const recommendationAudienceEntity: {
|
|
19
19
|
tableName: string;
|
|
20
|
-
columns:
|
|
20
|
+
columns: import("../../../src/factory").IColumn[];
|
|
21
21
|
Model: typeof RecommendationAudience;
|
|
22
22
|
Collection: typeof RecommendationAudiences;
|
|
23
23
|
};
|
|
@@ -26,7 +26,7 @@ export declare class Recommendations implements ICollection<Recommendation> {
|
|
|
26
26
|
}
|
|
27
27
|
export declare const recommendationEntity: {
|
|
28
28
|
tableName: string;
|
|
29
|
-
columns:
|
|
29
|
+
columns: import("../../../src/factory").IColumn[];
|
|
30
30
|
Model: typeof Recommendation;
|
|
31
31
|
Collection: typeof Recommendations;
|
|
32
32
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
declare const orm: {
|
|
2
2
|
nestClump: (clump: import("../../src/factory").IModel[][]) => object;
|
|
3
3
|
clumpIntoGroups: (processed: import("../../src/factory").IModel[][]) => import("../../src/factory").IModel[][][];
|
|
4
|
-
mapToBos: (objectified: any) =>
|
|
4
|
+
mapToBos: (objectified: any) => import("../../src/factory").IModel[];
|
|
5
5
|
objectifyDatabaseResult: (result: object) => any;
|
|
6
|
-
createFromDatabase: <T extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(_result:
|
|
6
|
+
createFromDatabase: <T extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(_result: any) => T | undefined;
|
|
7
7
|
createOneFromDatabase: <T_1 extends import("../../src/factory").IModel>(_result: any) => T_1;
|
|
8
8
|
createOneOrNoneFromDatabase: <T_2 extends import("../../src/factory").IModel>(_result: any) => void | T_2;
|
|
9
9
|
createManyFromDatabase: <T_3 extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(_result: any) => T_3;
|
|
@@ -43,5 +43,6 @@ declare const orm: {
|
|
|
43
43
|
getAnyMatching: <T_14 extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(model: import("../../src/factory").IModel) => void | T_14;
|
|
44
44
|
getAllMatching: <T_15 extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(model: import("../../src/factory").IModel) => T_15;
|
|
45
45
|
tables: any;
|
|
46
|
+
db: any;
|
|
46
47
|
};
|
|
47
48
|
export default orm;
|
|
@@ -11,7 +11,7 @@ export declare class Members implements ICollection<Member> {
|
|
|
11
11
|
}
|
|
12
12
|
export declare const memberEntity: {
|
|
13
13
|
tableName: string;
|
|
14
|
-
columns:
|
|
14
|
+
columns: import("../../../src/factory").IColumn[];
|
|
15
15
|
Model: typeof Member;
|
|
16
16
|
Collection: typeof Members;
|
|
17
17
|
};
|
|
@@ -16,7 +16,7 @@ export declare class Prompts implements ICollection<Prompt> {
|
|
|
16
16
|
}
|
|
17
17
|
export declare const promptEntity: {
|
|
18
18
|
tableName: string;
|
|
19
|
-
columns:
|
|
19
|
+
columns: import("../../../src/factory").IColumn[];
|
|
20
20
|
Model: typeof Prompt;
|
|
21
21
|
Collection: typeof Prompts;
|
|
22
22
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
declare const orm: {
|
|
2
2
|
nestClump: (clump: import("../../src/factory").IModel[][]) => object;
|
|
3
3
|
clumpIntoGroups: (processed: import("../../src/factory").IModel[][]) => import("../../src/factory").IModel[][][];
|
|
4
|
-
mapToBos: (objectified: any) =>
|
|
4
|
+
mapToBos: (objectified: any) => import("../../src/factory").IModel[];
|
|
5
5
|
objectifyDatabaseResult: (result: object) => any;
|
|
6
|
-
createFromDatabase: <T extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(_result:
|
|
6
|
+
createFromDatabase: <T extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(_result: any) => T | undefined;
|
|
7
7
|
createOneFromDatabase: <T_1 extends import("../../src/factory").IModel>(_result: any) => T_1;
|
|
8
8
|
createOneOrNoneFromDatabase: <T_2 extends import("../../src/factory").IModel>(_result: any) => void | T_2;
|
|
9
9
|
createManyFromDatabase: <T_3 extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(_result: any) => T_3;
|
|
@@ -43,5 +43,6 @@ declare const orm: {
|
|
|
43
43
|
getAnyMatching: <T_14 extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(model: import("../../src/factory").IModel) => void | T_14;
|
|
44
44
|
getAllMatching: <T_15 extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(model: import("../../src/factory").IModel) => T_15;
|
|
45
45
|
tables: any;
|
|
46
|
+
db: any;
|
|
46
47
|
};
|
|
47
48
|
export default orm;
|
package/package.json
CHANGED
package/src/factory.spec.ts
CHANGED
|
@@ -1030,19 +1030,19 @@ test('Bo#parseFromDatabase 13', () => {
|
|
|
1030
1030
|
|
|
1031
1031
|
test('orm.tables', () => {
|
|
1032
1032
|
expect(Object.keys(ormA.tables).length).toEqual(5);
|
|
1033
|
-
expect(ormA.tables.utmSource).toEqual(
|
|
1033
|
+
expect(ormA.tables.utmSource.columns).toEqual(
|
|
1034
1034
|
'"utm_source".id as "utm_source#id", "utm_source".value as "utm_source#value", "utm_source".label as "utm_source#label", "utm_source".internal as "utm_source#internal"'
|
|
1035
1035
|
);
|
|
1036
|
-
expect(ormA.tables.order).toEqual(
|
|
1036
|
+
expect(ormA.tables.order.columns).toEqual(
|
|
1037
1037
|
'"order".id as "order#id", "order".email as "order#email", "order".browser_ip as "order#browser_ip", "order".browser_user_agent as "order#browser_user_agent", "order".kujo_imported_date as "order#kujo_imported_date", "order".created_date as "order#created_date", "order".cancel_reason as "order#cancel_reason", "order".cancelled_date as "order#cancelled_date", "order".closed_date as "order#closed_date", "order".processed_date as "order#processed_date", "order".updated_date as "order#updated_date", "order".note as "order#note", "order".subtotal_price as "order#subtotal_price", "order".taxes_included as "order#taxes_included", "order".total_discounts as "order#total_discounts", "order".total_price as "order#total_price", "order".total_tax as "order#total_tax", "order".total_weight as "order#total_weight", "order".order_status_url as "order#order_status_url", "order".utm_source_id as "order#utm_source_id", "order".utm_medium_id as "order#utm_medium_id", "order".utm_campaign as "order#utm_campaign", "order".utm_content as "order#utm_content", "order".utm_term as "order#utm_term"'
|
|
1038
1038
|
);
|
|
1039
|
-
expect(ormA.tables.lineItem).toEqual(
|
|
1039
|
+
expect(ormA.tables.lineItem.columns).toEqual(
|
|
1040
1040
|
'"line_item".id as "line_item#id", "line_item".product_variant_id as "line_item#product_variant_id", "line_item".order_id as "line_item#order_id", "line_item".fulfillment_status_id as "line_item#fulfillment_status_id", "line_item".fulfillable_quantity as "line_item#fulfillable_quantity", "line_item".fulfillment_service as "line_item#fulfillment_service", "line_item".grams as "line_item#grams", "line_item".price as "line_item#price", "line_item".quantity as "line_item#quantity", "line_item".requires_shipping as "line_item#requires_shipping", "line_item".taxable as "line_item#taxable", "line_item".total_discount as "line_item#total_discount"'
|
|
1041
1041
|
);
|
|
1042
|
-
expect(ormA.tables.productVariant).toEqual(
|
|
1042
|
+
expect(ormA.tables.productVariant.columns).toEqual(
|
|
1043
1043
|
'"product_variant".id as "product_variant#id", "product_variant".product_id as "product_variant#product_id", "product_variant".actual_product_variant_id as "product_variant#actual_product_variant_id", "product_variant".color_id as "product_variant#color_id", "product_variant".gender_id as "product_variant#gender_id", "product_variant".size_id as "product_variant#size_id", "product_variant".barcode as "product_variant#barcode", "product_variant".price as "product_variant#price", "product_variant".compare_at_price as "product_variant#compare_at_price", "product_variant".created_date as "product_variant#created_date", "product_variant".updated_date as "product_variant#updated_date", "product_variant".grams as "product_variant#grams", "product_variant".requires_shipping as "product_variant#requires_shipping"'
|
|
1044
1044
|
);
|
|
1045
|
-
expect(ormA.tables.product).toEqual(
|
|
1045
|
+
expect(ormA.tables.product.columns).toEqual(
|
|
1046
1046
|
'"product".id as "product#id", "product".vendor_id as "product#vendor_id", "product".value as "product#value", "product".label as "product#label", "product".product_type as "product#product_type", "product".created_date as "product#created_date", "product".updated_date as "product#updated_date", "product".published_date as "product#published_date", "product".category as "product#category"'
|
|
1047
1047
|
);
|
|
1048
1048
|
});
|
package/src/factory.ts
CHANGED
|
@@ -7,7 +7,7 @@ export interface IColumnData {
|
|
|
7
7
|
primaryKey?: boolean;
|
|
8
8
|
}
|
|
9
9
|
export type IColumn = IColumnData | string;
|
|
10
|
-
export type IColumns = Array<IColumn
|
|
10
|
+
export type IColumns = Array<IColumn> | (() => Array<IColumn>);
|
|
11
11
|
|
|
12
12
|
export interface IColumnInternalData {
|
|
13
13
|
column: string;
|
|
@@ -55,7 +55,7 @@ export interface IEntityInternal<T extends IModel> {
|
|
|
55
55
|
export type IEntitiesInternal<T extends IModel> = Array<IEntityInternal<T>>;
|
|
56
56
|
|
|
57
57
|
export interface CreateOptions {
|
|
58
|
-
entities: IEntities<
|
|
58
|
+
entities: IEntities<IModel>;
|
|
59
59
|
db: any;
|
|
60
60
|
logError?: (err: Error) => void;
|
|
61
61
|
}
|
|
@@ -65,13 +65,15 @@ export const create = ({
|
|
|
65
65
|
db,
|
|
66
66
|
logError
|
|
67
67
|
}: CreateOptions) => {
|
|
68
|
-
const entities: IEntitiesInternal<
|
|
69
|
-
(d: IEntity<
|
|
68
|
+
const entities: IEntitiesInternal<IModel> = externalEntities.map(
|
|
69
|
+
(d: IEntity<IModel>) => {
|
|
70
70
|
const tableName = d.tableName;
|
|
71
71
|
const displayName = d.displayName || camelCase(d.tableName);
|
|
72
72
|
const collectionDisplayName =
|
|
73
73
|
d.collectionDisplayName || `${displayName}s`;
|
|
74
|
-
const columns =
|
|
74
|
+
const columns = (
|
|
75
|
+
typeof d.columns === 'function' ? d.columns() : d.columns
|
|
76
|
+
).map((d: IColumn) => {
|
|
75
77
|
if (typeof d === 'string') {
|
|
76
78
|
return {
|
|
77
79
|
column: d,
|
|
@@ -144,7 +146,7 @@ export const create = ({
|
|
|
144
146
|
}
|
|
145
147
|
);
|
|
146
148
|
|
|
147
|
-
const getEntityByTableName = (tableName: string): IEntityInternal<
|
|
149
|
+
const getEntityByTableName = (tableName: string): IEntityInternal<IModel> => {
|
|
148
150
|
const entity = entities.find((data) => data.tableName == tableName);
|
|
149
151
|
if (!entity) {
|
|
150
152
|
throw new Error(`Could not find entity for table ${tableName}`);
|
|
@@ -152,7 +154,7 @@ export const create = ({
|
|
|
152
154
|
return entity;
|
|
153
155
|
};
|
|
154
156
|
|
|
155
|
-
const getEntityByModel = (model: IModel): IEntityInternal<
|
|
157
|
+
const getEntityByModel = (model: IModel): IEntityInternal<IModel> => {
|
|
156
158
|
const entity = entities.find((data) => data.Model == model.constructor);
|
|
157
159
|
if (!entity) {
|
|
158
160
|
throw new Error(`Could not find entity for class ${model.constructor}`);
|
|
@@ -377,6 +379,9 @@ export const create = ({
|
|
|
377
379
|
return Object.keys(result).reduce((obj: any, text: string) => {
|
|
378
380
|
const tableName = text.split('#')[0];
|
|
379
381
|
const column = text.split('#')[1];
|
|
382
|
+
if (!tableName || !column) {
|
|
383
|
+
throw new Error('Column names must be namespaced to table');
|
|
384
|
+
}
|
|
380
385
|
obj[tableName] = obj[tableName] || {};
|
|
381
386
|
obj[tableName][column] = result[text as keyof typeof result];
|
|
382
387
|
return obj;
|
|
@@ -384,8 +389,11 @@ export const create = ({
|
|
|
384
389
|
};
|
|
385
390
|
|
|
386
391
|
const createFromDatabase = <T extends ICollection<IModel>>(
|
|
387
|
-
_result:
|
|
392
|
+
_result: any
|
|
388
393
|
): T | undefined => {
|
|
394
|
+
if (!_result || !_result.length) {
|
|
395
|
+
return void 0;
|
|
396
|
+
}
|
|
389
397
|
const result = Array.isArray(_result) ? _result : [_result];
|
|
390
398
|
const objectified = result.map(objectifyDatabaseResult);
|
|
391
399
|
const boified = objectified.map(mapToBos);
|
|
@@ -412,9 +420,6 @@ export const create = ({
|
|
|
412
420
|
const createOneOrNoneFromDatabase = <T extends IModel>(
|
|
413
421
|
_result: any
|
|
414
422
|
): T | void => {
|
|
415
|
-
if (!_result) {
|
|
416
|
-
return _result;
|
|
417
|
-
}
|
|
418
423
|
const collection = createFromDatabase(_result);
|
|
419
424
|
if (collection && collection.models.length > 1) {
|
|
420
425
|
throw Error('Got more than one.');
|
|
@@ -729,9 +734,14 @@ export const create = ({
|
|
|
729
734
|
getOneOrNoneMatching,
|
|
730
735
|
getAnyMatching,
|
|
731
736
|
getAllMatching,
|
|
732
|
-
tables
|
|
733
|
-
|
|
737
|
+
// tables property for access to select columns clause string
|
|
738
|
+
tables: entities.reduce((accum: any, data: IEntityInternal<IModel>) => {
|
|
739
|
+
accum[data.displayName] = {
|
|
740
|
+
columns: data.selectColumnsClause
|
|
741
|
+
};
|
|
734
742
|
return accum;
|
|
735
|
-
}, {})
|
|
743
|
+
}, {}),
|
|
744
|
+
// provide direct access to db
|
|
745
|
+
db
|
|
736
746
|
};
|
|
737
747
|
};
|