mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-19 04:57:52 +00:00
1 line
48 KiB
JSON
1 line
48 KiB
JSON
{"ast":null,"code":"import _asyncToGenerator from \"C:/Users/eudes.inacio/GabineteDigital/gabinete-digital-fo/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\nimport { Model } from './model.js';\nimport { LocalStorageModelReader, ModelReader } from './model.reader.js';\nimport { OneToOneField, ForeignKey, ManyToManyField } from './field/allFields.js';\nimport { uncapitalize, uniqueGenerator } from '../utils.js';\nimport { FieldType } from '../sql/query/interface.js';\nimport { ModelMigrations } from './mode-migrations.js';\nimport { ModelAPIRequest } from './model-manager.js';\nimport { transactionOnCommit } from '../triggers/transaction.js';\nimport { IndexedDB } from '../connection/indexedDb/connector.js';\nexport const models = {};\nexport const modelsConfig = {};\nexport const modelsLocalStorage = {};\nexport const modelsConfigLocalStorage = {};\nexport function migrate(register) {\n if (register.type == 'indexedDB') {\n registerModel.register(register);\n } else if (register.type == 'localStorage') {\n registerLocalStorage.register(register);\n }\n}\nexport class registerModel {\n static register(entries) {\n return _asyncToGenerator(function* () {\n var _a, _b, _c;\n const databaseSchema = {\n databaseName: entries.databaseName || uniqueGenerator(),\n version: entries.version,\n type: entries.type,\n stores: []\n };\n for (const modelClassRepresentations of entries.models) {\n const ModelName = modelClassRepresentations.getModelName();\n models[ModelName] = modelClassRepresentations;\n }\n let index = 0;\n for (const modelClassRepresentations of entries.models) {\n const {\n fields,\n modelName,\n attributes,\n fieldTypes\n } = ModelReader.read(modelClassRepresentations);\n const idFieldName = (_a = attributes === null || attributes === void 0 ? void 0 : attributes.primaryKey) === null || _a === void 0 ? void 0 : _a.shift();\n databaseSchema.stores.push({\n name: modelName,\n id: {\n keyPath: idFieldName || 'id',\n autoIncrement: fields[idFieldName] ? ((_b = fields[idFieldName]) === null || _b === void 0 ? void 0 : _b.primaryKey) == true : true,\n type: FieldType.INT\n },\n attributes: attributes,\n fields: [],\n fieldTypes\n });\n for (const [fieldName, Field] of Object.entries(fields)) {\n // dont register fields that is primary key and auto increment\n if (!((Field === null || Field === void 0 ? void 0 : Field.primaryKey) && (Field === null || Field === void 0 ? void 0 : Field.autoIncrement)) && !((_c = fieldTypes['ManyToManyField']) === null || _c === void 0 ? void 0 : _c.includes(fieldName))) {\n const removeReferenceField = Object.assign({}, Field);\n if (removeReferenceField === null || removeReferenceField === void 0 ? void 0 : removeReferenceField.model) {\n removeReferenceField.model = removeReferenceField.model.getModelName();\n }\n databaseSchema.stores[index].fields.push({\n name: fieldName,\n keyPath: fieldName,\n options: {\n unique: (Field === null || Field === void 0 ? void 0 : Field.unique) || false,\n type: Field.type\n },\n className: Field === null || Field === void 0 ? void 0 : Field.fieldName,\n fieldAttributes: Object.assign({}, removeReferenceField)\n });\n }\n if (Field instanceof OneToOneField) {\n yield ModelEditor.addMethodOneToOneField(Field, fieldName, modelName, databaseSchema);\n } else if (Field instanceof ForeignKey) {\n yield ModelEditor.addMethodForeignKey(Field, fieldName, modelName, databaseSchema);\n } else if (Field instanceof ManyToManyField) {\n yield ModelEditor.addMethodManyToManyField(Field, fieldName, modelName, databaseSchema);\n }\n }\n index++;\n }\n let tableSchema_;\n for (const modelClassRepresentations of entries.models) {\n const ModelName = modelClassRepresentations.getModelName();\n models[ModelName] = modelClassRepresentations;\n const tableSchema = databaseSchema.stores.find(e => e.name == ModelName);\n tableSchema_ = tableSchema;\n modelsConfig[ModelName] = {\n DatabaseSchema: databaseSchema,\n TableSchema: tableSchema\n };\n ModelMigrations.prepare(databaseSchema.databaseName);\n transactionOnCommit.prepare(modelClassRepresentations);\n }\n if (databaseSchema.type == 'indexedDB') {\n yield IndexedDB.run(databaseSchema);\n yield ModelAPIRequest.obj(databaseSchema, tableSchema_).migrate();\n ModelMigrations.migrationsState(databaseSchema.databaseName, true);\n }\n })();\n }\n static manyToManyRelationShip(foreignKeyField, FieldName, modelName, databaseSchema) {\n const foreignKeyFieldModel = foreignKeyField.model;\n const currentModel = models[modelName];\n const foreignKeyFieldModelName = foreignKeyFieldModel.getModelName();\n const currentModelName = models[modelName].getModelName();\n const tableName = currentModelName + foreignKeyFieldModelName;\n const num = databaseSchema.stores.push({\n name: tableName,\n id: {\n keyPath: 'id',\n autoIncrement: true,\n type: FieldType.INT\n },\n fields: [{\n name: 'iD' + foreignKeyFieldModelName,\n keyPath: 'iD' + foreignKeyFieldModelName,\n options: {\n unique: false,\n type: FieldType.INT\n },\n className: 'IntegerField'\n }, {\n name: 'iD' + currentModelName,\n keyPath: 'iD' + currentModelName,\n options: {\n unique: false,\n type: FieldType.INT\n },\n className: 'IntegerField'\n }],\n attributes: {},\n fieldTypes: {\n IntegerField: ['iD' + foreignKeyFieldModelName, 'iD' + currentModelName]\n }\n });\n const id = num - 1;\n models[tableName] = generateGenericModel({\n DBSchema: databaseSchema,\n ModelName: tableName,\n TableSchema: databaseSchema.stores[id]\n });\n return generateGenericModel({\n DBSchema: databaseSchema,\n ModelName: tableName,\n TableSchema: databaseSchema.stores[id]\n });\n }\n}\nfunction cachedValue(_x) {\n return _cachedValue.apply(this, arguments);\n}\nfunction _cachedValue() {\n _cachedValue = _asyncToGenerator(function* (Model) {\n const emptyFields = Model.getEmptyFields();\n Model.getEmptyFields = function () {\n return emptyFields;\n };\n const getModelName = Model.getModelName();\n Model.getModelName = function () {\n return getModelName;\n };\n });\n return _cachedValue.apply(this, arguments);\n}\nexport class registerLocalStorage {\n static register(entries) {\n return _asyncToGenerator(function* () {\n const databaseSchema = {\n databaseName: entries.databaseName,\n version: entries.version,\n type: 'localStorage',\n stores: []\n };\n for (const modelClassRepresentations of entries.models) {\n const ModelName = modelClassRepresentations.getModelName();\n modelsLocalStorage[ModelName] = modelClassRepresentations;\n }\n let index = 0;\n for (const modelClassRepresentations of entries.models) {\n const {\n fields,\n modelName,\n attributes,\n fieldTypes\n } = LocalStorageModelReader.read(modelClassRepresentations);\n // const idFieldName = attributes?.primaryKey?.shift()\n databaseSchema.stores.push({\n name: modelName,\n id: {\n keyPath: modelName,\n type: FieldType.VARCHAR,\n autoIncrement: false\n },\n attributes: attributes,\n fields: [],\n fieldTypes\n });\n for (const [fieldName, Field] of Object.entries(fields)) {\n databaseSchema.stores[index].fields.push({\n name: fieldName,\n keyPath: fieldName,\n options: {\n unique: false,\n type: null\n },\n className: Field === null || Field === void 0 ? void 0 : Field.fieldName,\n fieldAttributes: Object.assign({}, Field)\n });\n }\n index++;\n }\n for (const modelClassRepresentations of entries.models) {\n const ModelName = modelClassRepresentations.getModelName();\n const tableSchema = databaseSchema.stores.find(e => e.name == ModelName);\n modelClassRepresentations.getDBSchema = () => {\n return databaseSchema;\n };\n modelClassRepresentations.getTableSchema = () => {\n return tableSchema;\n };\n modelsConfigLocalStorage[ModelName] = {\n DatabaseSchema: databaseSchema,\n TableSchema: tableSchema\n };\n modelsLocalStorage[ModelName] = modelClassRepresentations;\n }\n })();\n }\n}\nexport class ModelEditor {\n static addMethodOneToOneField(foreignKeyField, FieldName, modelName, databaseSchema) {\n const foreignKeyFieldModel = foreignKeyField.model;\n const currentModel = models[modelName];\n foreignKeyFieldModel['prototype'][modelName] = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (body) {\n const foreignModel = currentModel;\n const TableSchema = foreignModel.getTableSchema();\n const obj = {};\n obj[TableSchema.id.keyPath] = this.getPrimaryKeyValue();\n return yield foreignModel.get(obj);\n });\n return function (_x2) {\n return _ref.apply(this, arguments);\n };\n }();\n currentModel['prototype'][foreignKeyFieldModel['name']] = /*#__PURE__*/_asyncToGenerator(function* () {\n const foreignModel = foreignKeyFieldModel;\n let params = {};\n const TableSchema = foreignModel.getTableSchema();\n params[TableSchema.id.keyPath] = this.getPrimaryKeyValue();\n return yield foreignModel.get(params);\n });\n }\n static addMethodForeignKey(foreignKeyField, FieldName, modelName, databaseSchema) {\n const foreignKeyFieldModel = foreignKeyField.model;\n const currentModel = models[modelName];\n const FunctionName = uncapitalize(modelName);\n foreignKeyFieldModel['prototype'][FunctionName + '_setAll'] = /*#__PURE__*/_asyncToGenerator(function* () {\n const obj = {};\n obj[FieldName] = this.getPrimaryKeyValue();\n const currentModel = models[modelName];\n return yield currentModel.filter(obj).execute();\n });\n foreignKeyFieldModel['prototype'][FunctionName + '_setAdd'] = /*#__PURE__*/function () {\n var _ref4 = _asyncToGenerator(function* (arg) {\n const reporter = this;\n arg[FieldName] = reporter;\n return currentModel['create'](arg);\n });\n return function (_x3) {\n return _ref4.apply(this, arguments);\n };\n }();\n currentModel['prototype'][foreignKeyFieldModel.getModelName()] = /*#__PURE__*/_asyncToGenerator(function* () {\n const TableSchema = foreignKeyFieldModel.getTableSchema();\n const obj = {};\n obj[TableSchema.id.keyPath] = this[FieldName];\n return foreignKeyFieldModel.filter(obj).execute();\n });\n }\n static addMethodManyToManyField(foreignKeyField, FieldName, modelName, databaseSchema) {\n return _asyncToGenerator(function* () {\n const foreignKeyFieldModel = foreignKeyField.model;\n FieldName = FieldName;\n const currentModel = models[modelName];\n const middleTable = yield registerModel.manyToManyRelationShip(foreignKeyField, FieldName, modelName, databaseSchema);\n currentModel['prototype'][FieldName + '_add'] = /*#__PURE__*/function () {\n var _ref6 = _asyncToGenerator(function* (modelInstances) {\n if (modelInstances.constructor.name != 'Array') {\n modelInstances = [modelInstances];\n }\n for (const modelInstance of modelInstances) {\n if (modelInstance instanceof foreignKeyFieldModel) {\n let params = {};\n params[`iD${currentModel.getModelName()}`] = this.getPrimaryKeyValue();\n params[`iD${modelInstance.getModelName()}`] = modelInstance.getPrimaryKeyValue();\n yield middleTable['create'](params);\n } else {\n throw 'Need to be instance of ' + foreignKeyFieldModel.getModelName();\n }\n }\n });\n return function (_x4) {\n return _ref6.apply(this, arguments);\n };\n }();\n currentModel['prototype'][FieldName] = function () {\n let _model = this;\n return {\n all() {\n return _asyncToGenerator(function* () {\n let params = {};\n params[`iD${_model.getModelName()}`] = _model.getPrimaryKeyValue();\n const middleTableResult = yield middleTable['filter'](params).execute();\n foreignKeyField.model;\n return middleTableResult;\n })();\n }\n };\n };\n currentModel['prototype'][FieldName + '_all'] = /*#__PURE__*/_asyncToGenerator(function* () {\n let _model = this;\n let params = {};\n let result = [];\n params[`iD${_model.getModelName()}`] = _model.getPrimaryKeyValue();\n const middleTableResult = yield middleTable['filter'](params).execute();\n let ids;\n if (middleTableResult) {\n const TableSchema = foreignKeyField.model.getTableSchema();\n ids = middleTableResult.map(e => {\n return e[`iD${foreignKeyField.model.name}`];\n });\n let params = {};\n for (const id of ids) {\n try {\n params[TableSchema.id.keyPath] = id;\n const row = yield foreignKeyField.model.get(params);\n result.push(row);\n } catch (error) {}\n }\n }\n return result;\n });\n foreignKeyField.model['prototype'][uncapitalize(modelName) + '_set_all'] = /*#__PURE__*/_asyncToGenerator(function* () {\n let _model = this;\n let params = {};\n let result = [];\n params[`iD${_model.getModelName()}`] = _model.getPrimaryKeyValue();\n const middleTableResult = yield middleTable['filter'](params).execute();\n let ids;\n if (middleTableResult) {\n const TableSchema = currentModel.getTableSchema();\n ids = middleTableResult.map(e => {\n return e[`iD${modelName}`];\n });\n let params = {};\n for (const id of ids) {\n try {\n params[TableSchema.id.keyPath] = id;\n const row = yield currentModel.get(params);\n result.push(row);\n } catch (error) {}\n }\n }\n return result;\n });\n })();\n }\n}\nfunction generateGenericModel({\n DBSchema,\n ModelName,\n TableSchema\n}) {\n class GenericModel extends Model {}\n for (const [Field, value] of Object.entries(Model)) {\n GenericModel[Field] = value;\n }\n // GenericModel.prototype = Model.prototype\n GenericModel.prototype['getDBSchema'] = () => {\n return DBSchema;\n };\n GenericModel.prototype['getModelName'] = () => {\n return ModelName;\n };\n GenericModel.prototype['getTableSchema'] = () => {\n return TableSchema;\n };\n GenericModel['getDBSchema'] = () => {\n return DBSchema;\n };\n GenericModel['getModelName'] = () => {\n return ModelName;\n };\n GenericModel['getTableSchema'] = () => {\n return TableSchema;\n };\n return GenericModel;\n}","map":{"version":3,"names":["Model","LocalStorageModelReader","ModelReader","OneToOneField","ForeignKey","ManyToManyField","uncapitalize","uniqueGenerator","FieldType","ModelMigrations","ModelAPIRequest","transactionOnCommit","IndexedDB","models","modelsConfig","modelsLocalStorage","modelsConfigLocalStorage","migrate","register","type","registerModel","registerLocalStorage","entries","_asyncToGenerator","_a","_b","_c","databaseSchema","databaseName","version","stores","modelClassRepresentations","ModelName","getModelName","index","fields","modelName","attributes","fieldTypes","read","idFieldName","primaryKey","shift","push","name","id","keyPath","autoIncrement","INT","fieldName","Field","Object","includes","removeReferenceField","assign","model","options","unique","className","fieldAttributes","ModelEditor","addMethodOneToOneField","addMethodForeignKey","addMethodManyToManyField","tableSchema_","tableSchema","find","e","DatabaseSchema","TableSchema","prepare","run","obj","migrationsState","manyToManyRelationShip","foreignKeyField","FieldName","foreignKeyFieldModel","currentModel","foreignKeyFieldModelName","currentModelName","tableName","num","IntegerField","generateGenericModel","DBSchema","cachedValue","_x","_cachedValue","apply","arguments","emptyFields","getEmptyFields","VARCHAR","getDBSchema","getTableSchema","_ref","body","foreignModel","getPrimaryKeyValue","get","_x2","params","FunctionName","filter","execute","_ref4","arg","reporter","_x3","middleTable","_ref6","modelInstances","constructor","modelInstance","_x4","_model","all","middleTableResult","result","ids","map","row","error","GenericModel","value","prototype"],"sources":["C:/Users/eudes.inacio/GabineteDigital/gabinete-digital-fo/node_modules/beast-orm/dist/src/models/register-model.js"],"sourcesContent":["import { Model } from './model.js';\r\nimport { LocalStorageModelReader, ModelReader } from './model.reader.js';\r\nimport { OneToOneField, ForeignKey, ManyToManyField } from './field/allFields.js';\r\nimport { uncapitalize, uniqueGenerator } from '../utils.js';\r\nimport { FieldType } from '../sql/query/interface.js';\r\nimport { ModelMigrations } from './mode-migrations.js';\r\nimport { ModelAPIRequest } from './model-manager.js';\r\nimport { transactionOnCommit } from '../triggers/transaction.js';\r\nimport { IndexedDB } from '../connection/indexedDb/connector.js';\r\nexport const models = {};\r\nexport const modelsConfig = {};\r\nexport const modelsLocalStorage = {};\r\nexport const modelsConfigLocalStorage = {};\r\nexport function migrate(register) {\r\n if (register.type == 'indexedDB') {\r\n registerModel.register(register);\r\n }\r\n else if (register.type == 'localStorage') {\r\n registerLocalStorage.register(register);\r\n }\r\n}\r\nexport class registerModel {\r\n static async register(entries) {\r\n var _a, _b, _c;\r\n const databaseSchema = {\r\n databaseName: entries.databaseName || uniqueGenerator(),\r\n version: entries.version,\r\n type: entries.type,\r\n stores: []\r\n };\r\n for (const modelClassRepresentations of entries.models) {\r\n const ModelName = modelClassRepresentations.getModelName();\r\n models[ModelName] = modelClassRepresentations;\r\n }\r\n let index = 0;\r\n for (const modelClassRepresentations of entries.models) {\r\n const { fields, modelName, attributes, fieldTypes } = ModelReader.read(modelClassRepresentations);\r\n const idFieldName = (_a = attributes === null || attributes === void 0 ? void 0 : attributes.primaryKey) === null || _a === void 0 ? void 0 : _a.shift();\r\n databaseSchema.stores.push({\r\n name: modelName,\r\n id: {\r\n keyPath: idFieldName || 'id',\r\n autoIncrement: fields[idFieldName] ? ((_b = fields[idFieldName]) === null || _b === void 0 ? void 0 : _b.primaryKey) == true : true,\r\n type: FieldType.INT\r\n },\r\n attributes: attributes,\r\n fields: [],\r\n fieldTypes\r\n });\r\n for (const [fieldName, Field] of Object.entries(fields)) {\r\n // dont register fields that is primary key and auto increment\r\n if (!((Field === null || Field === void 0 ? void 0 : Field.primaryKey) && (Field === null || Field === void 0 ? void 0 : Field.autoIncrement)) && !((_c = fieldTypes['ManyToManyField']) === null || _c === void 0 ? void 0 : _c.includes(fieldName))) {\r\n const removeReferenceField = Object.assign({}, Field);\r\n if (removeReferenceField === null || removeReferenceField === void 0 ? void 0 : removeReferenceField.model) {\r\n removeReferenceField.model = removeReferenceField.model.getModelName();\r\n }\r\n databaseSchema.stores[index].fields.push({\r\n name: fieldName,\r\n keyPath: fieldName,\r\n options: {\r\n unique: (Field === null || Field === void 0 ? void 0 : Field.unique) || false,\r\n type: Field.type\r\n },\r\n className: Field === null || Field === void 0 ? void 0 : Field.fieldName,\r\n fieldAttributes: Object.assign({}, removeReferenceField)\r\n });\r\n }\r\n if (Field instanceof OneToOneField) {\r\n await ModelEditor.addMethodOneToOneField(Field, fieldName, modelName, databaseSchema);\r\n }\r\n else if (Field instanceof ForeignKey) {\r\n await ModelEditor.addMethodForeignKey(Field, fieldName, modelName, databaseSchema);\r\n }\r\n else if (Field instanceof ManyToManyField) {\r\n await ModelEditor.addMethodManyToManyField(Field, fieldName, modelName, databaseSchema);\r\n }\r\n }\r\n index++;\r\n }\r\n let tableSchema_;\r\n for (const modelClassRepresentations of entries.models) {\r\n const ModelName = modelClassRepresentations.getModelName();\r\n models[ModelName] = modelClassRepresentations;\r\n const tableSchema = databaseSchema.stores.find((e) => e.name == ModelName);\r\n tableSchema_ = tableSchema;\r\n modelsConfig[ModelName] = {\r\n DatabaseSchema: databaseSchema,\r\n TableSchema: tableSchema\r\n };\r\n ModelMigrations.prepare(databaseSchema.databaseName);\r\n transactionOnCommit.prepare(modelClassRepresentations);\r\n }\r\n if (databaseSchema.type == 'indexedDB') {\r\n await IndexedDB.run(databaseSchema);\r\n await ModelAPIRequest.obj(databaseSchema, tableSchema_).migrate();\r\n ModelMigrations.migrationsState(databaseSchema.databaseName, true);\r\n }\r\n }\r\n static manyToManyRelationShip(foreignKeyField, FieldName, modelName, databaseSchema) {\r\n const foreignKeyFieldModel = foreignKeyField.model;\r\n const currentModel = models[modelName];\r\n const foreignKeyFieldModelName = foreignKeyFieldModel.getModelName();\r\n const currentModelName = models[modelName].getModelName();\r\n const tableName = currentModelName + foreignKeyFieldModelName;\r\n const num = databaseSchema.stores.push({\r\n name: tableName,\r\n id: { keyPath: 'id', autoIncrement: true, type: FieldType.INT },\r\n fields: [\r\n {\r\n name: 'iD' + foreignKeyFieldModelName,\r\n keyPath: 'iD' + foreignKeyFieldModelName,\r\n options: {\r\n unique: false,\r\n type: FieldType.INT\r\n },\r\n className: 'IntegerField'\r\n },\r\n {\r\n name: 'iD' + currentModelName,\r\n keyPath: 'iD' + currentModelName,\r\n options: {\r\n unique: false,\r\n type: FieldType.INT\r\n },\r\n className: 'IntegerField'\r\n }\r\n ],\r\n attributes: {},\r\n fieldTypes: {\r\n IntegerField: ['iD' + foreignKeyFieldModelName, 'iD' + currentModelName]\r\n }\r\n });\r\n const id = num - 1;\r\n models[tableName] = generateGenericModel({\r\n DBSchema: databaseSchema,\r\n ModelName: tableName,\r\n TableSchema: databaseSchema.stores[id]\r\n });\r\n return generateGenericModel({\r\n DBSchema: databaseSchema,\r\n ModelName: tableName,\r\n TableSchema: databaseSchema.stores[id]\r\n });\r\n }\r\n}\r\nasync function cachedValue(Model) {\r\n const emptyFields = Model.getEmptyFields();\r\n Model.getEmptyFields = function () {\r\n return emptyFields;\r\n };\r\n const getModelName = Model.getModelName();\r\n Model.getModelName = function () {\r\n return getModelName;\r\n };\r\n}\r\nexport class registerLocalStorage {\r\n static async register(entries) {\r\n const databaseSchema = {\r\n databaseName: entries.databaseName,\r\n version: entries.version,\r\n type: 'localStorage',\r\n stores: []\r\n };\r\n for (const modelClassRepresentations of entries.models) {\r\n const ModelName = modelClassRepresentations.getModelName();\r\n modelsLocalStorage[ModelName] = modelClassRepresentations;\r\n }\r\n let index = 0;\r\n for (const modelClassRepresentations of entries.models) {\r\n const { fields, modelName, attributes, fieldTypes } = LocalStorageModelReader.read(modelClassRepresentations);\r\n // const idFieldName = attributes?.primaryKey?.shift()\r\n databaseSchema.stores.push({\r\n name: modelName,\r\n id: {\r\n keyPath: modelName,\r\n type: FieldType.VARCHAR,\r\n autoIncrement: false\r\n },\r\n attributes: attributes,\r\n fields: [],\r\n fieldTypes\r\n });\r\n for (const [fieldName, Field] of Object.entries(fields)) {\r\n databaseSchema.stores[index].fields.push({\r\n name: fieldName,\r\n keyPath: fieldName,\r\n options: {\r\n unique: false,\r\n type: null\r\n },\r\n className: Field === null || Field === void 0 ? void 0 : Field.fieldName,\r\n fieldAttributes: Object.assign({}, Field)\r\n });\r\n }\r\n index++;\r\n }\r\n for (const modelClassRepresentations of entries.models) {\r\n const ModelName = modelClassRepresentations.getModelName();\r\n const tableSchema = databaseSchema.stores.find((e) => e.name == ModelName);\r\n modelClassRepresentations.getDBSchema = () => {\r\n return databaseSchema;\r\n };\r\n modelClassRepresentations.getTableSchema = () => {\r\n return tableSchema;\r\n };\r\n modelsConfigLocalStorage[ModelName] = {\r\n DatabaseSchema: databaseSchema,\r\n TableSchema: tableSchema\r\n };\r\n modelsLocalStorage[ModelName] = modelClassRepresentations;\r\n }\r\n }\r\n}\r\nexport class ModelEditor {\r\n static addMethodOneToOneField(foreignKeyField, FieldName, modelName, databaseSchema) {\r\n const foreignKeyFieldModel = foreignKeyField.model;\r\n const currentModel = models[modelName];\r\n foreignKeyFieldModel['prototype'][modelName] = async function (body) {\r\n const foreignModel = currentModel;\r\n const TableSchema = foreignModel.getTableSchema();\r\n const obj = {};\r\n obj[TableSchema.id.keyPath] = this.getPrimaryKeyValue();\r\n return await foreignModel.get(obj);\r\n };\r\n currentModel['prototype'][foreignKeyFieldModel['name']] = async function () {\r\n const foreignModel = foreignKeyFieldModel;\r\n let params = {};\r\n const TableSchema = foreignModel.getTableSchema();\r\n params[TableSchema.id.keyPath] = this.getPrimaryKeyValue();\r\n return await foreignModel.get(params);\r\n };\r\n }\r\n static addMethodForeignKey(foreignKeyField, FieldName, modelName, databaseSchema) {\r\n const foreignKeyFieldModel = foreignKeyField.model;\r\n const currentModel = models[modelName];\r\n const FunctionName = uncapitalize(modelName);\r\n foreignKeyFieldModel['prototype'][FunctionName + '_setAll'] = async function () {\r\n const obj = {};\r\n obj[FieldName] = this.getPrimaryKeyValue();\r\n const currentModel = models[modelName];\r\n return await currentModel.filter(obj).execute();\r\n };\r\n foreignKeyFieldModel['prototype'][FunctionName + '_setAdd'] = async function (arg) {\r\n const reporter = this;\r\n arg[FieldName] = reporter;\r\n return currentModel['create'](arg);\r\n };\r\n currentModel['prototype'][foreignKeyFieldModel.getModelName()] = async function () {\r\n const TableSchema = foreignKeyFieldModel.getTableSchema();\r\n const obj = {};\r\n obj[TableSchema.id.keyPath] = this[FieldName];\r\n return foreignKeyFieldModel.filter(obj).execute();\r\n };\r\n }\r\n static async addMethodManyToManyField(foreignKeyField, FieldName, modelName, databaseSchema) {\r\n const foreignKeyFieldModel = foreignKeyField.model;\r\n FieldName = FieldName;\r\n const currentModel = models[modelName];\r\n const middleTable = await registerModel.manyToManyRelationShip(foreignKeyField, FieldName, modelName, databaseSchema);\r\n currentModel['prototype'][FieldName + '_add'] = async function (modelInstances) {\r\n if (modelInstances.constructor.name != 'Array') {\r\n modelInstances = [modelInstances];\r\n }\r\n for (const modelInstance of modelInstances) {\r\n if (modelInstance instanceof foreignKeyFieldModel) {\r\n let params = {};\r\n params[`iD${currentModel.getModelName()}`] = this.getPrimaryKeyValue();\r\n params[`iD${modelInstance.getModelName()}`] = modelInstance.getPrimaryKeyValue();\r\n await middleTable['create'](params);\r\n }\r\n else {\r\n throw ('Need to be instance of ' + foreignKeyFieldModel.getModelName());\r\n }\r\n }\r\n };\r\n currentModel['prototype'][FieldName] = function () {\r\n let _model = this;\r\n return {\r\n async all() {\r\n let params = {};\r\n params[`iD${_model.getModelName()}`] = _model.getPrimaryKeyValue();\r\n const middleTableResult = await middleTable['filter'](params).execute();\r\n foreignKeyField.model;\r\n return middleTableResult;\r\n }\r\n };\r\n };\r\n currentModel['prototype'][FieldName + '_all'] = async function () {\r\n let _model = this;\r\n let params = {};\r\n let result = [];\r\n params[`iD${_model.getModelName()}`] = _model.getPrimaryKeyValue();\r\n const middleTableResult = await middleTable['filter'](params).execute();\r\n let ids;\r\n if (middleTableResult) {\r\n const TableSchema = foreignKeyField.model.getTableSchema();\r\n ids = middleTableResult.map((e) => {\r\n return e[`iD${foreignKeyField.model.name}`];\r\n });\r\n let params = {};\r\n for (const id of ids) {\r\n try {\r\n params[TableSchema.id.keyPath] = id;\r\n const row = await foreignKeyField.model.get(params);\r\n result.push(row);\r\n }\r\n catch (error) {\r\n }\r\n }\r\n }\r\n return result;\r\n };\r\n foreignKeyField.model['prototype'][uncapitalize(modelName) + '_set_all'] = async function () {\r\n let _model = this;\r\n let params = {};\r\n let result = [];\r\n params[`iD${_model.getModelName()}`] = _model.getPrimaryKeyValue();\r\n const middleTableResult = await middleTable['filter'](params).execute();\r\n let ids;\r\n if (middleTableResult) {\r\n const TableSchema = currentModel.getTableSchema();\r\n ids = middleTableResult.map((e) => {\r\n return e[`iD${modelName}`];\r\n });\r\n let params = {};\r\n for (const id of ids) {\r\n try {\r\n params[TableSchema.id.keyPath] = id;\r\n const row = await currentModel.get(params);\r\n result.push(row);\r\n }\r\n catch (error) {\r\n }\r\n }\r\n }\r\n return result;\r\n };\r\n }\r\n}\r\nfunction generateGenericModel({ DBSchema, ModelName, TableSchema }) {\r\n class GenericModel extends Model {\r\n }\r\n for (const [Field, value] of Object.entries(Model)) {\r\n GenericModel[Field] = value;\r\n }\r\n // GenericModel.prototype = Model.prototype\r\n GenericModel.prototype['getDBSchema'] = () => {\r\n return DBSchema;\r\n };\r\n GenericModel.prototype['getModelName'] = () => {\r\n return ModelName;\r\n };\r\n GenericModel.prototype['getTableSchema'] = () => {\r\n return TableSchema;\r\n };\r\n GenericModel['getDBSchema'] = () => {\r\n return DBSchema;\r\n };\r\n GenericModel['getModelName'] = () => {\r\n return ModelName;\r\n };\r\n GenericModel['getTableSchema'] = () => {\r\n return TableSchema;\r\n };\r\n return GenericModel;\r\n}\r\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} |