Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
// eslint-disable-next-line no-constant-condition
while (true) {
try {
if (options.watchPg) {
await watchPostGraphileSchema(pgPool, pgSchemas, options, newSchema => {
gqlSchema = newSchema;
_emitter.emit('schemas:changed');
exportGqlSchema(gqlSchema);
});
if (!gqlSchema) {
throw new Error(
"Consistency error: watchPostGraphileSchema promises to call the callback before the promise resolves; but this hasn't happened",
);
}
} else {
gqlSchema = await createPostGraphileSchema(pgPool, pgSchemas, options);
exportGqlSchema(gqlSchema);
}
if (attempts > 0) {
// tslint:disable-next-line no-console
console.error(
`Schema ${
attempts > 15 ? 'eventually' : attempts > 5 ? 'finally' : 'now'
} generated successfully`,
);
}
return gqlSchema;
} catch (error) {
attempts++;
const delay = Math.min(100 * Math.pow(attempts, 2), 30000);
const exitOnFail = !options.retryOnInitFail;
// If we fail to build our schema, log the error and either exit or retry shortly
if (typeof setup === 'function') {
await setup(client);
} else {
await client.query(setup);
}
}
const schemaOptions = Object.assign(
{
appendPlugins: [require('../index.js')],
showErrorStack: true,
},
options,
);
const schema = await createPostGraphileSchema(client, ['p'], schemaOptions);
return test({
schema,
pgClient: client,
});
});
withPgClient(async client => {
if (setup) {
if (typeof setup === "function") {
await setup(client);
} else {
await client.query(setup);
}
}
const schema = await createPostGraphileSchema(client, schemas, options);
expect(printSchemaOrdered(schema)).toMatchSnapshot();
});
withPgClient(async (client) => {
if (setup) {
if (typeof setup === 'function') {
await setup(client);
} else {
await client.query(setup);
}
}
const schema = await createPostGraphileSchema(client, schemas, options);
expect(printSchemaOrdered(schema)).toMatchSnapshot();
});