@unito/integration-debugger
Version:
The Unito Integration Debugger
80 lines (79 loc) • 3.14 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Environment = exports.CONFIG_FILE = void 0;
exports.getDefaultConfiguration = getDefaultConfiguration;
exports.readConfiguration = readConfiguration;
exports.writeConfiguration = writeConfiguration;
exports.sanitizeConfiguration = sanitizeConfiguration;
const fs_1 = __importDefault(require("fs"));
exports.CONFIG_FILE = '.unito.debugger.json';
var Environment;
(function (Environment) {
Environment["None"] = "none";
Environment["Local"] = "local";
Environment["Staging"] = "staging";
Environment["Production"] = "prod";
})(Environment || (exports.Environment = Environment = {}));
function getDefaultConfiguration() {
return {
apiKey: undefined,
environment: Environment.None,
integrationId: undefined,
credentialId: undefined,
integrationUrl: undefined,
credentialPayload: undefined,
secretsPayload: undefined,
graphRelativeUrl: undefined,
credentialAccountRelativeUrl: undefined,
webhookParsingRelativeUrl: undefined,
webhookSubscriptionsRelativeUrl: undefined,
webhookAcknowledgeRelativeUrl: undefined,
spawnProcessCommand: undefined,
interactive: true,
verbose: false,
startingPath: undefined,
startingOperation: undefined,
outputFilePath: undefined,
stepCheckKeys: undefined,
operationCollectionItemsPerPage: Number.MAX_SAFE_INTEGER,
operationCollectionFollowNextPages: true,
readOnly: undefined,
timeout: undefined,
};
}
async function readConfiguration() {
let configuration;
try {
const configurationFile = await fs_1.default.promises.readFile(exports.CONFIG_FILE, { encoding: 'utf8', flag: 'r' });
configuration = JSON.parse(configurationFile);
}
catch {
configuration = getDefaultConfiguration();
}
if (configuration.environment === undefined) {
configuration.environment = Environment.None;
}
return { ...getDefaultConfiguration(), ...configuration };
}
async function writeConfiguration(configuration) {
await fs_1.default.promises.writeFile(exports.CONFIG_FILE, JSON.stringify(configuration, null, 2), { encoding: 'utf8', flag: 'w' });
}
function sanitizeConfiguration(configuration) {
const sanitizedConfiguration = JSON.parse(JSON.stringify(configuration));
if (sanitizedConfiguration.credentialPayload) {
for (const [key, value] of Object.entries(sanitizedConfiguration.credentialPayload)) {
if (typeof value === 'string') {
sanitizedConfiguration.credentialPayload[key] = '**********';
}
}
}
if (sanitizedConfiguration.secretsPayload) {
for (const [key] of Object.entries(sanitizedConfiguration.secretsPayload)) {
sanitizedConfiguration.secretsPayload[key] = '**********';
}
}
return sanitizedConfiguration;
}
;