Use this as a guide. But instead of using the java runtime, we'll use python.
The setup can be accomplish with virtualenv to create an isolated environment.
The project folder structure will look like this:
cloudfunction/
| /** | |
| * Add to run block of angular module | |
| */ | |
| $rootScope.$on('$stateChangeSuccess', function() { | |
| document.body.scrollTop = document.documentElement.scrollTop = 0; | |
| } |
| angular | |
| .module('app') | |
| .service('MyService', myService); | |
| function myService($http) { | |
| /** | |
| * First, send a get request for all records of a type, | |
| * then filter response down to specific record. | |
| */ |
| var endpoint = 'https://jsonplaceholder.typicode.com/users'; | |
| // 1. https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest | |
| var request = new XMLHttpRequest(); | |
| request.addEventListener('load', function() { | |
| console.log(this.responseText); | |
| }) | |
| request.open('GET', endpoint); | |
| request.send(); |
| var list = ["foo", "foo", "bar", "bar", "bar"]; | |
| var results = list.reduce(reducer, {}); | |
| console.log(results); // {"foo": 2, "bar": 3} | |
| /** | |
| * Callback function for the `reduce()` method. | |
| * | |
| * @param acc accumulated value previously returned in the last invocation of the callback |
| var Eventbus = { | |
| topics: {}, | |
| /** | |
| * Adds topic to `topics` object if it doesn't exist | |
| * and adds listener to same topic. | |
| * | |
| * @param {string} topic | |
| * @param {function} listener | |
| */ |
| /** | |
| * Expects data to be an array of objects. | |
| * The key will be one of the keys in the objects. | |
| */ | |
| function organizeBy(key, data) { | |
| var results = {}; | |
| data.forEach(function(obj) { | |
| var value = obj[key]; | |
| if (!results[value]) { | |
| results[value] = []; |
Use this as a guide. But instead of using the java runtime, we'll use python.
The setup can be accomplish with virtualenv to create an isolated environment.
The project folder structure will look like this:
cloudfunction/
| pipelines: | |
| branches: | |
| develop: | |
| - step: | |
| name: Update | |
| script: | |
| - apt-get update | |
| - apt-get -y install jq zip | |
| - FILE_NAME=crx.zip | |
| - zip -r $FILE_NAME ./app |
| # Possible versioning stratgy. | |
| # Only integers are allowed with the `version` property of the manifest.json. | |
| script: | |
| - GIT_HASH=$(git rev-parse --short HEAD) | |
| - jq ".version_name = \"build-$GIT_HASH\"" manifest.json | spong manifest.json |