[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/javascriptit/Zilliqa-JavaScript-Library/v1.0.0/scripts/schema.ts [Back]  [Original]

//  Copyright (C) 2018 Zilliqa
//
//  This file is part of Zilliqa-Javascript-Library.
//
//  This program is free software: you can redistribute it and/or modify
//  it under the terms of the GNU General Public License as published by
//  the Free Software Foundation, either version 3 of the License, or
//  (at your option) any later version.
//
//  This program is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  GNU General Public License for more details.
//
//  You should have received a copy of the GNU General Public License
//  along with this program.  If not, see .

import * as fs from 'fs';
import * as path from 'path';
import * as tjs from 'typescript-json-schema';

import project from './project';
import tsConfig from '../tsconfig.base.json';

const outputs = process.argv.slice(2)[0].split(',');

async function generateSchemas() {
  project.packages
    // @ts-ignore
    .filter((pkg) => {
      return (
        pkg.name !== 'zilliqa-js' &&
        outputs.indexOf(pkg.name.replace('zilliqa-js-', '')) !== -1
      );
    })
    .forEach((pkg) => {
      const settings = {
        ref: false,
      };

      const tsConfig: tjs.CompilerOptions = {
        lib: ['es2015'],
      };

      const prog = tjs.getProgramFromFiles(
        [path.resolve(path.join(pkg.src, 'types.ts'))],
        tsConfig,
      );

      const schema = tjs.generateSchema(prog, '*', settings);

      fs.writeFileSync(
        path.join(pkg.path, 'test', 'schema.json'),
        JSON.stringify(schema, undefined, 2),
      );
    });
}

generateSchemas();

Web Proxy Viewer  |  New URL  |  Original Page