當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript json-utils.insertPropertyInAstObjectInOrder函數代碼示例

本文整理匯總了TypeScript中@schematics/angular/utility/json-utils.insertPropertyInAstObjectInOrder函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript insertPropertyInAstObjectInOrder函數的具體用法?TypeScript insertPropertyInAstObjectInOrder怎麽用?TypeScript insertPropertyInAstObjectInOrder使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


在下文中一共展示了insertPropertyInAstObjectInOrder函數的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: return

 return (host: Tree, context: SchematicContext) => {
   if (!host.exists('angular-metadata.tsconfig.json')) {
     return;
   }
   const packageJson = 'package.json';
   if (!host.exists(packageJson)) {
     throw new Error(`Could not find ${packageJson}`);
   }
   const content = host.read(packageJson);
   if (!content) {
     throw new Error('Failed to read package.json content');
   }
   const jsonAst = parseJsonAst(content.toString());
   if (!isJsonAstObject(jsonAst)) {
     throw new Error(`Failed to parse JSON for ${packageJson}`);
   }
   const scripts = findPropertyInAstObject(jsonAst, 'scripts') as JsonAstObject;
   const recorder = host.beginUpdate(packageJson);
   if (scripts) {
     insertPropertyInAstObjectInOrder(
         recorder, scripts, 'postinstall', 'ngc -p ./angular-metadata.tsconfig.json', 4);
   } else {
     insertPropertyInAstObjectInOrder(
         recorder, jsonAst, 'scripts', {
           postinstall: 'ngc -p ./angular-metadata.tsconfig.json',
         },
         2);
   }
   host.commitUpdate(recorder);
   return host;
 };
開發者ID:alxhub,項目名稱:angular,代碼行數:31,代碼來源:index.ts

示例2: return

  return (host: Tree) => {
    const packageJson = `${options.name}/package.json`;

    if (!host.exists(packageJson)) {
      throw new Error(`Could not find ${packageJson}`);
    }
    const packageJsonContent = host.read(packageJson);
    if (!packageJsonContent) {
      throw new Error('Failed to read package.json content');
    }
    const jsonAst = parseJsonAst(packageJsonContent.toString()) as JsonAstObject;
    const deps = findPropertyInAstObject(jsonAst, 'dependencies') as JsonAstObject;
    const devDeps = findPropertyInAstObject(jsonAst, 'devDependencies') as JsonAstObject;

    const angularCoreNode = findPropertyInAstObject(deps, '@angular/core');
    const angularCoreVersion = angularCoreNode !.value as string;

    const devDependencies: {[k: string]: string} = {
      '@angular/bazel': angularCoreVersion,
      // TODO(kyliau): Consider moving this to latest-versions.ts
      '@bazel/karma': '^0.22.0',
      '@bazel/typescript': '^0.22.0',
    };

    const recorder = host.beginUpdate(packageJson);
    for (const packageName of Object.keys(devDependencies)) {
      const version = devDependencies[packageName];
      const indent = 4;
      insertPropertyInAstObjectInOrder(recorder, devDeps, packageName, version, indent);
    }
    host.commitUpdate(recorder);
    return host;
  };
開發者ID:cyrilletuzi,項目名稱:angular,代碼行數:33,代碼來源:index.ts

示例3: return

  return (host: Tree) => {
    const packageJson = 'package.json';
    if (!host.exists(packageJson)) {
      throw new Error(`Could not find ${packageJson}`);
    }
    const packageJsonContent = host.read(packageJson);
    if (!packageJsonContent) {
      throw new Error('Failed to read package.json content');
    }
    const jsonAst = parseJsonAst(packageJsonContent.toString()) as JsonAstObject;
    const deps = findPropertyInAstObject(jsonAst, 'dependencies') as JsonAstObject;
    const devDeps = findPropertyInAstObject(jsonAst, 'devDependencies') as JsonAstObject;

    const angularCoreNode = findPropertyInAstObject(deps, '@angular/core');
    if (!angularCoreNode) {
      throw new Error('@angular/core dependency not found in package.json');
    }
    const angularCoreVersion = angularCoreNode.value as string;

    const devDependencies: {[k: string]: string} = {
      '@angular/bazel': angularCoreVersion,
      '@bazel/bazel': '^0.24.0',
      '@bazel/ibazel': '^0.10.1',
      '@bazel/karma': '0.27.12',
      '@bazel/typescript': '0.27.12',
    };

    const recorder = host.beginUpdate(packageJson);
    for (const packageName of Object.keys(devDependencies)) {
      const existingDep = findPropertyInAstObject(deps, packageName);
      if (existingDep) {
        const content = packageJsonContent.toString();
        removeKeyValueInAstObject(recorder, content, deps, packageName);
      }
      const version = devDependencies[packageName];
      const indent = 4;
      if (findPropertyInAstObject(devDeps, packageName)) {
        replacePropertyInAstObject(recorder, devDeps, packageName, version, indent);
      } else {
        insertPropertyInAstObjectInOrder(recorder, devDeps, packageName, version, indent);
      }
    }
    host.commitUpdate(recorder);
    return host;
  };
開發者ID:marclaval,項目名稱:angular,代碼行數:45,代碼來源:index.ts


注:本文中的@schematics/angular/utility/json-utils.insertPropertyInAstObjectInOrder函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。