{"version":3,"sources":["../browser/src/decorator/columns/PrimaryColumn.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,sBAAsB,EAAC,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAC,wBAAwB,EAAC,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAC,kCAAkC,EAAC,MAAM,gDAAgD,CAAC;AAkBlG;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,aAAwC,EAAE,OAAuB;IAC3F,OAAO,UAAU,MAAc,EAAE,YAAoB;QAEjD,uBAAuB;QACvB,IAAI,IAA0B,CAAC;QAC/B,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;YACnC,IAAI,GAAgB,aAAa,CAAC;SACrC;aAAM;YACH,OAAO,GAAmB,aAAa,CAAC;SAC3C;QACD,IAAI,CAAC,OAAO;YAAE,OAAO,GAAG,EAAmB,CAAC;QAE5C,uDAAuD;QACvD,IAAM,mBAAmB,GAAG,OAAO,IAAK,OAAe,CAAC,WAAW,CAAC,CAAC,CAAE,OAAe,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpJ,IAAI,CAAC,IAAI,IAAI,mBAAmB;YAC5B,IAAI,GAAG,mBAAmB,CAAC;QAE/B,yGAAyG;QACzG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI;YACrB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QAExB,yFAAyF;QACzF,IAAI,CAAC,OAAO,CAAC,IAAI;YACb,MAAM,IAAI,wBAAwB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAE7D,wFAAwF;QACxF,IAAI,OAAO,CAAC,QAAQ;YAChB,MAAM,IAAI,kCAAkC,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAEvE,6CAA6C;QAC7C,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QAEvB,4CAA4C;QAC5C,sBAAsB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;YAClC,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,OAAO;SACG,CAAC,CAAC;QAEzB,IAAI,OAAO,CAAC,SAAS,EAAE;YACnB,sBAAsB,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;gBACtC,MAAM,EAAE,MAAM,CAAC,WAAW;gBAC1B,YAAY,EAAE,YAAY;gBAC1B,QAAQ,EAAE,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;aAC3D,CAAC,CAAC;SAC/B;IACL,CAAC,CAAC;AACN,CAAC","file":"PrimaryColumn.js","sourcesContent":["import {ColumnOptions, ColumnType, getMetadataArgsStorage} from \"../../\";\nimport {ColumnTypeUndefinedError} from \"../../error/ColumnTypeUndefinedError\";\nimport {PrimaryColumnCannotBeNullableError} from \"../../error/PrimaryColumnCannotBeNullableError\";\nimport {ColumnMetadataArgs} from \"../../metadata-args/ColumnMetadataArgs\";\nimport { GeneratedMetadataArgs } from \"../../metadata-args/GeneratedMetadataArgs\";\n\n/**\n * Column decorator is used to mark a specific class property as a table column.\n * Only properties decorated with this decorator will be persisted to the database when entity be saved.\n * Primary columns also creates a PRIMARY KEY for this column in a db.\n */\nexport function PrimaryColumn(options?: ColumnOptions): Function;\n\n/**\n * Column decorator is used to mark a specific class property as a table column.\n * Only properties decorated with this decorator will be persisted to the database when entity be saved.\n * Primary columns also creates a PRIMARY KEY for this column in a db.\n */\nexport function PrimaryColumn(type?: ColumnType, options?: ColumnOptions): Function;\n\n/**\n * Column decorator is used to mark a specific class property as a table column.\n * Only properties decorated with this decorator will be persisted to the database when entity be saved.\n * Primary columns also creates a PRIMARY KEY for this column in a db.\n */\nexport function PrimaryColumn(typeOrOptions?: ColumnType|ColumnOptions, options?: ColumnOptions): Function {\n return function (object: Object, propertyName: string) {\n\n // normalize parameters\n let type: ColumnType|undefined;\n if (typeof typeOrOptions === \"string\") {\n type = <ColumnType> typeOrOptions;\n } else {\n options = <ColumnOptions> typeOrOptions;\n }\n if (!options) options = {} as ColumnOptions;\n\n // if type is not given explicitly then try to guess it\n const reflectMetadataType = Reflect && (Reflect as any).getMetadata ? (Reflect as any).getMetadata(\"design:type\", object, propertyName) : undefined;\n if (!type && reflectMetadataType)\n type = reflectMetadataType;\n\n // check if there is no type in column options then set type from first function argument, or guessed one\n if (!options.type && type)\n options.type = type;\n\n // if we still don't have a type then we need to give error to user that type is required\n if (!options.type)\n throw new ColumnTypeUndefinedError(object, propertyName);\n\n // check if column is not nullable, because we cannot allow a primary key to be nullable\n if (options.nullable)\n throw new PrimaryColumnCannotBeNullableError(object, propertyName);\n\n // explicitly set a primary to column options\n options.primary = true;\n\n // create and register a new column metadata\n getMetadataArgsStorage().columns.push({\n target: object.constructor,\n propertyName: propertyName,\n mode: \"regular\",\n options: options\n } as ColumnMetadataArgs);\n\n if (options.generated) {\n getMetadataArgsStorage().generations.push({\n target: object.constructor,\n propertyName: propertyName,\n strategy: typeof options.generated === \"string\" ? options.generated : \"increment\"\n } as GeneratedMetadataArgs);\n }\n };\n}\n\n"],"sourceRoot":"../.."}
|