protons 3.0.3 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -4
- package/dist/src/index.d.ts +5 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +18 -8
- package/dist/src/index.js.map +1 -1
- package/package.json +15 -10
- package/src/index.ts +26 -9
package/README.md
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
# protons <!-- omit in toc -->
|
|
2
2
|
|
|
3
|
-
[](http://ipfs.io)
|
|
4
|
+
[](http://webchat.freenode.net/?channels=%23ipfs)
|
|
5
|
+
[](https://discord.gg/ipfs)
|
|
6
|
+
[](https://codecov.io/gh/ipfs/protons)
|
|
7
|
+
[](https://github.com/ipfs/protons/actions/workflows/js-test-and-release.yml)
|
|
4
8
|
|
|
5
|
-
>
|
|
9
|
+
> Protobuf to ts transpiler
|
|
6
10
|
|
|
7
11
|
## Table of contents <!-- omit in toc -->
|
|
8
12
|
|
|
@@ -10,10 +14,13 @@
|
|
|
10
14
|
- [Usage](#usage)
|
|
11
15
|
- [Contribute](#contribute)
|
|
12
16
|
- [License](#license)
|
|
17
|
+
- [Contribute](#contribute-1)
|
|
13
18
|
|
|
14
19
|
## Install
|
|
15
20
|
|
|
16
|
-
|
|
21
|
+
```console
|
|
22
|
+
$ npm i protons
|
|
23
|
+
```
|
|
17
24
|
|
|
18
25
|
`protons` contains the code to compile `.proto` files to `.ts` files and `protons-runtime` contains the code to do serialization/deserialization to `Uint8Array`s during application execution.
|
|
19
26
|
|
|
@@ -62,4 +69,15 @@ This repository falls under the IPFS [Code of Conduct](https://github.com/ipfs/c
|
|
|
62
69
|
|
|
63
70
|
## License
|
|
64
71
|
|
|
65
|
-
|
|
72
|
+
Licensed under either of
|
|
73
|
+
|
|
74
|
+
- Apache 2.0, ([LICENSE-APACHE](LICENSE-APACHE) / <http://www.apache.org/licenses/LICENSE-2.0>)
|
|
75
|
+
- MIT ([LICENSE-MIT](LICENSE-MIT) / <http://opensource.org/licenses/MIT>)
|
|
76
|
+
|
|
77
|
+
## Contribute
|
|
78
|
+
|
|
79
|
+
Feel free to join in. All welcome. Open an [issue](https://github.com/ipfs/js-ipfs-unixfs-importer/issues)!
|
|
80
|
+
|
|
81
|
+
This repository falls under the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md).
|
|
82
|
+
|
|
83
|
+
[](https://github.com/ipfs/community/blob/master/CONTRIBUTING.md)
|
package/dist/src/index.d.ts
CHANGED
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAgSA,UAAU,KAAK;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAsB,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,iBAsC3D"}
|
package/dist/src/index.js
CHANGED
|
@@ -2,8 +2,9 @@ import { main as pbjs } from 'protobufjs/cli/pbjs.js';
|
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import { promisify } from 'util';
|
|
4
4
|
import fs from 'fs/promises';
|
|
5
|
-
function pathWithExtension(input, extension) {
|
|
6
|
-
|
|
5
|
+
function pathWithExtension(input, extension, outputDir) {
|
|
6
|
+
const output = outputDir ?? path.dirname(input);
|
|
7
|
+
return path.join(output, path.basename(input).split('.').slice(0, -1).join('.') + extension);
|
|
7
8
|
}
|
|
8
9
|
const types = {
|
|
9
10
|
double: 'number',
|
|
@@ -87,14 +88,20 @@ function compileMessage(messageDef, moduleDef) {
|
|
|
87
88
|
moduleDef.imports.add('enumeration');
|
|
88
89
|
return `
|
|
89
90
|
export enum ${messageDef.name} {
|
|
90
|
-
${Object.keys(messageDef.values).map(
|
|
91
|
-
return `${
|
|
91
|
+
${Object.keys(messageDef.values).map(name => {
|
|
92
|
+
return `${name} = '${name}'`;
|
|
93
|
+
}).join(',\n ').trim()}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
enum __${messageDef.name}Values {
|
|
97
|
+
${Object.entries(messageDef.values).map(([name, value]) => {
|
|
98
|
+
return `${name} = ${value}`;
|
|
92
99
|
}).join(',\n ').trim()}
|
|
93
100
|
}
|
|
94
101
|
|
|
95
102
|
export namespace ${messageDef.name} {
|
|
96
103
|
export const codec = () => {
|
|
97
|
-
return enumeration<typeof ${messageDef.name}>(${messageDef.name})
|
|
104
|
+
return enumeration<typeof ${messageDef.name}>(__${messageDef.name}Values)
|
|
98
105
|
}
|
|
99
106
|
}`.trim();
|
|
100
107
|
}
|
|
@@ -151,11 +158,11 @@ export interface ${messageDef.name} {
|
|
|
151
158
|
})
|
|
152
159
|
}
|
|
153
160
|
|
|
154
|
-
export const encode = (obj: ${messageDef.name}):
|
|
161
|
+
export const encode = (obj: ${messageDef.name}): Uint8ArrayList => {
|
|
155
162
|
return encodeMessage(obj, ${messageDef.name}.codec())
|
|
156
163
|
}
|
|
157
164
|
|
|
158
|
-
export const decode = (buf: Uint8Array): ${messageDef.name} => {
|
|
165
|
+
export const decode = (buf: Uint8Array | Uint8ArrayList): ${messageDef.name} => {
|
|
159
166
|
return decodeMessage(buf, ${messageDef.name}.codec())
|
|
160
167
|
}`;
|
|
161
168
|
}
|
|
@@ -219,12 +226,15 @@ export async function generate(source, flags) {
|
|
|
219
226
|
if (moduleDef.importedTypes.size > 0) {
|
|
220
227
|
lines.push(`import type { ${Array.from(moduleDef.importedTypes).join(', ')} } from 'protons-runtime'`);
|
|
221
228
|
}
|
|
229
|
+
if (moduleDef.imports.has('encodeMessage')) {
|
|
230
|
+
lines.push("import type { Uint8ArrayList } from 'uint8arraylist'");
|
|
231
|
+
}
|
|
222
232
|
lines = [
|
|
223
233
|
...lines,
|
|
224
234
|
'',
|
|
225
235
|
...moduleDef.compiled
|
|
226
236
|
];
|
|
227
237
|
const content = lines.join('\n').trim();
|
|
228
|
-
await fs.writeFile(pathWithExtension(source, '.ts'), content + '\n');
|
|
238
|
+
await fs.writeFile(pathWithExtension(source, '.ts', flags.output), content + '\n');
|
|
229
239
|
}
|
|
230
240
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAChC,OAAO,EAAE,MAAM,aAAa,CAAA;AAE5B,SAAS,iBAAiB,CAAE,KAAa,EAAE,SAAiB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "protons",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "Protobuf to ts transpiler",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/ipfs/protons/tree/master/packages/protons#readme",
|
|
@@ -44,12 +44,12 @@
|
|
|
44
44
|
],
|
|
45
45
|
"exports": {
|
|
46
46
|
".": {
|
|
47
|
-
"
|
|
48
|
-
"
|
|
47
|
+
"types": "./dist/src/index.d.ts",
|
|
48
|
+
"import": "./dist/src/index.js"
|
|
49
49
|
},
|
|
50
50
|
"./status": {
|
|
51
|
-
"
|
|
52
|
-
"
|
|
51
|
+
"types": "./dist/src/status.d.ts",
|
|
52
|
+
"import": "./dist/src/status.js"
|
|
53
53
|
}
|
|
54
54
|
},
|
|
55
55
|
"eslintConfig": {
|
|
@@ -85,15 +85,15 @@
|
|
|
85
85
|
"release": "patch"
|
|
86
86
|
},
|
|
87
87
|
{
|
|
88
|
-
"type": "
|
|
88
|
+
"type": "docs",
|
|
89
89
|
"release": "patch"
|
|
90
90
|
},
|
|
91
91
|
{
|
|
92
|
-
"type": "
|
|
92
|
+
"type": "test",
|
|
93
93
|
"release": "patch"
|
|
94
94
|
},
|
|
95
95
|
{
|
|
96
|
-
"type": "
|
|
96
|
+
"type": "deps",
|
|
97
97
|
"release": "patch"
|
|
98
98
|
},
|
|
99
99
|
{
|
|
@@ -123,7 +123,11 @@
|
|
|
123
123
|
},
|
|
124
124
|
{
|
|
125
125
|
"type": "docs",
|
|
126
|
-
"section": "
|
|
126
|
+
"section": "Documentation"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"type": "deps",
|
|
130
|
+
"section": "Dependencies"
|
|
127
131
|
},
|
|
128
132
|
{
|
|
129
133
|
"type": "test",
|
|
@@ -154,6 +158,7 @@
|
|
|
154
158
|
"devDependencies": {
|
|
155
159
|
"aegir": "^37.0.5",
|
|
156
160
|
"pbjs": "^0.0.14",
|
|
157
|
-
"protons-runtime": "^
|
|
161
|
+
"protons-runtime": "^2.0.0",
|
|
162
|
+
"uint8arraylist": "^2.0.0"
|
|
158
163
|
}
|
|
159
164
|
}
|
package/src/index.ts
CHANGED
|
@@ -3,8 +3,9 @@ import path from 'path'
|
|
|
3
3
|
import { promisify } from 'util'
|
|
4
4
|
import fs from 'fs/promises'
|
|
5
5
|
|
|
6
|
-
function pathWithExtension (input: string, extension: string) {
|
|
7
|
-
|
|
6
|
+
function pathWithExtension (input: string, extension: string, outputDir?: string) {
|
|
7
|
+
const output = outputDir ?? path.dirname(input)
|
|
8
|
+
return path.join(output, path.basename(input).split('.').slice(0, -1).join('.') + extension)
|
|
8
9
|
}
|
|
9
10
|
|
|
10
11
|
const types: Record<string, string> = {
|
|
@@ -131,15 +132,23 @@ function compileMessage (messageDef: MessageDef, moduleDef: ModuleDef): string {
|
|
|
131
132
|
return `
|
|
132
133
|
export enum ${messageDef.name} {
|
|
133
134
|
${
|
|
134
|
-
Object.keys(messageDef.values).map(
|
|
135
|
-
return `${
|
|
135
|
+
Object.keys(messageDef.values).map(name => {
|
|
136
|
+
return `${name} = '${name}'`
|
|
137
|
+
}).join(',\n ').trim()
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
enum __${messageDef.name}Values {
|
|
142
|
+
${
|
|
143
|
+
Object.entries(messageDef.values).map(([name, value]) => {
|
|
144
|
+
return `${name} = ${value}`
|
|
136
145
|
}).join(',\n ').trim()
|
|
137
146
|
}
|
|
138
147
|
}
|
|
139
148
|
|
|
140
149
|
export namespace ${messageDef.name} {
|
|
141
150
|
export const codec = () => {
|
|
142
|
-
return enumeration<typeof ${messageDef.name}>(${messageDef.name})
|
|
151
|
+
return enumeration<typeof ${messageDef.name}>(__${messageDef.name}Values)
|
|
143
152
|
}
|
|
144
153
|
}`.trim()
|
|
145
154
|
}
|
|
@@ -207,11 +216,11 @@ export interface ${messageDef.name} {
|
|
|
207
216
|
})
|
|
208
217
|
}
|
|
209
218
|
|
|
210
|
-
export const encode = (obj: ${messageDef.name}):
|
|
219
|
+
export const encode = (obj: ${messageDef.name}): Uint8ArrayList => {
|
|
211
220
|
return encodeMessage(obj, ${messageDef.name}.codec())
|
|
212
221
|
}
|
|
213
222
|
|
|
214
|
-
export const decode = (buf: Uint8Array): ${messageDef.name} => {
|
|
223
|
+
export const decode = (buf: Uint8Array | Uint8ArrayList): ${messageDef.name} => {
|
|
215
224
|
return decodeMessage(buf, ${messageDef.name}.codec())
|
|
216
225
|
}`
|
|
217
226
|
}
|
|
@@ -277,7 +286,11 @@ function defineModule (def: ClassDef): ModuleDef {
|
|
|
277
286
|
return moduleDef
|
|
278
287
|
}
|
|
279
288
|
|
|
280
|
-
|
|
289
|
+
interface Flags {
|
|
290
|
+
output?: string
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
export async function generate (source: string, flags: Flags) {
|
|
281
294
|
// convert .protobuf to .json
|
|
282
295
|
const json = await promisify(pbjs)(['-t', 'json', source])
|
|
283
296
|
|
|
@@ -302,6 +315,10 @@ export async function generate (source: string, flags: any) {
|
|
|
302
315
|
lines.push(`import type { ${Array.from(moduleDef.importedTypes).join(', ')} } from 'protons-runtime'`)
|
|
303
316
|
}
|
|
304
317
|
|
|
318
|
+
if (moduleDef.imports.has('encodeMessage')) {
|
|
319
|
+
lines.push("import type { Uint8ArrayList } from 'uint8arraylist'")
|
|
320
|
+
}
|
|
321
|
+
|
|
305
322
|
lines = [
|
|
306
323
|
...lines,
|
|
307
324
|
'',
|
|
@@ -310,5 +327,5 @@ export async function generate (source: string, flags: any) {
|
|
|
310
327
|
|
|
311
328
|
const content = lines.join('\n').trim()
|
|
312
329
|
|
|
313
|
-
await fs.writeFile(pathWithExtension(source, '.ts'), content + '\n')
|
|
330
|
+
await fs.writeFile(pathWithExtension(source, '.ts', flags.output), content + '\n')
|
|
314
331
|
}
|