npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

familysearch-javascript-sdk

v2.11.1

Published

Javascript SDK for FamilySearch

Downloads

123

Readme

GedcomX - JavaScript SDK

npm Build Status Coverage Status Dependency Status devDependency Status

This JavaScript SDK is a high-level JavaScript wrapper around the FamilySearch REST API.

See the wiki for the following:

Installation

Node.js

Node versions 0.10 and 0.12 are officially supported.

npm install familysearch-javascript-sdk

Browser via a CDN

Available via both jsDelivr and unpkg.

<script src="//cdn.jsdelivr.net/npm/[email protected]/dist/familysearch-javascript-sdk.min.js"></script>
<script src="//unpkg.com/[email protected]/dist/familysearch-javascript-sdk.min.js"></script>

Features

  • Wrapped REST API Calls

JavaScript functions wrap the underlying REST API calls. The objects returned by the functions include convenience functions for extracting information from the returned JSON. For example, the following logs the name of a person along with their spouses and chilren.

```javascript
client.getPerson('KW7S-VQJ', {persons:true}).then(function(response) {
  console.log(response.getPrimaryPerson().getDisplayName());
});
```
  • Promises

Asynchronous functions (like the one above) return promises to make it easy for you to refer to their results from anywhere in your code.

  • Well Documented

Each function is well-documented and has an editable jsFiddle to demonstrate its functionality and allow you to experiment.

  • Popup Authentication

In the browser, authentication is handled using a popup window. You do not need to create an OAuth redirect page. All you need to do is register a callback URI that shares the same hostname and port as your code.

  • Automatic Authentication

If you make a call without first authenticating, the authentication process will be initiated first automatically.

  • Token Storage

There is an option to store your access token in a session cookie.

  • Throttle Handling

Retry in the case of throttled responses is handled for you.

  • Cross-platform

Works both in the browser and in node. See the examples.

  • Object-oriented

SDK functions return objects, which have convenience functions to make getting or setting data easy.

  • Consistent update API

Each object has save and delete functions to persist changes or delete the object respectively.

Contributing

Thank you for your interest in contributing! We love pull requests.

Follow these steps to properly setup your development environment:

  • Fork this repo
  • Run npm install to install the build dependencies.
  • Run npm test to run the tests.
  • Run npm run build to build the project.

This project uses .editorconfig to help configure your editor for consistent code indentation and styling. Please follow the existing style in your changes.

Grunt runs jshint on the files using a rather strict .jshintrc file, which finds a lot of potential problems almost immediately. Your changes should pass the jshint checks. If you have a good reason not to follow a particular check for a particular statement, you can disable the jshint test for that statement. Some editors (e.g., WebStorm) can be configured to read the .jshintrc file to notify you immediately when something doesn't pass.

Grunt runs unit tests using jasmine. Please create unit tests for your changes. See the existing unit test files for examples.

Grunt also generates documentation for the project. Nearly a third of the code consists of comments that is turned into online documentation. Please comment your changes.

When choosing what to work on, you may pick an existing issue to implement or create a new issue. We suggest that you describe what you plan to implement in order to get feedback prior to implementation and issuing a pull request, though you are also free to issue a pull request and ask for comments afterward.