Dive into secure and efficient coding practices with our curated list of the top 10 examples showcasing 'apollo-language-server' in functional components in JavaScript. Our advanced machine learning engine meticulously scans each line of code, cross-referencing millions of open source libraries to ensure your implementation is not just functional, but also robust and secure. Elevate your React applications to new heights by mastering the art of handling side effects, API calls, and asynchronous operations with confidence and precision.
async init() {
// tell the language server to use the built-in loggers
// from oclif
Debug.SetLoggers({
info: this.log,
warning: this.warn,
error: console.error
});
}
async init() {
const { flags, args } = this.parse(this.constructor as any);
this.ctx = { flags, args } as any;
// tell the language server to use the built-in loggers
// from oclif
Debug.SetLoggers({
info: this.log,
warning: this.warn,
error: console.error
});
const config = await this.createConfig(flags);
if (!config) return;
this.createService(config, flags);
this.ctx.config = config;
// make sure this the first item in the task list
// XXX Somehow this task gets pushed onto the stack multiple times sometimes
this.tasks.push({
title: "Loading Apollo Project",
task: async ctx => {
if (flags.endpoint) {
config.setDefaults({
service: {
endpoint: {
url: flags.endpoint,
headers: headersArrayToObject(flags.header),
...(flags.skipSSLValidation && { skipSSLValidation: true })
}
}
});
}
// this can set a single or multiple local schema files
if (flags.localSchemaFile) {
const files = flags.localSchemaFile.split(",");
if (isClientConfig(config)) {
config.setDefaults({
client: {
service: {
localSchemaFile: files
}
}
});
} else if (isServiceConfig(config)) {
config.setDefaults({
service: {
localSchemaFile: files
}
});
}
}
if (flags.endpoint) {
config.setDefaults({
service: {
endpoint: {
url: flags.endpoint,
headers: headersArrayToObject(flags.header),
...(flags.skipSSLValidation && { skipSSLValidation: true })
}
}
});
}
// this can set a single or multiple local schema files
if (flags.localSchemaFile) {
const files = flags.localSchemaFile.split(",");
if (isClientConfig(config)) {
config.setDefaults({
client: {
service: {
localSchemaFile: files
}
}
});
} else if (isServiceConfig(config)) {
config.setDefaults({
service: {
localSchemaFile: files
}
});
}
}
}
});
}
// this can set a single or multiple local schema files
if (flags.localSchemaFile) {
const files = flags.localSchemaFile.split(",");
if (isClientConfig(config)) {
config.setDefaults({
client: {
service: {
localSchemaFile: files
}
}
});
} else if (isServiceConfig(config)) {
config.setDefaults({
service: {
localSchemaFile: files
}
});
}
}
// load per command type defaults;
if (this.configMap) {
const defaults = this.configMap(flags);
config.setDefaults(defaults);
}
return config;
}
}
});
}
// this can set a single or multiple local schema files
if (flags.localSchemaFile) {
const files = flags.localSchemaFile.split(",");
if (isClientConfig(config)) {
config.setDefaults({
client: {
service: {
localSchemaFile: files
}
}
});
} else if (isServiceConfig(config)) {
config.setDefaults({
service: {
localSchemaFile: files
}
});
}
}
// load per command type defaults;
if (this.configMap) {
const defaults = this.configMap(flags);
config.setDefaults(defaults);
}
return config;
}
protected async createConfig(flags: Flags) {
const service = flags.key ? getServiceFromKey(flags.key) : undefined;
const config = await loadConfig({
configPath: flags.config && parse(resolve(flags.config)).dir,
configFileName: flags.config,
name: service,
type: this.type
});
if (!config) {
this.error("A config failed to load, so the command couldn't be run");
this.exit(1);
return;
}
config.tag = flags.tag || config.tag || "current";
// flag overrides
config.setDefaults({
protected async createConfig(flags: Flags) {
const service = flags.key ? getServiceFromKey(flags.key) : undefined;
const config = await loadConfig({
configPath: flags.config && parse(resolve(flags.config)).dir,
configFileName: flags.config,
name: service,
type: this.type
});
if (!config) {
this.error("A config failed to load, so the command couldn't be run");
this.exit(1);
return;
}
config.tag = flags.tag || config.tag || "current";
// flag overrides
config.setDefaults({
engine: {
watcher.on("all", (event, file) => {
// don't trigger write events for generated file changes
if (file.indexOf("__generated__") > -1) return;
// don't trigger write events on single output file
if (file.indexOf(output) > -1) return;
this.project.fileDidChange(URI.file(file).toString());
console.log("\nChange detected, generating types...");
try {
const fileCount = write();
console.log(`${chalk.green("✔")} Wrote ${fileCount} files`);
} catch (e) {
Debug.error("Error while generating types: " + e.message);
}
});
if (tty.isatty((process.stdin as any).fd)) {
// When no config is provided, configURI === process.cwd()
// In this case, we don't want to look to the .dir since that's the parent
const configPath = config.configURI!.fsPath;
const rootURI =
configPath === process.cwd()
? URI.file(configPath)
: URI.file(parse(configPath).dir);
const clientIdentity = {
name: "Apollo CLI",
version,
referenceID
};
if (isServiceConfig(config)) {
this.project = new GraphQLServiceProject({
config,
loadingHandler,
rootURI,
clientIdentity
});
} else if (isClientConfig(config)) {
this.project = new GraphQLClientProject({
config,
loadingHandler,
rootURI,
clientIdentity
});
} else {
throw new Error(
"Unable to resolve project type. Please add either a client or service config. For more information, please refer to https://bit.ly/2ByILPj"