From 6c78efbcb704716fd5ced4c394e662807b56f544 Mon Sep 17 00:00:00 2001 From: willclarktech Date: Thu, 11 Jun 2020 11:17:47 +0100 Subject: [PATCH] protobuf-demo: Add package --- packages/protobuf-demo/.eslintignore | 1 + packages/protobuf-demo/.gitignore | 4 ++ packages/protobuf-demo/README.md | 10 +++++ packages/protobuf-demo/jasmine-testrunner.js | 26 +++++++++++ packages/protobuf-demo/karma.conf.js | 47 ++++++++++++++++++++ packages/protobuf-demo/nonces/README.txt | 1 + packages/protobuf-demo/package.json | 36 +++++++++++++++ packages/protobuf-demo/tsconfig.json | 12 +++++ packages/protobuf-demo/typedoc.js | 14 ++++++ packages/protobuf-demo/webpack.web.config.js | 19 ++++++++ 10 files changed, 170 insertions(+) create mode 120000 packages/protobuf-demo/.eslintignore create mode 100644 packages/protobuf-demo/.gitignore create mode 100644 packages/protobuf-demo/README.md create mode 100755 packages/protobuf-demo/jasmine-testrunner.js create mode 100644 packages/protobuf-demo/karma.conf.js create mode 100644 packages/protobuf-demo/nonces/README.txt create mode 100644 packages/protobuf-demo/package.json create mode 100644 packages/protobuf-demo/tsconfig.json create mode 100644 packages/protobuf-demo/typedoc.js create mode 100644 packages/protobuf-demo/webpack.web.config.js diff --git a/packages/protobuf-demo/.eslintignore b/packages/protobuf-demo/.eslintignore new file mode 120000 index 0000000000..86039baf54 --- /dev/null +++ b/packages/protobuf-demo/.eslintignore @@ -0,0 +1 @@ +../../.eslintignore \ No newline at end of file diff --git a/packages/protobuf-demo/.gitignore b/packages/protobuf-demo/.gitignore new file mode 100644 index 0000000000..1f68d6fa5e --- /dev/null +++ b/packages/protobuf-demo/.gitignore @@ -0,0 +1,4 @@ +build/ +dist/ +docs/ +proto/ diff --git a/packages/protobuf-demo/README.md b/packages/protobuf-demo/README.md new file mode 100644 index 0000000000..dd72f3545e --- /dev/null +++ b/packages/protobuf-demo/README.md @@ -0,0 +1,10 @@ +# @cosmjs/protobuf-demo + +Demo package for protobufs with Cosmos SDK. + +## License + +This package is part of the cosmjs repository, licensed under the Apache +License 2.0 (see +[NOTICE](https://github.com/CosmWasm/cosmjs/blob/master/NOTICE) and +[LICENSE](https://github.com/CosmWasm/cosmjs/blob/master/LICENSE)). diff --git a/packages/protobuf-demo/jasmine-testrunner.js b/packages/protobuf-demo/jasmine-testrunner.js new file mode 100755 index 0000000000..9fada59b28 --- /dev/null +++ b/packages/protobuf-demo/jasmine-testrunner.js @@ -0,0 +1,26 @@ +#!/usr/bin/env node + +require("source-map-support").install(); +const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); + +// setup Jasmine +const Jasmine = require("jasmine"); +const jasmine = new Jasmine(); +jasmine.loadConfig({ + spec_dir: "build", + spec_files: ["**/*.spec.js"], + helpers: [], + random: false, + seed: null, + stopSpecOnExpectationFailure: false, +}); +jasmine.jasmine.DEFAULT_TIMEOUT_INTERVAL = 15 * 1000; + +// setup reporter +const { SpecReporter } = require("jasmine-spec-reporter"); +const reporter = new SpecReporter({ ...defaultSpecReporterConfig }); + +// initialize and execute +jasmine.env.clearReporters(); +jasmine.addReporter(reporter); +jasmine.execute(); diff --git a/packages/protobuf-demo/karma.conf.js b/packages/protobuf-demo/karma.conf.js new file mode 100644 index 0000000000..006da5fe6b --- /dev/null +++ b/packages/protobuf-demo/karma.conf.js @@ -0,0 +1,47 @@ +module.exports = function (config) { + config.set({ + // base path that will be used to resolve all patterns (eg. files, exclude) + basePath: ".", + + // frameworks to use + // available frameworks: https://npmjs.org/browse/keyword/karma-adapter + frameworks: ["jasmine"], + + // list of files / patterns to load in the browser + files: ["dist/web/tests.js"], + + client: { + jasmine: { + random: false, + timeoutInterval: 15000, + }, + }, + + // test results reporter to use + // possible values: 'dots', 'progress' + // available reporters: https://npmjs.org/browse/keyword/karma-reporter + reporters: ["progress", "kjhtml"], + + // web server port + port: 9876, + + // enable / disable colors in the output (reporters and logs) + colors: true, + + // level of logging + // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG + logLevel: config.LOG_INFO, + + // enable / disable watching file and executing tests whenever any file changes + autoWatch: false, + + // start these browsers + // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher + browsers: ["Firefox"], + + browserNoActivityTimeout: 90000, + + // Keep brower open for debugging. This is overridden by yarn scripts + singleRun: false, + }); +}; diff --git a/packages/protobuf-demo/nonces/README.txt b/packages/protobuf-demo/nonces/README.txt new file mode 100644 index 0000000000..092fe732f1 --- /dev/null +++ b/packages/protobuf-demo/nonces/README.txt @@ -0,0 +1 @@ +Directory used to trigger lerna package updates for all packages diff --git a/packages/protobuf-demo/package.json b/packages/protobuf-demo/package.json new file mode 100644 index 0000000000..39ad8a0d1e --- /dev/null +++ b/packages/protobuf-demo/package.json @@ -0,0 +1,36 @@ +{ + "name": "@cosmjs/protobuf-demo", + "private": true, + "version": "0.20.0", + "description": "Utilities for Cosmos SDK 0.38", + "author": "Ethan Frey ", + "license": "Apache-2.0", + "main": "build/index.js", + "types": "types/index.d.ts", + "files": [ + "build/", + "types/", + "*.md", + "!*.spec.*", + "!**/testdata/" + ], + "repository": { + "type": "git", + "url": "https://github.com/CosmWasm/cosmjs/tree/master/packages/sdk38" + }, + "scripts": { + "docs": "shx rm -rf docs && typedoc --options typedoc.js", + "format": "prettier --write --loglevel warn \"./src/**/*.ts\"", + "lint": "eslint --max-warnings 0 \"**/*.{js,ts}\"", + "lint-fix": "eslint --max-warnings 0 \"**/*.{js,ts}\" --fix", + "move-types": "shx rm -rf ./types/* && shx mv build/types/* ./types && rm -rf ./types/testdata && shx rm -f ./types/*.spec.d.ts", + "format-types": "prettier --write --loglevel warn \"./types/**/*.d.ts\"", + "build": "shx rm -rf ./build && tsc && yarn move-types && yarn format-types", + "build-or-skip": "[ -n \"$SKIP_BUILD\" ] || yarn build", + "test-node": "node jasmine-testrunner.js", + "test-firefox": "yarn pack-web && karma start --single-run --browsers Firefox", + "test-chrome": "yarn pack-web && karma start --single-run --browsers ChromeHeadless", + "test": "yarn build-or-skip && yarn test-node", + "pack-web": "yarn build-or-skip && webpack --mode development --config webpack.web.config.js" + } +} diff --git a/packages/protobuf-demo/tsconfig.json b/packages/protobuf-demo/tsconfig.json new file mode 100644 index 0000000000..167e8c0226 --- /dev/null +++ b/packages/protobuf-demo/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "baseUrl": ".", + "outDir": "build", + "declarationDir": "build/types", + "rootDir": "src" + }, + "include": [ + "src/**/*" + ] +} diff --git a/packages/protobuf-demo/typedoc.js b/packages/protobuf-demo/typedoc.js new file mode 100644 index 0000000000..e2387c7de4 --- /dev/null +++ b/packages/protobuf-demo/typedoc.js @@ -0,0 +1,14 @@ +const packageJson = require("./package.json"); + +module.exports = { + src: ["./src"], + out: "docs", + exclude: "**/*.spec.ts", + target: "es6", + name: `${packageJson.name} Documentation`, + readme: "README.md", + mode: "file", + excludeExternals: true, + excludeNotExported: true, + excludePrivate: true, +}; diff --git a/packages/protobuf-demo/webpack.web.config.js b/packages/protobuf-demo/webpack.web.config.js new file mode 100644 index 0000000000..7373cace4f --- /dev/null +++ b/packages/protobuf-demo/webpack.web.config.js @@ -0,0 +1,19 @@ +const glob = require("glob"); +const path = require("path"); +const webpack = require("webpack"); + +const target = "web"; +const distdir = path.join(__dirname, "dist", "web"); + +module.exports = [ + { + // bundle used for Karma tests + target: target, + entry: glob.sync("./build/**/*.spec.js"), + output: { + path: distdir, + filename: "tests.js", + }, + plugins: [new webpack.EnvironmentPlugin(["WASMD_ENABLED"])], + }, +];