How to use json-schema-to-typescript - 10 common examples

To help you get started, we’ve selected a few json-schema-to-typescript examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github interledgerjs / rafiki / scripts / build_schema_types.js View on Github external
;(async function () {
  for (let schema of schemas) {
    // Have to pass an empty options object, otherwise we trigger a bug where
    // the cwd for the JSON schema $ref resolver defaults to the current
    // working directory instead of the file's directory.
    let ts = await compileFromFile(resolve(__dirname, '../src/schemas/', schema), {})

    if (schema === 'Config.json') {
      ts = ts
        // This is the only way to let Config inherit from the interface without
        // redefining all the fields.
        .replace('export interface Config', 'export class Config')
        // Ignore the error stating that `accounts` isn't assigned in the
        // constructor.
        .replace('accounts: {', 'accounts!: {')
    }

    fs.writeFileSync(resolve(__dirname, '../src/schemas/', schema.split('.')[0] + 'Typing.ts'), ts)
  }
})()
  .catch(err => console.error(err))
github sourcegraph / sourcegraph / shared / gulpfile.js View on Github external
['json-schema-draft-07', 'settings', 'site'].map(async file => {
      let schema = await readFile(path.join(schemaDir, `${file}.schema.json`), 'utf8')
      // HACK: Rewrite absolute $refs to be relative. They need to be absolute for Monaco to resolve them
      // when the schema is in a oneOf (to be merged with extension schemas).
      schema = schema.replace(
        /https:\/\/sourcegraph\.com\/v1\/settings\.schema\.json#\/definitions\//g,
        '#/definitions/'
      )

      const types = await compileJSONSchema(JSON.parse(schema), 'settings.schema', {
        cwd: schemaDir,
        $refOptions: {
          resolve: /** @type {import('json-schema-ref-parser').Options['resolve']} */ ({
            draftV7resolver,
            // there should be no reason to make network calls during this process,
            // and if there are we've broken env for offline devs/increased dev startup time
            http: false,
          }),
        },
      })
      await writeFile(path.join(outputDir, `${file}.schema.d.ts`), types)
    })
  )
github research-software-directory / research-software-directory / scripts / ibuilder / index.js View on Github external
const processTSResult = async (resource, schema) => {
    const tsCode = await converter.compile(schema, resource.name.capitalize());
    const output = tsLintDisable +
        tsCode.replace(regexpExport, `\nexport interface I${resource.name.capitalize()} {\n`);

    await fs.writeFile(path.join(outputPath, 'resources', `${resource.name}.ts` ), output);

    console.log(`wrote interface ${resource.name}.ts`);

    for (let str of ['import', 'export']) {
        resourceInterface += `${str} {I${resource.name.capitalize()}} from './resources/${resource.name}';\n`;
    }
}
github tom-grey / fpl-api-graphql / tasks / prebuild / prebuild.ts View on Github external
}
  const fixturePath = `${fixturesDir}/${name}.data.json`;
  jsosnfile.writeFileSync(fixturePath, humps.camelizeKeys(data));
  console.log(chalk.green(`[task:prepbuild] writing fixture ${fixturePath}`));

  const schemaPath = `${schemaDir}/${name}.schema.json`;
  const schema = schemify(humps.camelizeKeys(data));
  jsosnfile.writeFileSync(schemaPath, schema, {
    spaces: 2,
  });
  console.log(
    chalk.green(`[task:prepbuild] writing json schema ${schemaPath}`),
  );

  const interfacesPath = `./src/interfaces/${name}.interface.ts`;
  const interfaces = await compileFromFile(
    `${buildRoot}/json-schemas/${name}.schema.json`,
  );
  fs.writeFileSync(interfacesPath, interfaces);
  console.log(
    chalk.green(`[task:prepbuild] writing interface ${interfacesPath}`),
  );
}
github prescottprue / fireadmin / packages / core / scripts / schemaToTypescript.ts View on Github external
fs.readdirSync('./src/schemas').forEach(file => {
  console.log(file);
  const { name: fileName } = parse(file)
  const resultPath = `${process.cwd()}/src/types/${fileName}.ts`
  if (fs.existsSync(resultPath)) {
    console.log(`${resultPath} already exists, skipping`)
    return null
  }
  compileFromFile(`${process.cwd()}/src/schemas/${file}`, { bannerComment: `/**\n\t* Value representing a ${fileName}.\n\t*/` })
  .then(ts => fs.writeFileSync(resultPath, ts))
});
github BjoernKW / spring-data-rest-json-schema-to-typescript-definitions / src / index.ts View on Github external
async function generateClassFromJSON(property: string) {
  writeFileSync(`${outputPath}/${property}.d.ts`, await compileFromFile(`${outputPath}/${property}.json`, {
    style: {
      singleQuote: true
    }
  }));

  console.log(`Type definition for '${property}' has been saved to: ${outputPath}/${property}.d.ts`);
}
github BjoernKW / spring-data-rest-json-schema-to-typescript-definitions / dist / index.js View on Github external
return __generator(this, function (_c) {
            switch (_c.label) {
                case 0:
                    _a = fs_1.writeFileSync;
                    _b = [outputPath + "/" + property + ".d.ts"];
                    return [4 /*yield*/, json_schema_to_typescript_1.compileFromFile(outputPath + "/" + property + ".json", {
                            style: {
                                singleQuote: true
                            }
                        })];
                case 1:
                    _a.apply(void 0, _b.concat([_c.sent()]));
                    console.log("Type definition for '" + property + "' has been saved to: " + outputPath + "/" + property + ".d.ts");
                    return [2 /*return*/];
            }
        });
    });
github ritz078 / transform / pages / json-schema-to-typescript.tsx View on Github external
const transformer = useCallback(async ({ value }) => {
    return compile(JSON.parse(value), "MySchema", {
      bannerComment: ""
    });
  }, []);
github huridocs / uwazi / emitSchemaTypes.js View on Github external
Object.entries(schemas).map(([name, schema]) => {
        if (!name.match(/Schema$/)) {
          return '';
        }
        return compile(schema, schema.title || firstUp(name), opts);
      })
    );

json-schema-to-typescript

compile json schema to typescript typings

MIT
Latest version published 15 days ago

Package Health Score

88 / 100
Full package analysis