Removing prettier for now. Adding CLI option and making it bundle before release to decrease startup time.
This commit is contained in:
parent
7da1cf0841
commit
d64518627d
43
README.md
Normal file
43
README.md
Normal file
@ -0,0 +1,43 @@
|
||||
# JSON-RPC 2.0 Code-Gen
|
||||
|
||||
Type/Service definition language and code generator for json-rpc 2.0. Currently generating code for NodeJS, Deno and the Web. Other targets are possible, but not implemented yet.
|
||||
|
||||
| Name | Description |
|
||||
| ------- | --------------------------------- |
|
||||
| ts-node | Typescript for NodeJS |
|
||||
| ts-esm | Typescript in ESM format for Deno |
|
||||
|
||||
## Usage
|
||||
|
||||
Create a definition file like `test.jrpc`:
|
||||
|
||||
```jrpc
|
||||
enum TestEnum {
|
||||
VAL1,
|
||||
VAL2,
|
||||
VAL10 = 10,
|
||||
VAL11,
|
||||
VAL12
|
||||
}
|
||||
|
||||
type Test {
|
||||
testen: TestEnum;
|
||||
someString: string;
|
||||
someNumber: number;
|
||||
array: string[];
|
||||
map: {number, TestEnum};
|
||||
}
|
||||
|
||||
service TestService {
|
||||
AddNumbers(v1: number, v2: number): number;
|
||||
|
||||
|
||||
notification SendTest(test: Test);
|
||||
}
|
||||
```
|
||||
|
||||
Then run the generator like this `jrpc compile test.jrpc -o=ts-node:output/`.
|
||||
|
||||
This will generate the Client and Server code in the specified folder.
|
||||
|
||||
//TODO: Make Documentation better
|
7913
lib/jrpc.js
Executable file
7913
lib/jrpc.js
Executable file
File diff suppressed because it is too large
Load Diff
23
package.json
23
package.json
@ -1,25 +1,36 @@
|
||||
{
|
||||
"name": "@hibas123/jrpcgen",
|
||||
"version": "1.0.0",
|
||||
"version": "1.0.1",
|
||||
"main": "lib/index.js",
|
||||
"license": "MIT",
|
||||
"packageManager": "yarn@3.1.1",
|
||||
"scripts": {
|
||||
"start": "ts-node src/index.ts",
|
||||
"test": "npm run start -- compile examples/example.jrpc -o=ts-node:examples/out && ts-node examples/test.ts"
|
||||
"test": "npm run start -- compile examples/example.jrpc -o=ts-node:examples/out && ts-node examples/test.ts",
|
||||
"build": "esbuild src/index.ts --bundle --platform=node --target=node14 --outfile=lib/jrpc.js",
|
||||
"prepublishOnly": "npm run build"
|
||||
},
|
||||
"bin": {
|
||||
"jrpc": "./lib/jrpc.js"
|
||||
},
|
||||
"files": [
|
||||
"lib/jrpc.js",
|
||||
"templates/**",
|
||||
"examples/**",
|
||||
"src/**",
|
||||
"tsconfig.json"
|
||||
],
|
||||
"devDependencies": {
|
||||
"@types/debug": "^4.1.7",
|
||||
"@types/node": "^17.0.5",
|
||||
"@types/prettier": "^2.4.2",
|
||||
"@types/yargs": "^17.0.8",
|
||||
"ts-node": "^10.4.0",
|
||||
"typescript": "^4.5.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"chalk": "4",
|
||||
"debug": "^4.3.3",
|
||||
"esbuild": "^0.14.10",
|
||||
"prettier": "^2.5.1",
|
||||
"ts-node": "^10.4.0",
|
||||
"typescript": "^4.5.4",
|
||||
"yargs": "^17.3.1"
|
||||
}
|
||||
}
|
||||
|
@ -1,3 +1,5 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
import yargs from "yargs";
|
||||
import { hideBin } from "yargs/helpers";
|
||||
import startCompile, { Target } from "./process";
|
||||
|
@ -7,7 +7,7 @@ import {
|
||||
} from "../ir";
|
||||
|
||||
import { CompileTarget } from "../compile";
|
||||
import * as prettier from "prettier";
|
||||
// import * as prettier from "prettier";
|
||||
|
||||
type lineAppender = (ind: number, line: string | string[]) => void;
|
||||
|
||||
@ -51,13 +51,13 @@ export class TypescriptTarget extends CompileTarget {
|
||||
}
|
||||
|
||||
private writeFormattedFile(file: string, code: string) {
|
||||
// this.writeFile(file, code);
|
||||
const formatted = prettier.format(code, {
|
||||
parser: "typescript",
|
||||
tabWidth: 3,
|
||||
});
|
||||
this.writeFile(file, code);
|
||||
// const formatted = prettier.format(code, {
|
||||
// parser: "typescript",
|
||||
// tabWidth: 3,
|
||||
// });
|
||||
|
||||
this.writeFile(file, formatted);
|
||||
// this.writeFile(file, formatted);
|
||||
}
|
||||
|
||||
generateType(def: TypeDefinition) {
|
||||
|
@ -3,7 +3,6 @@
|
||||
"target": "ESNext",
|
||||
"module": "CommonJS",
|
||||
"moduleResolution": "node",
|
||||
"outDir": "examples/out",
|
||||
"esModuleInterop": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"skipLibCheck": true
|
||||
|
192
yarn.lock
192
yarn.lock
@ -31,6 +31,7 @@ __metadata:
|
||||
"@types/yargs": ^17.0.8
|
||||
chalk: 4
|
||||
debug: ^4.3.3
|
||||
esbuild: ^0.14.10
|
||||
prettier: ^2.5.1
|
||||
ts-node: ^10.4.0
|
||||
typescript: ^4.5.4
|
||||
@ -221,6 +222,197 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-android-arm64@npm:0.14.10":
|
||||
version: 0.14.10
|
||||
resolution: "esbuild-android-arm64@npm:0.14.10"
|
||||
conditions: os=android & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-darwin-64@npm:0.14.10":
|
||||
version: 0.14.10
|
||||
resolution: "esbuild-darwin-64@npm:0.14.10"
|
||||
conditions: os=darwin & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-darwin-arm64@npm:0.14.10":
|
||||
version: 0.14.10
|
||||
resolution: "esbuild-darwin-arm64@npm:0.14.10"
|
||||
conditions: os=darwin & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-freebsd-64@npm:0.14.10":
|
||||
version: 0.14.10
|
||||
resolution: "esbuild-freebsd-64@npm:0.14.10"
|
||||
conditions: os=freebsd & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-freebsd-arm64@npm:0.14.10":
|
||||
version: 0.14.10
|
||||
resolution: "esbuild-freebsd-arm64@npm:0.14.10"
|
||||
conditions: os=freebsd & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-linux-32@npm:0.14.10":
|
||||
version: 0.14.10
|
||||
resolution: "esbuild-linux-32@npm:0.14.10"
|
||||
conditions: os=linux & cpu=ia32
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-linux-64@npm:0.14.10":
|
||||
version: 0.14.10
|
||||
resolution: "esbuild-linux-64@npm:0.14.10"
|
||||
conditions: os=linux & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-linux-arm64@npm:0.14.10":
|
||||
version: 0.14.10
|
||||
resolution: "esbuild-linux-arm64@npm:0.14.10"
|
||||
conditions: os=linux & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-linux-arm@npm:0.14.10":
|
||||
version: 0.14.10
|
||||
resolution: "esbuild-linux-arm@npm:0.14.10"
|
||||
conditions: os=linux & cpu=arm
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-linux-mips64le@npm:0.14.10":
|
||||
version: 0.14.10
|
||||
resolution: "esbuild-linux-mips64le@npm:0.14.10"
|
||||
conditions: os=linux & cpu=mips64el
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-linux-ppc64le@npm:0.14.10":
|
||||
version: 0.14.10
|
||||
resolution: "esbuild-linux-ppc64le@npm:0.14.10"
|
||||
conditions: os=linux & cpu=ppc64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-linux-s390x@npm:0.14.10":
|
||||
version: 0.14.10
|
||||
resolution: "esbuild-linux-s390x@npm:0.14.10"
|
||||
conditions: os=linux & cpu=s390x
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-netbsd-64@npm:0.14.10":
|
||||
version: 0.14.10
|
||||
resolution: "esbuild-netbsd-64@npm:0.14.10"
|
||||
conditions: os=netbsd & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-openbsd-64@npm:0.14.10":
|
||||
version: 0.14.10
|
||||
resolution: "esbuild-openbsd-64@npm:0.14.10"
|
||||
conditions: os=openbsd & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-sunos-64@npm:0.14.10":
|
||||
version: 0.14.10
|
||||
resolution: "esbuild-sunos-64@npm:0.14.10"
|
||||
conditions: os=sunos & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-windows-32@npm:0.14.10":
|
||||
version: 0.14.10
|
||||
resolution: "esbuild-windows-32@npm:0.14.10"
|
||||
conditions: os=win32 & cpu=ia32
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-windows-64@npm:0.14.10":
|
||||
version: 0.14.10
|
||||
resolution: "esbuild-windows-64@npm:0.14.10"
|
||||
conditions: os=win32 & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-windows-arm64@npm:0.14.10":
|
||||
version: 0.14.10
|
||||
resolution: "esbuild-windows-arm64@npm:0.14.10"
|
||||
conditions: os=win32 & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild@npm:^0.14.10":
|
||||
version: 0.14.10
|
||||
resolution: "esbuild@npm:0.14.10"
|
||||
dependencies:
|
||||
esbuild-android-arm64: 0.14.10
|
||||
esbuild-darwin-64: 0.14.10
|
||||
esbuild-darwin-arm64: 0.14.10
|
||||
esbuild-freebsd-64: 0.14.10
|
||||
esbuild-freebsd-arm64: 0.14.10
|
||||
esbuild-linux-32: 0.14.10
|
||||
esbuild-linux-64: 0.14.10
|
||||
esbuild-linux-arm: 0.14.10
|
||||
esbuild-linux-arm64: 0.14.10
|
||||
esbuild-linux-mips64le: 0.14.10
|
||||
esbuild-linux-ppc64le: 0.14.10
|
||||
esbuild-linux-s390x: 0.14.10
|
||||
esbuild-netbsd-64: 0.14.10
|
||||
esbuild-openbsd-64: 0.14.10
|
||||
esbuild-sunos-64: 0.14.10
|
||||
esbuild-windows-32: 0.14.10
|
||||
esbuild-windows-64: 0.14.10
|
||||
esbuild-windows-arm64: 0.14.10
|
||||
dependenciesMeta:
|
||||
esbuild-android-arm64:
|
||||
optional: true
|
||||
esbuild-darwin-64:
|
||||
optional: true
|
||||
esbuild-darwin-arm64:
|
||||
optional: true
|
||||
esbuild-freebsd-64:
|
||||
optional: true
|
||||
esbuild-freebsd-arm64:
|
||||
optional: true
|
||||
esbuild-linux-32:
|
||||
optional: true
|
||||
esbuild-linux-64:
|
||||
optional: true
|
||||
esbuild-linux-arm:
|
||||
optional: true
|
||||
esbuild-linux-arm64:
|
||||
optional: true
|
||||
esbuild-linux-mips64le:
|
||||
optional: true
|
||||
esbuild-linux-ppc64le:
|
||||
optional: true
|
||||
esbuild-linux-s390x:
|
||||
optional: true
|
||||
esbuild-netbsd-64:
|
||||
optional: true
|
||||
esbuild-openbsd-64:
|
||||
optional: true
|
||||
esbuild-sunos-64:
|
||||
optional: true
|
||||
esbuild-windows-32:
|
||||
optional: true
|
||||
esbuild-windows-64:
|
||||
optional: true
|
||||
esbuild-windows-arm64:
|
||||
optional: true
|
||||
bin:
|
||||
esbuild: bin/esbuild
|
||||
checksum: 0e42a74afa79f8f096d338415b6661410fb656ce0d8ea6f48ccbd943d383e01d946dc9124e366db7dc9deb02b924c6788a68d690a1aa28365e891102450e8ae5
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"escalade@npm:^3.1.1":
|
||||
version: 3.1.1
|
||||
resolution: "escalade@npm:3.1.1"
|
||||
|
Loading…
Reference in New Issue
Block a user