UNPKG

artmapper

Version:

Spring Boot clone for Node.js with TypeScript/JavaScript - JPA-like ORM, Lombok decorators, dependency injection, and MySQL support

141 lines 6.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TEMPORAL_METADATA_KEY = exports.ENUMERATED_METADATA_KEY = exports.TRANSIENT_METADATA_KEY = exports.EMBEDDABLE_METADATA_KEY = exports.EMBEDDED_METADATA_KEY = exports.MAPPED_SUPERCLASS_METADATA_KEY = exports.INVERSE_JOIN_COLUMNS_METADATA_KEY = exports.JOIN_COLUMNS_METADATA_KEY = exports.JOIN_TABLE_METADATA_KEY = exports.JOIN_COLUMN_METADATA_KEY = void 0; exports.JoinColumn = JoinColumn; exports.JoinColumns = JoinColumns; exports.JoinTable = JoinTable; exports.MappedSuperclass = MappedSuperclass; exports.Embedded = Embedded; exports.Embeddable = Embeddable; exports.Transient = Transient; exports.Enumerated = Enumerated; exports.Temporal = Temporal; require("reflect-metadata"); exports.JOIN_COLUMN_METADATA_KEY = Symbol('joinColumn'); exports.JOIN_TABLE_METADATA_KEY = Symbol('joinTable'); exports.JOIN_COLUMNS_METADATA_KEY = Symbol('joinColumns'); exports.INVERSE_JOIN_COLUMNS_METADATA_KEY = Symbol('inverseJoinColumns'); /** * Spring JPA @JoinColumn equivalent * Specifies a column for joining an entity association or element collection */ function JoinColumn(options) { return function (target, propertyKey) { const existingJoinColumns = Reflect.getMetadata(exports.JOIN_COLUMN_METADATA_KEY, target.constructor) || {}; existingJoinColumns[propertyKey] = { name: options?.name || `${propertyKey}_id`, referencedColumnName: options?.referencedColumnName || 'id', nullable: options?.nullable !== false, unique: options?.unique || false, insertable: options?.insertable !== false, updatable: options?.updatable !== false, columnDefinition: options?.columnDefinition, }; Reflect.defineMetadata(exports.JOIN_COLUMN_METADATA_KEY, existingJoinColumns, target.constructor); }; } /** * Spring JPA @JoinColumns equivalent * Groups multiple JoinColumn annotations */ function JoinColumns(...columns) { return function (target, propertyKey) { const existingJoinColumns = Reflect.getMetadata(exports.JOIN_COLUMNS_METADATA_KEY, target.constructor) || {}; existingJoinColumns[propertyKey] = columns.map(col => ({ name: col.name || `${propertyKey}_id`, referencedColumnName: col.referencedColumnName || 'id', nullable: col.nullable !== false, unique: col.unique || false, insertable: col.insertable !== false, updatable: col.updatable !== false, columnDefinition: col.columnDefinition, })); Reflect.defineMetadata(exports.JOIN_COLUMNS_METADATA_KEY, existingJoinColumns, target.constructor); }; } /** * Spring JPA @JoinTable equivalent * Specifies the mapping of associations */ function JoinTable(options) { return function (target, propertyKey) { const existingJoinTables = Reflect.getMetadata(exports.JOIN_TABLE_METADATA_KEY, target.constructor) || {}; existingJoinTables[propertyKey] = { name: options?.name || `${target.constructor.name}_${propertyKey}`, catalog: options?.catalog, schema: options?.schema, joinColumns: options?.joinColumns || [], inverseJoinColumns: options?.inverseJoinColumns || [], }; Reflect.defineMetadata(exports.JOIN_TABLE_METADATA_KEY, existingJoinTables, target.constructor); }; } /** * Spring JPA @MappedSuperclass equivalent * Designates a class whose mapping information is applied to the entities that inherit from it */ exports.MAPPED_SUPERCLASS_METADATA_KEY = Symbol('mappedSuperclass'); function MappedSuperclass() { return function (target) { Reflect.defineMetadata(exports.MAPPED_SUPERCLASS_METADATA_KEY, true, target); }; } /** * Spring JPA @Embedded equivalent * Specifies a persistent field or property of an entity whose value is an instance of an embeddable class */ exports.EMBEDDED_METADATA_KEY = Symbol('embedded'); function Embedded() { return function (target, propertyKey) { const existingEmbedded = Reflect.getMetadata(exports.EMBEDDED_METADATA_KEY, target.constructor) || {}; existingEmbedded[propertyKey] = true; Reflect.defineMetadata(exports.EMBEDDED_METADATA_KEY, existingEmbedded, target.constructor); }; } /** * Spring JPA @Embeddable equivalent * Specifies a class whose instances are stored as an intrinsic part of an owning entity */ exports.EMBEDDABLE_METADATA_KEY = Symbol('embeddable'); function Embeddable() { return function (target) { Reflect.defineMetadata(exports.EMBEDDABLE_METADATA_KEY, true, target); }; } /** * Spring JPA @Transient equivalent * Specifies that the property or field is not persistent */ exports.TRANSIENT_METADATA_KEY = Symbol('transient'); function Transient() { return function (target, propertyKey) { const existingTransient = Reflect.getMetadata(exports.TRANSIENT_METADATA_KEY, target.constructor) || {}; existingTransient[propertyKey] = true; Reflect.defineMetadata(exports.TRANSIENT_METADATA_KEY, existingTransient, target.constructor); }; } /** * Spring JPA @Enumerated equivalent * Specifies that a persistent property or field should be persisted as an enumerated type */ exports.ENUMERATED_METADATA_KEY = Symbol('enumerated'); function Enumerated(value = 'ORDINAL') { return function (target, propertyKey) { const existingEnumerated = Reflect.getMetadata(exports.ENUMERATED_METADATA_KEY, target.constructor) || {}; existingEnumerated[propertyKey] = { type: value }; Reflect.defineMetadata(exports.ENUMERATED_METADATA_KEY, existingEnumerated, target.constructor); }; } /** * Spring JPA @Temporal equivalent * Specifies the temporal type of a date field */ exports.TEMPORAL_METADATA_KEY = Symbol('temporal'); function Temporal(value) { return function (target, propertyKey) { const existingTemporal = Reflect.getMetadata(exports.TEMPORAL_METADATA_KEY, target.constructor) || {}; existingTemporal[propertyKey] = { type: value }; Reflect.defineMetadata(exports.TEMPORAL_METADATA_KEY, existingTemporal, target.constructor); }; } //# sourceMappingURL=mapping.js.map