load()

in src/loaders/SpecFileLoader.js [18:58]


  load(version, sdk_version) {
    const APISpecDir = path.resolve(__dirname, '..', '..', 'api_specs');
    const overriddenAPISpecName = 'SDKCodegen';
    const overriddenAPISpecs = Utils.loadJSONFile(
      path.join(APISpecDir, overriddenAPISpecName + '.json'),
    );

    // Compute version features
    const versionedFeatures = {};
    const versionedFeaturesWithDepreciation = {};
    const codeGenFileDepreciationSign = CommonUtils.codeGenFileDepreciationSign;
    for (const currentVersion in codeGenVersions) {
      if (Utils.versionCompare(currentVersion, version) <= 0) {
        if (codeGenVersions[currentVersion]) {
          const currentVersions = codeGenVersions[currentVersion];
          currentVersions.forEach(feature => {
            const hasFeatureName = 'has_' + feature;
            versionedFeatures[hasFeatureName] = true;
            versionedFeaturesWithDepreciation[hasFeatureName] = {
              '@remove_file': codeGenFileDepreciationSign,
            };
          });
        }
      }
    }

    // Load API specs
    const loadedAPISpecs = Utils.loadSpecsFromFile(APISpecDir);

    // merge versioned overridden API specs
    return {
      specs: loadedAPISpecs,
      metadata: {
        version: version,
        sdk_version: sdk_version,
        mergedOverriding: overriddenAPISpecs,
        versionedFeatures: versionedFeatures,
        versionedFeaturesWithDepreciation: versionedFeaturesWithDepreciation,
      },
    };
  },