@itrocks/framework 0.3.12 → 0.4.0

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.
@@ -24,6 +24,7 @@ const password_1 = require("@itrocks/password");
24
24
  const transformers_1 = require("@itrocks/password/transformers");
25
25
  const property_translate_1 = require("@itrocks/property-translate");
26
26
  const transformers_2 = require("@itrocks/property-translate/transformers");
27
+ const property_type_1 = require("@itrocks/property-type");
27
28
  const property_view_1 = require("@itrocks/property-view");
28
29
  const property_view_2 = require("@itrocks/property-view");
29
30
  const rename_1 = require("@itrocks/rename");
@@ -32,6 +33,7 @@ const required_1 = require("@itrocks/required");
32
33
  const route_1 = require("@itrocks/route");
33
34
  const route_2 = require("@itrocks/route");
34
35
  const sql_functions_1 = require("@itrocks/sql-functions");
36
+ const sql_join_1 = require("@itrocks/sql-join");
35
37
  const storage_1 = require("@itrocks/storage");
36
38
  const store_1 = require("@itrocks/store");
37
39
  const store_2 = require("@itrocks/store");
@@ -46,6 +48,11 @@ const translate_1 = require("@itrocks/translate");
46
48
  const date_fns_1 = require("date-fns");
47
49
  const node_path_1 = require("node:path");
48
50
  const node_path_2 = require("node:path");
51
+ const sql_join_dependencies_1 = require("./sql-join-dependencies");
52
+ const sql_join_dependencies_2 = require("./sql-join-dependencies");
53
+ const sql_join_dependencies_3 = require("./sql-join-dependencies");
54
+ const sql_join_dependencies_4 = require("./sql-join-dependencies");
55
+ const sql_join_dependencies_5 = require("./sql-join-dependencies");
49
56
  async function propertyOutput(object, property) {
50
57
  return (0, transformer_1.applyTransformer)(await object[property], object, property, transformer_2.HTML, transformer_3.OUTPUT);
51
58
  }
@@ -107,6 +114,23 @@ function bind() {
107
114
  setTransformers: core_transformers_2.initStoreTransformers,
108
115
  toStoreName: rename_1.toColumn
109
116
  });
117
+ (0, sql_join_1.sqlJoinDependsOn)({
118
+ columnDefinitionOf: (tableDefinition, column) => (0, sql_join_dependencies_1.columnDefinitionsOf)(tableDefinition)[column],
119
+ columnDefinitionsOf: sql_join_dependencies_1.columnDefinitionsOf,
120
+ columnOf: sql_join_dependencies_2.columnOf,
121
+ componentOf: columnDefinition => (0, composition_1.componentOf)(columnDefinition.class.type, columnDefinition.name),
122
+ mandatoryOf: columnDefinition => (0, required_1.requiredOf)(columnDefinition.class.type, columnDefinition.name),
123
+ multipleOf: columnDefinition => columnDefinition.type instanceof property_type_1.CollectionType,
124
+ rightColumnDefinitionOf: sql_join_dependencies_3.rightColumnDefinitionOf,
125
+ scalarOf: columnDefinition => (0, sql_join_dependencies_4.tableDefinitionOf)(columnDefinition) === undefined,
126
+ storedAsValueOf: columnDefinition => {
127
+ const tableDefinition = (0, sql_join_dependencies_4.tableDefinitionOf)(columnDefinition);
128
+ return !!tableDefinition && !(0, store_2.storeOf)(tableDefinition);
129
+ },
130
+ tableDefinitionIdentity: tableDefinition => tableDefinition,
131
+ tableDefinitionOf: sql_join_dependencies_4.tableDefinitionOf,
132
+ tableOf: sql_join_dependencies_5.tableOf
133
+ });
110
134
  (0, template_1.templateDependsOn)({
111
135
  toString: async (data) => (((typeof data)[0] === 'o') && (data.toString === Object.prototype.toString))
112
136
  ? (await require('@itrocks/class-view').representativeValueOf(data))
@@ -0,0 +1,9 @@
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;
5
+ export declare function columnDefinitionsOf(tableDefinition: TableDefinition): Record<string, ColumnDefinition>;
6
+ export declare function columnOf(columnDefinition: ColumnDefinition): string;
7
+ export declare function rightColumnDefinitionOf(columnDefinition: ColumnDefinition): ColumnDefinition | undefined;
8
+ export declare function tableDefinitionOf(columnDefinition: ColumnDefinition): TableDefinition | undefined;
9
+ export declare function tableOf(tableDefinition: TableDefinition): string;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.columnDefinitionsOf = columnDefinitionsOf;
4
+ exports.columnOf = columnOf;
5
+ exports.rightColumnDefinitionOf = rightColumnDefinitionOf;
6
+ exports.tableDefinitionOf = tableDefinitionOf;
7
+ exports.tableOf = tableOf;
8
+ const class_type_1 = require("@itrocks/class-type");
9
+ const class_type_2 = require("@itrocks/class-type");
10
+ const composition_1 = require("@itrocks/composition");
11
+ const property_type_1 = require("@itrocks/property-type");
12
+ const rename_1 = require("@itrocks/rename");
13
+ const store_1 = require("@itrocks/store");
14
+ const reflect_class_1 = require("./reflect-class");
15
+ function columnDefinitionsOf(tableDefinition) {
16
+ return new reflect_class_1.ReflectClass(tableDefinition).property;
17
+ }
18
+ function columnOf(columnDefinition) {
19
+ const tableDefinition = tableDefinitionOf(columnDefinition);
20
+ const property = tableDefinition && (0, store_1.storeOf)(tableDefinition)
21
+ ? columnDefinition.name.toString() + 'Id'
22
+ : columnDefinition.name;
23
+ return (0, rename_1.toColumn)(property);
24
+ }
25
+ function rightColumnDefinitionOf(columnDefinition) {
26
+ const leftTableDefinition = columnDefinition.class.type;
27
+ const rightTableDefinition = tableDefinitionOf(columnDefinition);
28
+ if (!rightTableDefinition)
29
+ return;
30
+ for (const candidate of new reflect_class_1.ReflectClass(rightTableDefinition).properties) {
31
+ if (!(0, composition_1.compositeOf)(rightTableDefinition, candidate.name))
32
+ continue;
33
+ const candidateTableDefinition = tableDefinitionOf(candidate);
34
+ if (candidateTableDefinition && (0, class_type_1.inherits)(leftTableDefinition, candidateTableDefinition))
35
+ return candidate;
36
+ }
37
+ }
38
+ function tableDefinitionOf(columnDefinition) {
39
+ const propertyType = columnDefinition.type;
40
+ const type = (propertyType instanceof property_type_1.CollectionType) ? propertyType.elementType.lead : propertyType.lead;
41
+ return (0, class_type_2.isAnyType)(type) ? type : undefined;
42
+ }
43
+ function tableOf(tableDefinition) {
44
+ const table = (0, store_1.storeOf)(tableDefinition);
45
+ if (!table)
46
+ throw new Error(`Type ${tableDefinition.name} is not stored`);
47
+ return table;
48
+ }
49
+ //# 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.0"
103
104
  }