From 1438c47f9e9b6d98af2d68cbc3ff76b5e6e35295 Mon Sep 17 00:00:00 2001 From: Russell Bicknell Date: Wed, 11 Apr 2018 14:22:45 -0700 Subject: [PATCH 01/10] Copy `polymer-2.x` template to `polymer-3.x`. --- .../element/templates/polymer-3.x/.gitignore | 1 + .../element/templates/polymer-3.x/README.md | 21 ++++++++ .../templates/polymer-3.x/_element.html | 36 +++++++++++++ .../element/templates/polymer-3.x/bower.json | 17 ++++++ .../templates/polymer-3.x/demo/index.html | 30 +++++++++++ .../element/templates/polymer-3.x/index.html | 16 ++++++ .../templates/polymer-3.x/polymer.json | 7 +++ .../polymer-3.x/test/_element_test.html | 52 +++++++++++++++++++ .../templates/polymer-3.x/test/index.html | 18 +++++++ 9 files changed, 198 insertions(+) create mode 100644 packages/cli/src/init/element/templates/polymer-3.x/.gitignore create mode 100644 packages/cli/src/init/element/templates/polymer-3.x/README.md create mode 100644 packages/cli/src/init/element/templates/polymer-3.x/_element.html create mode 100644 packages/cli/src/init/element/templates/polymer-3.x/bower.json create mode 100644 packages/cli/src/init/element/templates/polymer-3.x/demo/index.html create mode 100644 packages/cli/src/init/element/templates/polymer-3.x/index.html create mode 100644 packages/cli/src/init/element/templates/polymer-3.x/polymer.json create mode 100644 packages/cli/src/init/element/templates/polymer-3.x/test/_element_test.html create mode 100644 packages/cli/src/init/element/templates/polymer-3.x/test/index.html diff --git a/packages/cli/src/init/element/templates/polymer-3.x/.gitignore b/packages/cli/src/init/element/templates/polymer-3.x/.gitignore new file mode 100644 index 000000000..fbe05fc93 --- /dev/null +++ b/packages/cli/src/init/element/templates/polymer-3.x/.gitignore @@ -0,0 +1 @@ +bower_components/ diff --git a/packages/cli/src/init/element/templates/polymer-3.x/README.md b/packages/cli/src/init/element/templates/polymer-3.x/README.md new file mode 100644 index 000000000..3747f775a --- /dev/null +++ b/packages/cli/src/init/element/templates/polymer-3.x/README.md @@ -0,0 +1,21 @@ +# \<<%= name %>\> + +<%= description %> + +## Install the Polymer-CLI + +First, make sure you have the [Polymer CLI](https://www.npmjs.com/package/polymer-cli) installed. Then run `polymer serve` to serve your element locally. + +## Viewing Your Element + +``` +$ polymer serve +``` + +## Running Tests + +``` +$ polymer test +``` + +Your application is already set up to be tested via [web-component-tester](https://github.com/Polymer/web-component-tester). Run `polymer test` to run your application's test suite locally. diff --git a/packages/cli/src/init/element/templates/polymer-3.x/_element.html b/packages/cli/src/init/element/templates/polymer-3.x/_element.html new file mode 100644 index 000000000..a4a6fc7a0 --- /dev/null +++ b/packages/cli/src/init/element/templates/polymer-3.x/_element.html @@ -0,0 +1,36 @@ + + + + + + + diff --git a/packages/cli/src/init/element/templates/polymer-3.x/bower.json b/packages/cli/src/init/element/templates/polymer-3.x/bower.json new file mode 100644 index 000000000..a60ba3ca0 --- /dev/null +++ b/packages/cli/src/init/element/templates/polymer-3.x/bower.json @@ -0,0 +1,17 @@ +{ + "name": "<%= name %>", +<% if (description) { -%> "description": "<%= description %>", +<% } -%> + "main": "<%= name %>.html", + "dependencies": { + "polymer": "Polymer/polymer#^2.0.0" + }, + "devDependencies": { + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^2.0.0", + "web-component-tester": "Polymer/web-component-tester#^6.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" + }, + "resolutions": { + "polymer": "^2.0.0" + } +} diff --git a/packages/cli/src/init/element/templates/polymer-3.x/demo/index.html b/packages/cli/src/init/element/templates/polymer-3.x/demo/index.html new file mode 100644 index 000000000..5cd210a22 --- /dev/null +++ b/packages/cli/src/init/element/templates/polymer-3.x/demo/index.html @@ -0,0 +1,30 @@ + + + + + + + <%= name %> demo + + + + + + + + + + + + +
+

Basic <%= name %> demo

+ + + +
+ + diff --git a/packages/cli/src/init/element/templates/polymer-3.x/index.html b/packages/cli/src/init/element/templates/polymer-3.x/index.html new file mode 100644 index 000000000..47a86412a --- /dev/null +++ b/packages/cli/src/init/element/templates/polymer-3.x/index.html @@ -0,0 +1,16 @@ + + + + + + <%= name %> + + + + + diff --git a/packages/cli/src/init/element/templates/polymer-3.x/polymer.json b/packages/cli/src/init/element/templates/polymer-3.x/polymer.json new file mode 100644 index 000000000..2bd10b64a --- /dev/null +++ b/packages/cli/src/init/element/templates/polymer-3.x/polymer.json @@ -0,0 +1,7 @@ +{ + "lint": { + "rules": [ + "polymer-2" + ] + } +} diff --git a/packages/cli/src/init/element/templates/polymer-3.x/test/_element_test.html b/packages/cli/src/init/element/templates/polymer-3.x/test/_element_test.html new file mode 100644 index 000000000..94e3905f8 --- /dev/null +++ b/packages/cli/src/init/element/templates/polymer-3.x/test/_element_test.html @@ -0,0 +1,52 @@ + + + + + + + <%= name %> test + + + + + + + + + + + + + + + + + + + + diff --git a/packages/cli/src/init/element/templates/polymer-3.x/test/index.html b/packages/cli/src/init/element/templates/polymer-3.x/test/index.html new file mode 100644 index 000000000..a7a4d7fe9 --- /dev/null +++ b/packages/cli/src/init/element/templates/polymer-3.x/test/index.html @@ -0,0 +1,18 @@ + + + + + + + + + + + + + From d3f365aadc939babae5e399e509472a7336e120c Mon Sep 17 00:00:00 2001 From: Russell Bicknell Date: Wed, 11 Apr 2018 14:39:37 -0700 Subject: [PATCH 02/10] Update `init` and associated polymer-3.x template. --- packages/cli/src/init/element/element.ts | 40 ++++++++++++++++++- .../element/templates/polymer-3.x/.gitignore | 2 +- .../templates/polymer-3.x/_element.html | 36 ----------------- .../element/templates/polymer-3.x/_element.js | 32 +++++++++++++++ .../element/templates/polymer-3.x/bower.json | 17 -------- .../templates/polymer-3.x/demo/index.html | 8 ++-- .../element/templates/polymer-3.x/index.html | 1 - .../templates/polymer-3.x/package.json | 14 +++++++ .../templates/polymer-3.x/polymer.json | 7 +--- .../polymer-3.x/test/_element_test.html | 8 ++-- .../templates/polymer-3.x/test/index.html | 7 ++-- packages/cli/src/init/init.ts | 5 +++ 12 files changed, 104 insertions(+), 73 deletions(-) delete mode 100644 packages/cli/src/init/element/templates/polymer-3.x/_element.html create mode 100644 packages/cli/src/init/element/templates/polymer-3.x/_element.js delete mode 100644 packages/cli/src/init/element/templates/polymer-3.x/bower.json create mode 100644 packages/cli/src/init/element/templates/polymer-3.x/package.json diff --git a/packages/cli/src/init/element/element.ts b/packages/cli/src/init/element/element.ts index a137a2c69..eaed3abd5 100644 --- a/packages/cli/src/init/element/element.ts +++ b/packages/cli/src/init/element/element.ts @@ -27,7 +27,7 @@ const logger = logging.getLogger('init'); */ export function createElementGenerator(templateName: string): (typeof Generator) { - return class ElementGenerator extends Generator { + class ElementGenerator extends Generator { props: any; constructor(args: string|string[], options: any) { @@ -119,4 +119,42 @@ export function createElementGenerator(templateName: string): 'Check out your new project README for information about what to do next.\n'); } }; + + class Polymer3ElementGenerator extends ElementGenerator { + // TODO(bicknellr): Why doesn't this inherit properly? Because `async` is + // compiled out? + async prompting() { + return super.prompting(); + } + + writing() { + const name = this.props.name; + + this.fs.copyTpl( + `${this.templatePath()}/**/?(.)!(_)*`, + this.destinationPath(), + this.props); + + this.fs.copyTpl( + this.templatePath('_element.js'), `${name}.js`, this.props); + + this.fs.copyTpl( + this.templatePath('test/_element_test.html'), + `test/${name}_test.html`, + this.props); + + this.fs.copyTpl( + this.templatePath('test/index.html'), `test/index.html`, this.props); + + this.fs.copyTpl( + this.templatePath('.gitignore'), '.gitignore', this.props); + } + } + + switch (templateName) { + case "polymer-3.x": + return Polymer3ElementGenerator; + default: + return ElementGenerator; + } } diff --git a/packages/cli/src/init/element/templates/polymer-3.x/.gitignore b/packages/cli/src/init/element/templates/polymer-3.x/.gitignore index fbe05fc93..2ccbe4656 100644 --- a/packages/cli/src/init/element/templates/polymer-3.x/.gitignore +++ b/packages/cli/src/init/element/templates/polymer-3.x/.gitignore @@ -1 +1 @@ -bower_components/ +/node_modules/ diff --git a/packages/cli/src/init/element/templates/polymer-3.x/_element.html b/packages/cli/src/init/element/templates/polymer-3.x/_element.html deleted file mode 100644 index a4a6fc7a0..000000000 --- a/packages/cli/src/init/element/templates/polymer-3.x/_element.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - diff --git a/packages/cli/src/init/element/templates/polymer-3.x/_element.js b/packages/cli/src/init/element/templates/polymer-3.x/_element.js new file mode 100644 index 000000000..905951528 --- /dev/null +++ b/packages/cli/src/init/element/templates/polymer-3.x/_element.js @@ -0,0 +1,32 @@ +import { PolymerElement } from "@polymer/polymer/polymer-element.js"; + +/** + * `<%= name %>` + * <%= description %> + * + * @customElement + * @polymer + * @demo demo/index.html + */ +class <%= elementClassName %> extends PolymerElement { + static get template() { + return ` + +

Hello [[prop1]]!

+ `; + } + static get properties() { + return { + prop1: { + type: String, + value: '<%= name %>' + } + }; + } +} + +window.customElements.define('<%= name %>', <%= elementClassName %>); diff --git a/packages/cli/src/init/element/templates/polymer-3.x/bower.json b/packages/cli/src/init/element/templates/polymer-3.x/bower.json deleted file mode 100644 index a60ba3ca0..000000000 --- a/packages/cli/src/init/element/templates/polymer-3.x/bower.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "<%= name %>", -<% if (description) { -%> "description": "<%= description %>", -<% } -%> - "main": "<%= name %>.html", - "dependencies": { - "polymer": "Polymer/polymer#^2.0.0" - }, - "devDependencies": { - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^2.0.0", - "web-component-tester": "Polymer/web-component-tester#^6.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0" - }, - "resolutions": { - "polymer": "^2.0.0" - } -} diff --git a/packages/cli/src/init/element/templates/polymer-3.x/demo/index.html b/packages/cli/src/init/element/templates/polymer-3.x/demo/index.html index 5cd210a22..52aad76a8 100644 --- a/packages/cli/src/init/element/templates/polymer-3.x/demo/index.html +++ b/packages/cli/src/init/element/templates/polymer-3.x/demo/index.html @@ -6,11 +6,11 @@ <%= name %> demo - + - - - + + +