Skip to content

Commit

Permalink
Initial release of @google-cloud/firestore.
Browse files Browse the repository at this point in the history
[Google Cloud Firestore](https://firebase.google.com/docs/firestore/) is
a flexible, scalable database for mobile, web, and server development
from Firebase and Google Cloud Platform. Like Firebase Realtime
Database, it keeps your data in sync across client apps through realtime
listeners and offers offline support for mobile and web so you can build
responsive apps that work regardless of network latency or Internet
connectivity. Cloud Firestore also offers seamless integration with
other Firebase and Google Cloud Platform products, including Cloud
Functions.
  • Loading branch information
schmidt-sebastian authored and Luke Sneeringer committed Oct 3, 2017
1 parent 9ff46e9 commit ab35efc
Show file tree
Hide file tree
Showing 67 changed files with 22,813 additions and 0 deletions.
23 changes: 23 additions & 0 deletions .appveyor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
environment:
matrix:
- nodejs_version: 4
- nodejs_version: 6
- nodejs_version: 7
- nodejs_version: 8

install:
- ps: Install-Product node $env:nodejs_version
- npm install -g npm # Force using the latest npm to get dedupe during install
- set PATH=%APPDATA%\npm;%PATH%
- npm install --force --ignore-scripts

test_script:
- node --version
- npm --version
- npm rebuild
- npm test

build: off

matrix:
fast_finish: true
158 changes: 158 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
---
# "Include" for unit tests definition.
unit_tests: &unit_tests
steps:
- checkout
- run:
name: Install modules and dependencies.
command: npm install
- run:
name: Install codecov.
command: npm install codecov
- run:
name: Run unit tests.
command: npm test
- run:
name: Submit coverage data to codecov.
command: node_modules/.bin/codecov
when: always


version: 2.0
workflows:
version: 2
tests:
jobs:
- node4:
filters:
tags:
only: /.*/
- node6:
filters:
tags:
only: /.*/
- node7:
filters:
tags:
only: /.*/
- node8:
filters:
tags:
only: /.*/
- lint:
requires:
- node4
- node6
- node7
- node8
filters:
tags:
only: /.*/
- docs:
requires:
- node4
- node6
- node7
- node8
filters:
tags:
only: /.*/
- system_tests:
requires:
- lint
- docs
filters:
branches:
only: master
tags:
only: /^v[\d.]+$/
- publish_npm:
requires:
- system_tests
filters:
branches:
ignore: /.*/
tags:
only: /^v[\d.]+$/

jobs:
node4:
docker:
- image: node:4
<<: *unit_tests
node6:
docker:
- image: node:6
<<: *unit_tests
node7:
docker:
- image: node:7
<<: *unit_tests
node8:
docker:
- image: node:8
<<: *unit_tests

lint:
docker:
- image: node:8
steps:
- checkout
- run:
name: Install modules and dependencies.
command: npm install
- run:
name: Run linting.
command: npm run lint

docs:
docker:
- image: node:8
steps:
- checkout
- run:
name: Install modules and dependencies.
command: npm install
- run:
name: Build documentation.
command: npm run docs

system_tests:
docker:
- image: node:8
steps:
- checkout
- run:
name: Decrypt credentials.
command: |
openssl aes-256-cbc -d -in .circleci/key.json.enc \
-out .circleci/key.json \
-k "${SYSTEM_TESTS_ENCRYPTION_KEY}"
- run:
name: Install modules and dependencies.
command: npm install
- run:
name: Run system tests.
command: npm run system-test
environment:
# TODO: Figure out if both of these pairs are necessary.
GOOGLE_APPLICATION_CREDENTIALS: .circleci/key.json
GCLOUD_PROJECT: node-gcloud-ci
GCLOUD_TESTS_KEY: .circleci/key.json
GCLOUD_TESTS_PROJECT_ID: node-gcloud-ci
- run:
name: Remove unencrypted key.
command: rm .circleci/key.json
when: always

publish_npm:
docker:
- image: node:8
steps:
- checkout
- run:
name: Set NPM authentication.
command: echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc
- run:
name: Publish the module to npm.
command: npm publish
Binary file added .circleci/key.json.enc
Binary file not shown.
16 changes: 16 additions & 0 deletions .cloud-repo-tools.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"requiresKeyFile": true,
"requiresProjectId": true,
"client_reference_url": "https://cloud.google.com/nodejs/docs/reference/firestore/latest/",
"release_quality": "beta",
"suppress_billing": true,
"samples": [],

"_product": "firestore",
"id": "firestore",
"name": "Google Cloud Firestore",
"short_name": "Firestore",
"docs_url": "https://firebase.google.com/docs/firestore/",
"description": "[Google Cloud Firestore](https://firebase.google.com/docs/firestore/) is a flexible, scalable database for mobile, web, and server development from Firebase and Google Cloud Platform. Like Firebase Realtime Database, it keeps your data in sync across client apps through realtime listeners and offers offline support for mobile and web so you can build responsive apps that work regardless of network latency or Internet connectivity. Cloud Firestore also offers seamless integration with other Firebase and Google Cloud Platform products, including Cloud Functions.",
"api_id": "firestore.googleapis.com"
}
3 changes: 3 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
node_modules/*
samples/node_modules/*
src/**/doc/*
13 changes: 13 additions & 0 deletions .eslintrc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
extends:
- 'eslint:recommended'
- 'plugin:node/recommended'
- prettier
plugins:
- node
- prettier
rules:
prettier/prettier: error
block-scoped-var: error
eqeqeq: error
no-warning-comments: warn
53 changes: 53 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# How to become a contributor and submit your own code

**Table of contents**

* [Contributor License Agreements](#contributor-license-agreements)
* [Contributing a patch](#contributing-a-patch)
* [Running the tests](#running-the-tests)
* [Releasing the library](#releasing-the-library)

## Contributor License Agreements

We'd love to accept your sample apps and patches! Before we can take them, we
have to jump a couple of legal hurdles.

Please fill out either the individual or corporate Contributor License Agreement
(CLA).

* If you are an individual writing original source code and you're sure you
own the intellectual property, then you'll need to sign an [individual CLA]
(https://developers.google.com/open-source/cla/individual).
* If you work for a company that wants to allow you to contribute your work,
then you'll need to sign a [corporate CLA]
(https://developers.google.com/open-source/cla/corporate).

Follow either of the two links above to access the appropriate CLA and
instructions for how to sign and return it. Once we receive it, we'll be able to
accept your pull requests.

## Contributing A Patch

1. Submit an issue describing your proposed change to the repo in question.
1. The repo owner will respond to your issue promptly.
1. If your proposed change is accepted, and you haven't already done so, sign a
Contributor License Agreement (see details above).
1. Fork the desired repo, develop and test your code changes.
1. Ensure that your code adheres to the existing style in the code to which
you are contributing.
1. Ensure that your code has an appropriate set of tests which all pass.
1. Submit a pull request.

## Running the tests

1. [Prepare your environment for Node.js setup][setup].

1. Install dependencies:

npm install

1. Run the tests:

npm test

[setup]: https://cloud.google.com/nodejs/docs/setup
28 changes: 28 additions & 0 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
Thanks for stopping by to let us know something could be better!

Please run down the following list and make sure you've tried the usual "quick
fixes":

- Search the issues already opened: https://github.com/googleapis/nodejs-firestore/issues
- Search StackOverflow: http://stackoverflow.com/questions/tagged/google-cloud-platform+node.js
- Check our Troubleshooting guide: https://googlecloudplatform.github.io/google-cloud-node/#/docs/guides/troubleshooting
- Check our FAQ: https://googlecloudplatform.github.io/google-cloud-node/#/docs/guides/faq

If you are still having issues, please be sure to include as much information as
possible:

#### Environment details

- OS:
- Node.js version:
- npm version:
- @google-cloud/firestore version:

#### Steps to reproduce

1. ???
2. ???

Following these steps will guarantee the quickest resolution possible.

Thanks!
5 changes: 5 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Fixes #<issue_number_goes_here> (it's a good idea to open an issue first for discussion)

- [ ] Tests and linter pass
- [ ] Code coverage does not decrease (if any source code was changed)
- [ ] Appropriate docs were updated (if necessary)
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
**/*.log
**/node_modules
.coverage
.nyc_output
docs/
out/
system-test/secrets.js
system-test/*key.json
*.lock
*-lock.json
45 changes: 45 additions & 0 deletions .jsdoc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
/*!
* Copyright 2017 Google Inc. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

'use strict';

module.exports = {
opts: {
readme: './README.md',
package: './package.json',
template: './node_modules/ink-docstrap/template',
recurse: true,
verbose: true,
destination: './docs/'
},
plugins: [
'plugins/markdown'
],
source: {
excludePattern: '(^|\\/|\\\\)[._]',
include: [
'src'
],
includePattern: '\\.js$'
},
templates: {
copyright: 'Copyright 2017 Google, Inc.',
includeDate: false,
sourceFiles: false,
systemName: '@google-cloud/firestore',
theme: 'lumen'
}
};
26 changes: 26 additions & 0 deletions .nycrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"report-dir": "./.coverage",
"exclude": [
"src/*{/*,/**/*}.js",
"src/*/v*/*.js",
"test/**/*.js"
],
"watermarks": {
"branches": [
95,
100
],
"functions": [
95,
100
],
"lines": [
95,
100
],
"statements": [
95,
100
]
}
}
3 changes: 3 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
node_modules/*
samples/node_modules/*
src/**/doc/*
Loading

0 comments on commit ab35efc

Please sign in to comment.