UNPKG

@cloudquery/plugin-sdk-javascript

Version:

This is the high-level package to use for developing CloudQuery plugins in JavaScript

23 lines 905 B
import { createHash } from 'node:crypto'; import { v4 as uuidv4, v5 as uuidv5, NIL as NIL_UUID } from 'uuid'; import { cqIDColumn } from '../schema/meta.js'; import { getPrimaryKeys } from '../schema/table.js'; export const setCQId = (resource, deterministicCQId, generator = uuidv4) => { const randomCQId = generator(); if (!deterministicCQId) { return resource.setCqId(randomCQId); } const primaryKeys = getPrimaryKeys(resource.table); const cqOnlyPK = primaryKeys.every((pk) => pk === cqIDColumn.name); if (cqOnlyPK) { return resource.setCqId(randomCQId); } const sha256 = createHash('sha256'); primaryKeys.sort(); for (const pk of primaryKeys) { sha256.update(pk); sha256.update(resource.getColumnData(pk).toString()); } return resource.setCqId(uuidv5(sha256.digest('hex'), NIL_UUID)); }; //# sourceMappingURL=cqid.js.map