浏览代码

Update notebook/notebook/nbformat.

Afshin Darian 8 年之前
父节点
当前提交
a9f3310369
共有 2 个文件被更改,包括 3 次插入183 次删除
  1. 0 182
      src/notebook/common/json.ts
  2. 3 1
      src/notebook/notebook/nbformat.ts

+ 0 - 182
src/notebook/common/json.ts

@@ -1,182 +0,0 @@
-// Copyright (c) Jupyter Development Team.
-// Distributed under the terms of the Modified BSD License.
-
-/**
- * A type alias for a JSON primitive.
- */
-export
-type JSONPrimitive = boolean | number | string;
-
-
-/**
- * A type alias for a JSON value.
- */
-export
-type JSONValue = JSONPrimitive | JSONObject | JSONArray;
-
-
-/**
- * A type definition for a JSON object.
- */
-export
-interface JSONObject { [key: string]: JSONValue; }
-
-
-/**
- * A type definition for a JSON array.
- */
-export
-interface JSONArray extends Array<JSONValue> { }
-
-
-/**
- * Test whether a JSON value is a primitive.
- *
- * @param value - The JSON value of interest.
- *
- * @returns `true` if the value is a primitive or `null`,
- *   `false` otherwise.
- */
-export
-function isPrimitive(value: JSONValue): value is JSONPrimitive {
-  return (
-    value === null ||
-    typeof value === 'boolean' ||
-    typeof value === 'number' ||
-    typeof value === 'string'
-  );
-}
-
-
-/**
- * Test whether a JSON value is an array.
- *
- * @param value - The JSON value of interest.
- *
- * @returns `true` if the value is a an array, `false` otherwise.
- */
-export
-function isArray(value: JSONValue): value is JSONArray {
-  return Array.isArray(value);
-}
-
-
-/**
- * Test whether a JSON value is an object.
- *
- * @param value - The JSON value of interest.
- *
- * @returns `true` if the value is a an object, `false` otherwise.
- */
-export
-function isObject(value: JSONValue): value is JSONObject {
-  return !isPrimitive(value) && !isArray(value);
-}
-
-
-/**
- * Compare two JSON values for deep equality.
- *
- * @param first - The first JSON value of interest.
- *
- * @param second - The second JSON value of interest.
- *
- * @returns `true` if the values are equivalent, `false` otherwise.
- */
-export
-function deepEqual(first: JSONValue, second: JSONValue): boolean {
-  // Check referential and primitive equality first.
-  if (first === second) {
-    return true;
-  }
-
-  // If one is a primitive, the `===` check ruled out the other.
-  if (isPrimitive(first) || isPrimitive(second)) {
-    return false;
-  }
-
-  // Bail if either is `undefined`.
-  if (!first || !second) {
-    return false;
-  }
-
-  // Test whether they are arrays.
-  let a1 = isArray(first);
-  let a2 = isArray(second);
-
-  // Bail if the types are different.
-  if (a1 !== a2) {
-    return false;
-  }
-
-  // If they are both arrays, compare them.
-  if (a1 && a2) {
-    return Private.arrayEqual(first as JSONArray, second as JSONArray);
-  }
-
-  // At this point, they must both be objects.
-  return Private.objectEqual(first as JSONObject, second as JSONObject);
-}
-
-
-/**
- * The namespace for the private module data.
- */
-namespace Private {
-  /**
-   * Compare two JSON arrays for deep equality.
-   */
-  export
-  function arrayEqual(first: JSONArray, second: JSONArray): boolean {
-    // Test the arrays for equal length.
-    if (first.length !== second.length) {
-      return false;
-    }
-
-    // Compare the values for equality.
-    for (let i = 0, n = first.length; i < n; ++i) {
-      if (!deepEqual(first[i], second[i])) {
-        return false;
-      }
-    }
-
-    // At this point, the arrays are equal.
-    return true;
-  }
-
-  /**
-   * Compare two JSON objects for deep equality.
-   */
-  export
-  function objectEqual(first: JSONObject, second: JSONObject): boolean {
-    // Get the keys for each object.
-    let k1 = Object.keys(first);
-    let k2 = Object.keys(second);
-
-    // Test the keys for equal length.
-    if (k1.length !== k2.length) {
-      return false;
-    }
-
-    // Sort the keys for equivalent order.
-    k1.sort();
-    k2.sort();
-
-    // Compare the keys for equality.
-    for (let i = 0, n = k1.length; i < n; ++i) {
-      if (k1[i] !== k2[i]) {
-        return false;
-      }
-    }
-
-    // Compare the values for equality.
-    for (let i = 0, n = k1.length; i < n; ++i) {
-      if (!deepEqual(first[k1[i]], second[k1[i]])) {
-        return false;
-      }
-    }
-
-    // At this point, the objects are equal.
-    return true;
-  }
-}

+ 3 - 1
src/notebook/notebook/nbformat.ts

@@ -7,7 +7,7 @@
 
 import {
   JSONObject
-} from '../common/json';
+} from 'phosphor/lib/algorithm/json';
 
 
 /**
@@ -82,6 +82,7 @@ namespace nbformat {
   type multilineString = string | string[];
 
 
+  /* tslint:disable */
   /**
    * A mime-type keyed dictionary of data.
    */
@@ -90,6 +91,7 @@ namespace nbformat {
     [key: string]: multilineString;
     'application/json'?: any;
   }
+  /* tslint:enable */
 
 
   /**