333
schangxiang@126.com
2025-09-19 18966e02fb573c7e2bb0c6426ed792b38b910940
1
{"version":3,"sources":["../browser/src/decorator/columns/PrimaryGeneratedColumn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,sBAAsB,EAAC,MAAM,QAAQ,CAAC;AA8B7D;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,iBAAqH,EACrH,YAAqF;IAExH,uBAAuB;IACvB,IAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,IAAI,QAAoC,CAAC;IACzC,IAAI,iBAAiB,EAAE;QACnB,IAAI,OAAO,iBAAiB,KAAK,QAAQ;YACrC,QAAQ,GAAG,iBAA+C,CAAC;QAE/D,IAAI,iBAAiB,YAAY,MAAM,EAAE;YACrC,QAAQ,GAAG,WAAW,CAAC;YACvB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;SAC7C;KACJ;SAAM;QACH,QAAQ,GAAG,WAAW,CAAC;KAC1B;IACD,IAAI,YAAY,YAAY,MAAM;QAC9B,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAEzC,OAAO,UAAU,MAAc,EAAE,YAAoB;QAEjD,sFAAsF;QACtF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACf,IAAI,QAAQ,KAAK,WAAW,EAAE;gBAC1B,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC;aACzB;iBAAM,IAAI,QAAQ,KAAK,MAAM,EAAE;gBAC5B,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC;aACzB;iBAAM,IAAI,QAAQ,KAAK,OAAO,EAAE;gBAC7B,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC;aACxB;SACJ;QAED,2DAA2D;QAC3D,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QAEvB,gCAAgC;QAChC,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;SACnB,CAAC,CAAC;QAEH,mCAAmC;QACnC,sBAAsB,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;YACtC,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,QAAQ,EAAE,QAAQ;SACI,CAAC,CAAC;IAChC,CAAC,CAAC;AACN,CAAC","file":"PrimaryGeneratedColumn.js","sourcesContent":["import {ColumnOptions, getMetadataArgsStorage} from \"../../\";\nimport {PrimaryGeneratedColumnNumericOptions} from \"../options/PrimaryGeneratedColumnNumericOptions\";\nimport {PrimaryGeneratedColumnUUIDOptions} from \"../options/PrimaryGeneratedColumnUUIDOptions\";\nimport {GeneratedMetadataArgs} from \"../../metadata-args/GeneratedMetadataArgs\";\n\n/**\n * Column decorator is used to mark a specific class property as a table column.\n */\nexport function PrimaryGeneratedColumn(): Function;\n\n/**\n * Column decorator is used to mark a specific class property as a table column.\n */\nexport function PrimaryGeneratedColumn(options: PrimaryGeneratedColumnNumericOptions): Function;\n\n/**\n * Column decorator is used to mark a specific class property as a table column.\n */\nexport function PrimaryGeneratedColumn(strategy: \"increment\", options?: PrimaryGeneratedColumnNumericOptions): Function;\n\n/**\n * Column decorator is used to mark a specific class property as a table column.\n */\nexport function PrimaryGeneratedColumn(strategy: \"uuid\", options?: PrimaryGeneratedColumnUUIDOptions): Function;\n\n/**\n * Column decorator is used to mark a specific class property as a table column.\n */\nexport function PrimaryGeneratedColumn(strategy: \"rowid\", options?: PrimaryGeneratedColumnUUIDOptions): 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 * This column creates an integer PRIMARY COLUMN with generated set to true.\n */\nexport function PrimaryGeneratedColumn(strategyOrOptions?: \"increment\"|\"uuid\"|\"rowid\"|PrimaryGeneratedColumnNumericOptions|PrimaryGeneratedColumnUUIDOptions,\n                                       maybeOptions?: PrimaryGeneratedColumnNumericOptions|PrimaryGeneratedColumnUUIDOptions): Function {\n\n    // normalize parameters\n    const options: ColumnOptions = {};\n    let strategy: \"increment\"|\"uuid\"|\"rowid\";\n    if (strategyOrOptions) {\n        if (typeof strategyOrOptions === \"string\")\n            strategy = strategyOrOptions as \"increment\"|\"uuid\"|\"rowid\";\n\n        if (strategyOrOptions instanceof Object) {\n            strategy = \"increment\";\n            Object.assign(options, strategyOrOptions);\n        }\n    } else {\n        strategy = \"increment\";\n    }\n    if (maybeOptions instanceof Object)\n        Object.assign(options, maybeOptions);\n\n    return function (object: Object, propertyName: string) {\n\n        // if column type is not explicitly set then determine it based on generation strategy\n        if (!options.type) {\n            if (strategy === \"increment\") {\n                options.type = Number;\n            } else if (strategy === \"uuid\") {\n                options.type = \"uuid\";\n            } else if (strategy === \"rowid\") {\n                options.type = \"int\";\n            }\n        }\n\n        // explicitly set a primary and generated to column options\n        options.primary = true;\n\n        // register column metadata args\n        getMetadataArgsStorage().columns.push({\n            target: object.constructor,\n            propertyName: propertyName,\n            mode: \"regular\",\n            options: options\n        });\n\n        // register generated metadata args\n        getMetadataArgsStorage().generations.push({\n            target: object.constructor,\n            propertyName: propertyName,\n            strategy: strategy\n        } as GeneratedMetadataArgs);\n    };\n}\n"],"sourceRoot":"../.."}