包详细信息

find-duplicated-property-keys

SebastianG77154.8kMIT1.2.9

A package for detecting all duplicated property keys of a JSON string.

JSON, duplicate, property, key

自述文件

find-duplicated-property-keys

npm version Build Status Coverage Status JavaScript Style Guide

A package for detecting all duplicated property keys of a JSON string. It can either be used as a standalone tool for validating JSON files or as a submodule for other Node.js projects.

Use as a Standlone Tool

If you like to use find-duplicated-property-keys as a standalone tool, you first have to install it by using the following command:

$ npm install find-duplicated-property-keys

To run this tool you simply need to execute it from the installation directory like this:

$ node_modules/.bin/find-duplicated-property-keys -s <path-to-json-file>

Of course, if you prefer a more comfortable way of running this tool, you can also install it globally by using this command:

$ npm install -g find-duplicated-property-keys

Then you can run find-duplicated-property-keys from any directory by using the following command:

$ find-duplicated-property-keys -s <path-to-json-file>

When running the tool from terminal, it will list all duplicated property keys followed by the number of their occurrence or return a notification to indicate the JSON file does not contain any duplicated property keys. In addition to that, find-duplicated-property-keys will then also return one of the following exit codes:

Exit Code Description
0 The passed JSON file has been analyzed succesfully and no duplicated property keys have been detected. Note, this exit code will also be returned, if the help text has been requested by either running find-duplicated-property-keys without any parameters or with the parameter --help or its alias -h solely.
1 An exception has been thrown by the tool and the validation process was unable to determine a result.
101 The passed JSON file has been analyzed succesfully and at least one duplicated property key has been detected.

Use as a Submodule

In case you need to include find-duplicated-property-keys into another project, you first have to add it to your Node.js application by executing the following command while being in the root directory of your project:

$ npm install find-duplicated-property-keys

To validate a JSON string you can run the module as described in the following example:

const findDuplicatedPropertyKeys = require('find-duplicated-property-keys');

const jsonString = '{"name": "Carl", "name": "Carla", "age": 29}';

const result = findDuplicatedPropertyKeys(jsonString);

console.log(result.toString()); // <instance>.name

The returned result will be an array that contains all duplicated property keys. Each of these property keys is represented by an object which has the following attributes:

Attribute Description
key The key name of the duplicated property.
parent The parent object of a property key.
occurrence The number of property keys having the same key and parent object.

Moreover, these objects also contain the following functions for illustrating the actual path to the property key:

Function Description
propertyPath() Returns a list of property keys, which represents the path to the property key of the current object.
toString() Prints the path to the property key. However, since all necessary raw data are also contained by the object, the result objects can also be represented in any other way if desired.

Note: When using find-duplicated-property-keys as a submodule, you always have to pass a JSON string instead of the file path to a JSON file.

更新日志

CHANGELOG

1.2.9

Bugfix

  • Downgrade version of dependency chalk to 4.1.2, since version 5.1.2 of chalk is incompatible with the current state of find-duplicated-property-keys.

1.2.8

Minor Changes

  • Update several dependencies.
  • Adjust .travis.yml to avoid building issues.

1.2.7

Minor Changes

  • Update several dependencies.

1.2.6

Minor Changes

  • Update several dependencies.

1.2.5

Documentation

  • Transform attribute and function lists in README.md into tables to improve readability.

Minor Changes

  • Add test case for testing untested line of code in function formatKey() of index.js.
  • Use package.json script "prepublishOnly" instead of "build:release" to ensure the code will always be built before publishing to npm.
  • Update several devDependencies.

1.2.4

Minor Changes

  • Slightly simplify functions in index.js by determining the last index of an array in a more comprehensible way.

1.2.3

Bugfix

  • Fix exception when analyzing a JSON file with an array containing an array followed by another value.

Minor Changes

  • Update dependency to jest.

1.2.2

Bugfix

  • Publish build to npm correctly.

1.2.1

Documentation

  • Describe returned exit code when requesting help text in README.md.
  • Add quotes around sample call of find-duplicated-property-keys again in README.md.

Minor Changes

  • Explicitly return exit code 0 when requesting help text from command line interface.

1.2.0

New Feature

  • Return a proper exit code when executing find-duplicated-property-keys from command line interface.

Documentation

  • Describe exit codes that can be returned when executing find-duplicated-property-keys from command line interface in README.md.
  • Add an additional property to the example in README.md to emphasize only duplicated property keys will be returned.
  • Adjust build badge due to migration from https://travis-ci.org/ to https://travis-ci.com/.

Minor Changes

  • Update several devDependencies.

1.1.2

Minor Changes

  • Simplify function formatKey() in index.js.
  • Update several devDependencies.

1.1.1

Minor Changes

  • Update several devDependencies.

1.1.0

New Feature

  • Display the occurrence for each duplicated key when running find-duplicated-property-keys via command line interface.

Documentation

  • Adjust README.md to new feature by explaining the meaning of the additionally printed values briefly.
  • Adjust command line interface help to new feature by explaining the meaning of the additionally printed values briefly.

Minor Changes

  • Update several dependencies.

1.0.14

Minor Changes

  • Set version of NodeJS in .travis.yml to latest LTS version to ensure all dependencies will be installed when building with Travis CI.

1.0.13

Minor Changes

  • Update several devDependencies.

1.0.12

Documentation

  • Add code highlighting in README.md.
  • Clarify description of function propertyPath() in README.md.
  • Fix typos in README.md.
  • Refactor example for calling function findDuplicatedPropertyKeys() programmatically in README.md.

Minor Changes

  • Fix function toString(), such that arrays will not be presented like objects anymore but as indices of objects.
  • Add additional test cases.
  • Update several dependencies.

1.0.11

Documentation

  • Add this Changelog.md to get an overview of the improvements made since the last release.
  • Add standard code style badge in README.md.
  • Adjust keywords in package.json.

Minor Changes

  • Remove dependency to app-root-path since it was only used in test cases and could be replaced by a manually set root directory.
  • Adjust code style to StandardJS 14.1.0.
  • Update several devDependencies.