PHP 7.4.33
Preview: generate-provider-cli.js Size: 2.10 KB
/var/www/uibuilder.cmshelp.dk/httpdocs/node_modules/react-native/scripts/generate-provider-cli.js
/**
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 * @format
 */

'use strict';

const utils = require('./codegen/codegen-utils');
const fs = require('fs');
const yargs = require('yargs');

const argv = yargs
  .option('p', {
    alias: 'platform',
    describe: 'Platform to generate native code artifacts for.',
  })
  .option('s', {
    alias: 'schemaListPath',
    describe: 'The path to the schema list file.',
  })
  .option('o', {
    alias: 'outputDir',
    describe:
      'Path to directory where native code source files should be saved.',
  })
  .usage('Usage: $0 <args>')
  .demandOption(
    ['platform', 'schemaListPath', 'outputDir'],
    'Please provide platform, schema path, and output directory.',
  ).argv;

const GENERATORS = {
  android: [],
  ios: ['providerIOS'],
};

function generateProvider(platform, schemaListPath, outputDirectory) {
  const schemaListText = fs.readFileSync(schemaListPath, 'utf-8');

  if (schemaListText == null) {
    throw new Error(`Can't find schema list file at ${schemaListPath}`);
  }

  if (!outputDirectory) {
    throw new Error('outputDir is required');
  }
  fs.mkdirSync(outputDirectory, {recursive: true});

  let schemaPaths;
  try {
    schemaPaths = JSON.parse(schemaListText);
  } catch (err) {
    throw new Error(`Can't parse schema to JSON. ${schemaListPath}`);
  }

  const schemas = {};
  try {
    for (const libraryName of Object.keys(schemaPaths)) {
      const tmpSchemaText = fs.readFileSync(schemaPaths[libraryName], 'utf-8');
      schemas[libraryName] = JSON.parse(tmpSchemaText);
    }
  } catch (err) {
    throw new Error(`Failed to read schema file. ${err.message}`);
  }

  if (GENERATORS[platform] == null) {
    throw new Error(`Invalid platform type. ${platform}`);
  }

  utils.getCodegen().generateFromSchemas(
    {
      schemas,
      outputDirectory,
    },
    {
      generators: GENERATORS[platform],
    },
  );
}

function main() {
  generateProvider(argv.platform, argv.schemaListPath, argv.outputDir);
}

main();

Directory Contents

Dirs: 5 × Files: 12
Name Size Perms Modified Actions
cocoapods DIR
- drwxr-xr-x 2025-03-28 11:04:43
Edit Download
codegen DIR
- drwxr-xr-x 2025-03-28 11:04:43
Edit Download
hermes DIR
- drwxr-xr-x 2025-03-28 11:04:42
Edit Download
- drwxr-xr-x 2025-03-28 11:04:43
Edit Download
xcode DIR
- drwxr-xr-x 2025-03-28 11:04:43
Edit Download
1.80 KB lrw-r--r-- 2025-03-28 11:04:42
Edit Download
1.73 KB lrwxr-xr-x 2025-03-28 11:04:42
Edit Download
2.92 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
1.00 KB lrw-r--r-- 2025-03-28 11:04:42
Edit Download
2.10 KB lrw-r--r-- 2025-03-28 11:04:42
Edit Download
1.38 KB lrw-r--r-- 2025-03-28 11:04:42
Edit Download
2.66 KB lrwxr-xr-x 2025-03-28 11:04:43
Edit Download
725 B lrw-r--r-- 2025-03-28 11:04:43
Edit Download
710 B lrw-r--r-- 2025-03-28 11:04:42
Edit Download
751 B lrwxr-xr-x 2025-03-28 11:04:43
Edit Download
5.63 KB lrwxr-xr-x 2025-03-28 11:04:43
Edit Download
19.62 KB lrw-r--r-- 2025-03-28 11:04:43
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).