UNPKG

@aws-cdk/aws-redshift-alpha

Version:

The CDK Construct Library for AWS::Redshift

33 lines 4.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.makePhysicalId = makePhysicalId; exports.getDistKeyColumn = getDistKeyColumn; exports.getSortKeyColumns = getSortKeyColumns; exports.areColumnsEqual = areColumnsEqual; function makePhysicalId(resourceName, clusterProps, requestId) { return `${clusterProps.clusterName}:${clusterProps.databaseName}:${resourceName}:${requestId}`; } function getDistKeyColumn(columns) { // string comparison is required for custom resource since everything is passed as string const distKeyColumns = columns.filter(column => column.distKey === true || column.distKey === 'true'); if (distKeyColumns.length === 0) { return undefined; } else if (distKeyColumns.length > 1) { throw new Error('Multiple dist key columns found'); } return distKeyColumns[0]; } function getSortKeyColumns(columns) { // string comparison is required for custom resource since everything is passed as string return columns.filter(column => column.sortKey === true || column.sortKey === 'true'); } function areColumnsEqual(columnsA, columnsB) { if (columnsA.length !== columnsB.length) { return false; } return columnsA.every(columnA => { return columnsB.find(column => column.name === columnA.name && column.dataType === columnA.dataType); }); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSx3Q0FFQztBQUVELDRDQVdDO0FBRUQsOENBR0M7QUFFRCwwQ0FPQztBQTdCRCxTQUFnQixjQUFjLENBQUMsWUFBb0IsRUFBRSxZQUEwQixFQUFFLFNBQWlCO0lBQ2hHLE9BQU8sR0FBRyxZQUFZLENBQUMsV0FBVyxJQUFJLFlBQVksQ0FBQyxZQUFZLElBQUksWUFBWSxJQUFJLFNBQVMsRUFBRSxDQUFDO0FBQ2pHLENBQUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxPQUFpQjtJQUNoRCx5RkFBeUY7SUFDekYsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEtBQUssSUFBSSxJQUFLLE1BQU0sQ0FBQyxPQUE2QixLQUFLLE1BQU0sQ0FBQyxDQUFDO0lBRTdILElBQUksY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNoQyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO1NBQU0sSUFBSSxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsT0FBTyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0IsQ0FBQztBQUVELFNBQWdCLGlCQUFpQixDQUFDLE9BQWlCO0lBQ2pELHlGQUF5RjtJQUN6RixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLElBQUksSUFBSyxNQUFNLENBQUMsT0FBNkIsS0FBSyxNQUFNLENBQUMsQ0FBQztBQUMvRyxDQUFDO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLFFBQWtCLEVBQUUsUUFBa0I7SUFDcEUsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN4QyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDOUIsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZHLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ2x1c3RlclByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgdHlwZSB7IENvbHVtbiB9IGZyb20gJy4uLy4uL3RhYmxlJztcblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VQaHlzaWNhbElkKHJlc291cmNlTmFtZTogc3RyaW5nLCBjbHVzdGVyUHJvcHM6IENsdXN0ZXJQcm9wcywgcmVxdWVzdElkOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7Y2x1c3RlclByb3BzLmNsdXN0ZXJOYW1lfToke2NsdXN0ZXJQcm9wcy5kYXRhYmFzZU5hbWV9OiR7cmVzb3VyY2VOYW1lfToke3JlcXVlc3RJZH1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGlzdEtleUNvbHVtbihjb2x1bW5zOiBDb2x1bW5bXSk6IENvbHVtbiB8IHVuZGVmaW5lZCB7XG4gIC8vIHN0cmluZyBjb21wYXJpc29uIGlzIHJlcXVpcmVkIGZvciBjdXN0b20gcmVzb3VyY2Ugc2luY2UgZXZlcnl0aGluZyBpcyBwYXNzZWQgYXMgc3RyaW5nXG4gIGNvbnN0IGRpc3RLZXlDb2x1bW5zID0gY29sdW1ucy5maWx0ZXIoY29sdW1uID0+IGNvbHVtbi5kaXN0S2V5ID09PSB0cnVlIHx8IChjb2x1bW4uZGlzdEtleSBhcyB1bmtub3duIGFzIHN0cmluZykgPT09ICd0cnVlJyk7XG5cbiAgaWYgKGRpc3RLZXlDb2x1bW5zLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH0gZWxzZSBpZiAoZGlzdEtleUNvbHVtbnMubGVuZ3RoID4gMSkge1xuICAgIHRocm93IG5ldyBFcnJvcignTXVsdGlwbGUgZGlzdCBrZXkgY29sdW1ucyBmb3VuZCcpO1xuICB9XG5cbiAgcmV0dXJuIGRpc3RLZXlDb2x1bW5zWzBdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U29ydEtleUNvbHVtbnMoY29sdW1uczogQ29sdW1uW10pOiBDb2x1bW5bXSB7XG4gIC8vIHN0cmluZyBjb21wYXJpc29uIGlzIHJlcXVpcmVkIGZvciBjdXN0b20gcmVzb3VyY2Ugc2luY2UgZXZlcnl0aGluZyBpcyBwYXNzZWQgYXMgc3RyaW5nXG4gIHJldHVybiBjb2x1bW5zLmZpbHRlcihjb2x1bW4gPT4gY29sdW1uLnNvcnRLZXkgPT09IHRydWUgfHwgKGNvbHVtbi5zb3J0S2V5IGFzIHVua25vd24gYXMgc3RyaW5nKSA9PT0gJ3RydWUnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFyZUNvbHVtbnNFcXVhbChjb2x1bW5zQTogQ29sdW1uW10sIGNvbHVtbnNCOiBDb2x1bW5bXSk6IGJvb2xlYW4ge1xuICBpZiAoY29sdW1uc0EubGVuZ3RoICE9PSBjb2x1bW5zQi5sZW5ndGgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIGNvbHVtbnNBLmV2ZXJ5KGNvbHVtbkEgPT4ge1xuICAgIHJldHVybiBjb2x1bW5zQi5maW5kKGNvbHVtbiA9PiBjb2x1bW4ubmFtZSA9PT0gY29sdW1uQS5uYW1lICYmIGNvbHVtbi5kYXRhVHlwZSA9PT0gY29sdW1uQS5kYXRhVHlwZSk7XG4gIH0pO1xufVxuIl19