diff --git a/implementations/javascript/packages/schema/bin/preserves-schema-ts.js b/implementations/javascript/packages/schema/bin/preserves-schema-ts.js index 34b1f07..557ba22 100755 --- a/implementations/javascript/packages/schema/bin/preserves-schema-ts.js +++ b/implementations/javascript/packages/schema/bin/preserves-schema-ts.js @@ -1,3 +1,2 @@ #!/usr/bin/env node require('../dist/bin/preserves-schema-ts.js').main(process.argv.slice(2)); - diff --git a/implementations/javascript/packages/schema/bin/preserves-schemac.js b/implementations/javascript/packages/schema/bin/preserves-schemac.js new file mode 100755 index 0000000..7cb0734 --- /dev/null +++ b/implementations/javascript/packages/schema/bin/preserves-schemac.js @@ -0,0 +1,2 @@ +#!/usr/bin/env node +require('../dist/bin/preserves-schemac.js').main(process.argv.slice(2)); diff --git a/implementations/javascript/packages/schema/package.json b/implementations/javascript/packages/schema/package.json index 0a762ee..0de3554 100644 --- a/implementations/javascript/packages/schema/package.json +++ b/implementations/javascript/packages/schema/package.json @@ -23,7 +23,8 @@ "watch": "tsc -w" }, "bin": { - "preserves-schema-ts": "./bin/preserves-schema-ts.js" + "preserves-schema-ts": "./bin/preserves-schema-ts.js", + "preserves-schemac": "./bin/preserves-schemac.js" }, "dependencies": { "@preserves/core": "^0.10.0", diff --git a/implementations/javascript/packages/schema/rollup.config.js b/implementations/javascript/packages/schema/rollup.config.js index b970462..dbe29e5 100644 --- a/implementations/javascript/packages/schema/rollup.config.js +++ b/implementations/javascript/packages/schema/rollup.config.js @@ -25,29 +25,34 @@ function es6(insertion, extra) { }; } -export default [{ - input: 'lib/index.js', - output: [ - umd(''), - umd('.min', { plugins: [terser()] }), - es6(''), - es6('.min', { plugins: [terser()] }), - ], - external: ['@preserves/core'], -}, { - input: 'lib/bin/preserves-schema-ts.js', - output: [{ - file: 'dist/bin/preserves-schema-ts.js', - format: 'commonjs', - }], - external: [ - '@preserves/core', - 'chalk', - 'chokidar', - 'fs', - 'glob', - 'minimatch', - 'path', - 'yargs/yargs', - ], -}] +function cli(name) { + return { + input: `lib/bin/${name}.js`, + output: [{file: `dist/bin/${name}.js`, format: 'commonjs'}], + external: [ + '@preserves/core', + 'chalk', + 'chokidar', + 'fs', + 'glob', + 'minimatch', + 'path', + 'yargs/yargs', + ], + }; +} + +export default [ + { + input: 'lib/index.js', + output: [ + umd(''), + umd('.min', { plugins: [terser()] }), + es6(''), + es6('.min', { plugins: [terser()] }), + ], + external: ['@preserves/core'], + }, + cli('preserves-schema-ts'), + cli('preserves-schemac'), +]; diff --git a/implementations/javascript/packages/schema/src/bin/preserves-schemac.ts b/implementations/javascript/packages/schema/src/bin/preserves-schemac.ts new file mode 100644 index 0000000..e2279c8 --- /dev/null +++ b/implementations/javascript/packages/schema/src/bin/preserves-schemac.ts @@ -0,0 +1,12 @@ +import { canonicalEncode, underlying } from '@preserves/core'; +import fs from 'fs'; +import { readSchema } from '../reader'; + +export function run(): void { + const src = fs.readFileSync('/dev/stdin', 'utf-8'); + fs.writeFileSync('/dev/stdout', underlying(canonicalEncode(readSchema(src)))); +} + +export function main(_argv: Array) { + run(); +}