@prisma/generator-helper
Advanced tools
Comparing version 0.0.6 to 0.0.7
import { GeneratorOptions, GeneratorManifest } from './types'; | ||
export interface Handler { | ||
onGenerate(options: GeneratorOptions): Promise<void>; | ||
onGenerate(options: GeneratorOptions): Promise<any>; | ||
onManifest?(): GeneratorManifest; | ||
} | ||
export declare function generatorHandler(handler: Handler): void; |
@@ -21,6 +21,6 @@ "use strict"; | ||
try { | ||
yield handler.onGenerate(json.params); | ||
const result = yield handler.onGenerate(json.params); | ||
respond({ | ||
jsonrpc: '2.0', | ||
result: {}, | ||
result: result, | ||
id: json.id, | ||
@@ -27,0 +27,0 @@ }); |
/// <reference types="node" /> | ||
import { ChildProcessByStdio } from 'child_process'; | ||
import { GeneratorManifest, GeneratorOptions } from './types'; | ||
export declare class GeneratorError extends Error { | ||
code: number; | ||
data?: any; | ||
constructor(message: string, code: number, data?: any); | ||
} | ||
export declare class GeneratorProcess { | ||
@@ -23,3 +28,3 @@ private executablePath; | ||
getManifest(): Promise<GeneratorManifest | null>; | ||
generate(options: GeneratorOptions): Promise<void>; | ||
generate(options: GeneratorOptions): Promise<any>; | ||
} |
@@ -21,2 +21,10 @@ "use strict"; | ||
let globalMessageId = 1; | ||
class GeneratorError extends Error { | ||
constructor(message, code, data) { | ||
super(message); | ||
this.code = code; | ||
this.data = data; | ||
} | ||
} | ||
exports.GeneratorError = GeneratorError; | ||
class GeneratorProcess { | ||
@@ -92,3 +100,4 @@ constructor(executablePath) { | ||
if (data.error) { | ||
this.listeners[data.id](null, data.error); | ||
const error = new GeneratorError(data.error.message, data.error.code, data.error.data); | ||
this.listeners[data.id](null, error); | ||
} | ||
@@ -145,5 +154,3 @@ else { | ||
} | ||
if (result) { | ||
resolve(); | ||
} | ||
resolve(result); | ||
}); | ||
@@ -150,0 +157,0 @@ this.sendMessage({ |
@@ -1,3 +0,3 @@ | ||
export { GeneratorProcess } from './GeneratorProcess'; | ||
export { GeneratorProcess, GeneratorError } from './GeneratorProcess'; | ||
export { generatorHandler } from './generatorHandler'; | ||
export * from './types'; |
@@ -8,2 +8,3 @@ "use strict"; | ||
exports.GeneratorProcess = GeneratorProcess_1.GeneratorProcess; | ||
exports.GeneratorError = GeneratorProcess_1.GeneratorError; | ||
var generatorHandler_1 = require("./generatorHandler"); | ||
@@ -10,0 +11,0 @@ exports.generatorHandler = generatorHandler_1.generatorHandler; |
{ | ||
"name": "@prisma/generator-helper", | ||
"version": "0.0.6", | ||
"version": "0.0.7", | ||
"main": "dist/index.js", | ||
@@ -5,0 +5,0 @@ "types": "dist/index.d.ts", |
@@ -5,3 +5,3 @@ import { GeneratorOptions, GeneratorManifest, JsonRPC } from './types' | ||
export interface Handler { | ||
onGenerate(options: GeneratorOptions): Promise<void> | ||
onGenerate(options: GeneratorOptions): Promise<any> | ||
onManifest?(): GeneratorManifest | ||
@@ -13,8 +13,9 @@ } | ||
const json = JSON.parse(String(line)) | ||
if (json.method === 'generate' && json.params) { | ||
try { | ||
await handler.onGenerate(json.params) | ||
const result = await handler.onGenerate(json.params) | ||
respond({ | ||
jsonrpc: '2.0', | ||
result: {}, | ||
result: result, | ||
id: json.id, | ||
@@ -34,2 +35,3 @@ }) | ||
} | ||
if (json.method === 'getManifest') { | ||
@@ -36,0 +38,0 @@ if (handler.onManifest) { |
@@ -10,2 +10,12 @@ import { ChildProcessByStdio, spawn } from 'child_process' | ||
export class GeneratorError extends Error { | ||
public code: number | ||
public data?: any | ||
constructor(message: string, code: number, data?: any) { | ||
super(message) | ||
this.code = code | ||
this.data = data | ||
} | ||
} | ||
export class GeneratorProcess { | ||
@@ -104,3 +114,8 @@ child?: ChildProcessByStdio<any, any, any> | ||
if (data.error) { | ||
this.listeners[data.id](null, data.error) | ||
const error = new GeneratorError( | ||
data.error.message, | ||
data.error.code, | ||
data.error.data, | ||
) | ||
this.listeners[data.id](null, error) | ||
} else { | ||
@@ -153,3 +168,3 @@ this.listeners[data.id](data.result) | ||
} | ||
generate(options: GeneratorOptions): Promise<void> { | ||
generate(options: GeneratorOptions): Promise<any> { | ||
return new Promise((resolve, reject) => { | ||
@@ -162,5 +177,3 @@ const messageId = this.getMessageId() | ||
} | ||
if (result) { | ||
resolve() | ||
} | ||
resolve(result) | ||
}) | ||
@@ -167,0 +180,0 @@ |
@@ -1,3 +0,3 @@ | ||
export { GeneratorProcess } from './GeneratorProcess' | ||
export { GeneratorProcess, GeneratorError } from './GeneratorProcess' | ||
export { generatorHandler } from './generatorHandler' | ||
export * from './types' |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
58685
1376