From 748426773099e53fae2315819c4e9c558e8d7c22 Mon Sep 17 00:00:00 2001 From: Pedro Nauck Date: Tue, 10 Apr 2018 02:08:31 -0300 Subject: [PATCH] feat(docz-core): add template using art-template --- packages/playgrodd-core/package.json | 9 ++- .../playgrodd-core/scripts/copy-templates.js | 9 +++ packages/playgrodd-core/src/types.d.ts | 1 + packages/playgrodd-core/templates/app.tpl.js | 7 +++ .../playgrodd-core/templates/index.tpl.html | 12 ++++ .../playgrodd-core/templates/index.tpl.js | 5 ++ yarn.lock | 59 +++++++++++++++++-- 7 files changed, 95 insertions(+), 7 deletions(-) create mode 100644 packages/playgrodd-core/scripts/copy-templates.js create mode 100644 packages/playgrodd-core/templates/app.tpl.js create mode 100644 packages/playgrodd-core/templates/index.tpl.html create mode 100644 packages/playgrodd-core/templates/index.tpl.js diff --git a/packages/playgrodd-core/package.json b/packages/playgrodd-core/package.json index 16ff6c17b..3de69ed39 100644 --- a/packages/playgrodd-core/package.json +++ b/packages/playgrodd-core/package.json @@ -5,18 +5,20 @@ "typings": "./dist/main/index.d.ts", "module": "./dist/module/index.js", "scripts": { + "copy-templates": "node scripts/copy-templates", + "clean": "trash dist && yarn copy-templates", "dev": "run-s clean build:main && run-p \"build:main -- -w\"", "build": "run-s clean && run-p build:*", "build:main": "tsc -p tsconfig.json", "build:module": "tsc -p tsconfig.module.json", "fix": "run-s fix:*", "fix:prettier": "prettier \"src/**/*.{ts,tsx}\" --write", - "fix:tslint": "tslint --fix --project .", - "clean": "trash dist" + "fix:tslint": "tslint --fix --project ." }, "dependencies": { "@babel/core": "^7.0.0-beta.42", "@babel/runtime": "^7.0.0-beta.42", + "art-template": "^4.12.2", "babel-loader": "^8.0.0-beta.1", "babel-polyfill": "^7.0.0-beta.3", "babel-traverse": "^6.26.0", @@ -43,6 +45,7 @@ "@types/express": "^4.11.1", "@types/mkdirp": "^0.5.2", "@types/webpack": "^4.1.2", - "@types/webpack-dev-server": "^2.9.4" + "@types/webpack-dev-server": "^2.9.4", + "shelljs": "^0.8.1" } } diff --git a/packages/playgrodd-core/scripts/copy-templates.js b/packages/playgrodd-core/scripts/copy-templates.js new file mode 100644 index 000000000..486b8909b --- /dev/null +++ b/packages/playgrodd-core/scripts/copy-templates.js @@ -0,0 +1,9 @@ +#!/usr/bin/env node + +const { cp, rm, mkdir } = require('shelljs') + +const DIST = 'dist/' + +rm('-rf', DIST) +mkdir('-p', DIST) +cp('-R', 'templates/', DIST) diff --git a/packages/playgrodd-core/src/types.d.ts b/packages/playgrodd-core/src/types.d.ts index 940e35d3a..0c7a67a77 100644 --- a/packages/playgrodd-core/src/types.d.ts +++ b/packages/playgrodd-core/src/types.d.ts @@ -1,2 +1,3 @@ +declare module 'art-template' declare module 'react-dev-utils/errorOverlayMiddleware' declare module 'react-dev-utils/WebpackDevServerUtils' diff --git a/packages/playgrodd-core/templates/app.tpl.js b/packages/playgrodd-core/templates/app.tpl.js new file mode 100644 index 000000000..c8ab35869 --- /dev/null +++ b/packages/playgrodd-core/templates/app.tpl.js @@ -0,0 +1,7 @@ +<% entries.forEach(function(entry) { %>import '<%- entry.filepath %>' +<% }); %> +import React from 'react' +import { hot } from 'react-hot-loader' +import { Theme } from 'playgrodd-theme-default' + +export const App = hot(module)(Theme) diff --git a/packages/playgrodd-core/templates/index.tpl.html b/packages/playgrodd-core/templates/index.tpl.html new file mode 100644 index 000000000..3db1bb3f0 --- /dev/null +++ b/packages/playgrodd-core/templates/index.tpl.html @@ -0,0 +1,12 @@ + + + + + + + Playgrodd + + +
+ + diff --git a/packages/playgrodd-core/templates/index.tpl.js b/packages/playgrodd-core/templates/index.tpl.js new file mode 100644 index 000000000..ce845df41 --- /dev/null +++ b/packages/playgrodd-core/templates/index.tpl.js @@ -0,0 +1,5 @@ +import React from 'react' +import { render } from 'react-dom' +import { App } from './app' + +render(, document.querySelector('#root')) diff --git a/yarn.lock b/yarn.lock index dae64be51..5abc884df 100644 --- a/yarn.lock +++ b/yarn.lock @@ -899,7 +899,7 @@ acorn@^3.0.4: version "3.3.0" resolved "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" -acorn@^5.0.0, acorn@^5.5.0, acorn@^5.5.3: +acorn@^5.0.0, acorn@^5.0.3, acorn@^5.5.0, acorn@^5.5.3: version "5.5.3" resolved "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" @@ -1086,6 +1086,20 @@ arrify@^1.0.0, arrify@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" +art-template@^4.12.2: + version "4.12.2" + resolved "https://registry.npmjs.org/art-template/-/art-template-4.12.2.tgz#a41eb82d9679bbd1c73f1f838ff46e8eb0612565" + dependencies: + acorn "^5.0.3" + detect-node "^2.0.3" + escodegen "^1.8.1" + estraverse "^4.2.0" + html-minifier "^3.4.3" + is-keyword-js "^1.0.3" + js-tokens "^3.0.1" + merge-source-map "^1.0.3" + source-map "^0.5.6" + asap@~2.0.3: version "2.0.6" resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" @@ -2570,6 +2584,17 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1 version "1.0.5" resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" +escodegen@^1.8.1: + version "1.9.1" + resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz#dbae17ef96c8e4bedb1356f4504fa4cc2f7cb7e2" + dependencies: + esprima "^3.1.3" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + eslint-scope@^3.7.1: version "3.7.1" resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" @@ -2631,6 +2656,10 @@ espree@^3.5.4: acorn "^5.5.0" acorn-jsx "^3.0.0" +esprima@^3.1.3: + version "3.1.3" + resolved "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + esprima@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" @@ -2647,7 +2676,7 @@ esrecurse@^4.1.0: dependencies: estraverse "^4.1.0" -estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: +estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" @@ -3529,6 +3558,18 @@ html-minifier@^3.2.3: relateurl "0.2.x" uglify-js "3.3.x" +html-minifier@^3.4.3: + version "3.5.14" + resolved "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.14.tgz#88653b24b344274e3e3d7052f1541ebea054ac60" + dependencies: + camel-case "3.0.x" + clean-css "4.1.x" + commander "2.15.x" + he "1.1.x" + param-case "2.1.x" + relateurl "0.2.x" + uglify-js "3.3.x" + html-webpack-plugin@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.1.0.tgz#6e02baaedb1e906310917f03239c793a75af2885" @@ -3846,6 +3887,10 @@ is-glob@^4.0.0: dependencies: is-extglob "^2.1.1" +is-keyword-js@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/is-keyword-js/-/is-keyword-js-1.0.3.tgz#ac30dcf35b671f4b27b17f5cb57235126021132d" + is-module@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" @@ -4013,7 +4058,7 @@ isstream@~0.1.2: version "0.1.2" resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" -js-tokens@^3.0.0, js-tokens@^3.0.2: +js-tokens@^3.0.0, js-tokens@^3.0.1, js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" @@ -4480,6 +4525,12 @@ merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" +merge-source-map@^1.0.3: + version "1.1.0" + resolved "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" + dependencies: + source-map "^0.6.1" + merge2@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/merge2/-/merge2-1.2.1.tgz#271d2516ff52d4af7f7b710b8bf3e16e183fef66" @@ -4963,7 +5014,7 @@ optimist@^0.6.1: minimist "~0.0.1" wordwrap "~0.0.2" -optionator@^0.8.2: +optionator@^0.8.1, optionator@^0.8.2: version "0.8.2" resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" dependencies: