whole_func_string: function generatePackageJson() {
    const mainFile = path.resolve(__dirname, '../package.json');
    const libTemplateFile = path.resolve(__dirname, '../src/ng5-slider/package.json.template');
    const libFile = path.resolve(__dirname, '../src/ng5-slider/package.json');
  
    const libTemplateConfig = JSON.parse(fs.readFileSync(libTemplateFile, { encoding: 'utf8' }));
    const mainConfig = JSON.parse(fs.readFileSync(mainFile, { encoding: 'utf8' }));
  
    let libConfig = {};
  
    for (let key of libTemplateConfig.keysToCopyFromMainPackageJson) {
        libConfig[key] = mainConfig[key];
    }
    libConfig.dependencies = {};
    for (let dependency of libTemplateConfig.dependenciesToCopyFromMainPackageJson) {
      libConfig.dependencies[dependency] = mainConfig.dependencies[dependency];
    }
    libConfig.peerDependencies = {};
    for (let dependency of libTemplateConfig.dependenciesToCopyAsPeerDependenciesFromMainPackageJson) {
      libConfig.peerDependencies[dependency] = mainConfig.dependencies[dependency];
    }
  
    libConfig = Object.assign({}, libConfig, libTemplateConfig, libConfig);
    delete libConfig.keysToCopyFromMainPackageJson;
    delete libConfig.dependenciesToCopyFromMainPackageJson;
    delete libConfig.dependenciesToCopyAsPeerDependenciesFromMainPackageJson;
  
    for (let dependency of libTemplateConfig.dependenciesToCopyFromMainPackageJson) {
      libConfig.ngPackage.whitelistedNonPeerDependencies.push(dependency);
    }
  
    const prettyPrintedLibConfig = JSON.stringify(libConfig, null, 2);
  
    fs.writeFileSync(libFile, prettyPrintedLibConfig, { encoding: 'utf8' });
  }
func_code_string: function generatePackageJson() {
    const mainFile = path.resolve(__dirname, '../package.json');
    const libTemplateFile = path.resolve(__dirname, '../src/ng5-slider/package.json.template');
    const libFile = path.resolve(__dirname, '../src/ng5-slider/package.json');
  
    const libTemplateConfig = JSON.parse(fs.readFileSync(libTemplateFile, { encoding: 'utf8' }));
    const mainConfig = JSON.parse(fs.readFileSync(mainFile, { encoding: 'utf8' }));
  
    let libConfig = {};
  
    for (let key of libTemplateConfig.keysToCopyFromMainPackageJson) {
        libConfig[key] = mainConfig[key];
    }
    libConfig.dependencies = {};
    for (let dependency of libTemplateConfig.dependenciesToCopyFromMainPackageJson) {
      libConfig.dependencies[dependency] = mainConfig.dependencies[dependency];
    }
    libConfig.peerDependencies = {};
    for (let dependency of libTemplateConfig.dependenciesToCopyAsPeerDependenciesFromMainPackageJson) {
      libConfig.peerDependencies[dependency] = mainConfig.dependencies[dependency];
    }
  
    libConfig = Object.assign({}, libConfig, libTemplateConfig, libConfig);
    delete libConfig.keysToCopyFromMainPackageJson;
    delete libConfig.dependenciesToCopyFromMainPackageJson;
    delete libConfig.dependenciesToCopyAsPeerDependenciesFromMainPackageJson;
  
    for (let dependency of libTemplateConfig.dependenciesToCopyFromMainPackageJson) {
      libConfig.ngPackage.whitelistedNonPeerDependencies.push(dependency);
    }
  
    const prettyPrintedLibConfig = JSON.stringify(libConfig, null, 2);
  
    fs.writeFileSync(libFile, prettyPrintedLibConfig, { encoding: 'utf8' });
  }
func_documentation_string: Generate package.json file based on package.json.template and main package.json