This is my receiver in the server.
@Mutation(() => String)
async register(
@Arg("picture", () => GraphQLUpload) { createReadStream, filename }: any
): Promise<string> {
console.log(__dirname);
try {
const promise = await new Promise(async (resolve, reject) =>
createReadStream()
.pipe(createWriteStream(__dirname + `/../../../images/${filename}`))
.on("finish", () => resolve(true))
.on("error", () => reject(false))
);
} catch (err) {
console.log(err);
}
return "";
}
This is my raw register.graphql
which is later compiled using graphql-codegen.
mutation Register($picture: Upload!) {
register(picture:$picture)
}
I am stuck on the angular part. So far I have this.
uploadClicked($event: any) {
let file = $event.target.files[0];
console.log(file);
this.registerGQL.mutate({ picture: { file } }).subscribe((res) => {
console.log(res);
});
}