@itrocks/framework 0.3.12 → 0.4.1

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.
@@ -32,6 +32,7 @@ const required_1 = require("@itrocks/required");
32
32
  const route_1 = require("@itrocks/route");
33
33
  const route_2 = require("@itrocks/route");
34
34
  const sql_functions_1 = require("@itrocks/sql-functions");
35
+ const sql_join_1 = require("@itrocks/sql-join");
35
36
  const storage_1 = require("@itrocks/storage");
36
37
  const store_1 = require("@itrocks/store");
37
38
  const store_2 = require("@itrocks/store");
@@ -46,6 +47,14 @@ const translate_1 = require("@itrocks/translate");
46
47
  const date_fns_1 = require("date-fns");
47
48
  const node_path_1 = require("node:path");
48
49
  const node_path_2 = require("node:path");
50
+ const sql_join_dependencies_1 = require("./sql-join-dependencies");
51
+ const sql_join_dependencies_2 = require("./sql-join-dependencies");
52
+ const sql_join_dependencies_3 = require("./sql-join-dependencies");
53
+ const sql_join_dependencies_4 = require("./sql-join-dependencies");
54
+ const sql_join_dependencies_5 = require("./sql-join-dependencies");
55
+ const sql_join_dependencies_6 = require("./sql-join-dependencies");
56
+ const sql_join_dependencies_7 = require("./sql-join-dependencies");
57
+ const sql_join_dependencies_8 = require("./sql-join-dependencies");
49
58
  async function propertyOutput(object, property) {
50
59
  return (0, transformer_1.applyTransformer)(await object[property], object, property, transformer_2.HTML, transformer_3.OUTPUT);
51
60
  }
@@ -103,6 +112,22 @@ function bind() {
103
112
  (0, property_translate_1.propertyTranslateDependsOn)({
104
113
  setTransformers: transformers_2.setPropertyTranslateTransformers
105
114
  });
115
+ (0, sql_join_1.sqlJoinDependsOn)({
116
+ columnDefinitionOf: sql_join_dependencies_1.columnDefinitionOf,
117
+ columnDefinitionsOf: sql_join_dependencies_2.columnDefinitionsOf,
118
+ columnOf: sql_join_dependencies_3.columnOf,
119
+ componentOf: composition_1.componentOf,
120
+ isCollection: sql_join_dependencies_4.isCollection,
121
+ isScalar: sql_join_dependencies_5.isScalar,
122
+ requiredOf: required_1.requiredOf,
123
+ rightColumnDefinitionOf: sql_join_dependencies_6.rightColumnDefinitionOf,
124
+ storedAsValueOf: columnDefinition => {
125
+ const tableDefinition = (0, sql_join_dependencies_7.tableDefinitionOf)(columnDefinition);
126
+ return !!tableDefinition && !(0, store_2.storeOf)(tableDefinition);
127
+ },
128
+ tableDefinitionOf: sql_join_dependencies_7.tableDefinitionOf,
129
+ tableOf: sql_join_dependencies_8.tableOf
130
+ });
106
131
  (0, store_1.storeDependsOn)({
107
132
  setTransformers: core_transformers_2.initStoreTransformers,
108
133
  toStoreName: rename_1.toColumn
@@ -0,0 +1,12 @@
1
+ import { Type } from '@itrocks/class-type';
2
+ import { ReflectProperty } from './reflect-property';
3
+ export type ColumnDefinition = ReflectProperty<any, any>;
4
+ export type TableDefinition = Type<any>;
5
+ export declare function columnDefinitionOf(tableDefinition: TableDefinition, column: string): ColumnDefinition | undefined;
6
+ export declare function columnDefinitionsOf(tableDefinition: TableDefinition): Record<string, ColumnDefinition>;
7
+ export declare function columnOf(columnDefinition: ColumnDefinition): string;
8
+ export declare function isCollection(columnDefinition: ColumnDefinition): boolean;
9
+ export declare function isScalar(columnDefinition: ColumnDefinition): boolean;
10
+ export declare function rightColumnDefinitionOf(columnDefinition: ColumnDefinition): ColumnDefinition | undefined;
11
+ export declare function tableDefinitionOf(columnDefinition: ColumnDefinition): TableDefinition | undefined;
12
+ export declare function tableOf(tableDefinition: TableDefinition): string;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.columnDefinitionOf = columnDefinitionOf;
4
+ exports.columnDefinitionsOf = columnDefinitionsOf;
5
+ exports.columnOf = columnOf;
6
+ exports.isCollection = isCollection;
7
+ exports.isScalar = isScalar;
8
+ exports.rightColumnDefinitionOf = rightColumnDefinitionOf;
9
+ exports.tableDefinitionOf = tableDefinitionOf;
10
+ exports.tableOf = tableOf;
11
+ const class_type_1 = require("@itrocks/class-type");
12
+ const class_type_2 = require("@itrocks/class-type");
13
+ const composition_1 = require("@itrocks/composition");
14
+ const property_type_1 = require("@itrocks/property-type");
15
+ const rename_1 = require("@itrocks/rename");
16
+ const store_1 = require("@itrocks/store");
17
+ const reflect_class_1 = require("./reflect-class");
18
+ function columnDefinitionOf(tableDefinition, column) {
19
+ return columnDefinitionsOf(tableDefinition)[column];
20
+ }
21
+ function columnDefinitionsOf(tableDefinition) {
22
+ return new reflect_class_1.ReflectClass(tableDefinition).property;
23
+ }
24
+ function columnOf(columnDefinition) {
25
+ const tableDefinition = tableDefinitionOf(columnDefinition);
26
+ const property = tableDefinition && (0, store_1.storeOf)(tableDefinition)
27
+ ? columnDefinition.name.toString() + 'Id'
28
+ : columnDefinition.name;
29
+ return (0, rename_1.toColumn)(property);
30
+ }
31
+ function isCollection(columnDefinition) {
32
+ return columnDefinition.type instanceof property_type_1.CollectionType;
33
+ }
34
+ function isScalar(columnDefinition) {
35
+ return tableDefinitionOf(columnDefinition) === undefined;
36
+ }
37
+ function rightColumnDefinitionOf(columnDefinition) {
38
+ const leftTableDefinition = columnDefinition.class.type;
39
+ const rightTableDefinition = tableDefinitionOf(columnDefinition);
40
+ if (!rightTableDefinition)
41
+ return;
42
+ for (const candidate of new reflect_class_1.ReflectClass(rightTableDefinition).properties) {
43
+ if (!(0, composition_1.compositeOf)(rightTableDefinition, candidate.name))
44
+ continue;
45
+ const candidateTableDefinition = tableDefinitionOf(candidate);
46
+ if (candidateTableDefinition && (0, class_type_1.inherits)(leftTableDefinition, candidateTableDefinition))
47
+ return candidate;
48
+ }
49
+ }
50
+ function tableDefinitionOf(columnDefinition) {
51
+ const propertyType = columnDefinition.type;
52
+ const type = (propertyType instanceof property_type_1.CollectionType) ? propertyType.elementType.lead : propertyType.lead;
53
+ return (0, class_type_2.isAnyType)(type) ? type : undefined;
54
+ }
55
+ function tableOf(tableDefinition) {
56
+ const table = (0, store_1.storeOf)(tableDefinition);
57
+ if (!table)
58
+ throw new Error(`Type ${tableDefinition.name} is not stored`);
59
+ return table;
60
+ }
61
+ //# sourceMappingURL=sql-join-dependencies.js.map
package/package.json CHANGED
@@ -45,6 +45,7 @@
45
45
  "@itrocks/required": "latest",
46
46
  "@itrocks/route": "latest",
47
47
  "@itrocks/sql-functions": "latest",
48
+ "@itrocks/sql-join": "latest",
48
49
  "@itrocks/storage": "latest",
49
50
  "@itrocks/store": "latest",
50
51
  "@itrocks/string-formats": "latest",
@@ -99,5 +100,5 @@
99
100
  "build:back": "tsc",
100
101
  "build:front": "tsc -p src/front/tsconfig.json && sed -i 's#../../##g' *.js *.d.ts"
101
102
  },
102
- "version": "0.3.12"
103
+ "version": "0.4.1"
103
104
  }