From 29982b8d760552c8d1cb8b29541261a97e4c73c4 Mon Sep 17 00:00:00 2001 From: James Babcock Date: Wed, 12 Sep 2018 20:28:15 -0400 Subject: [PATCH] Delete boilerplate-generator --- packages/_boilerplate-generator/.gitignore | 1 - .../.npm/package/.gitignore | 1 - .../.npm/package/README | 7 - .../.npm/package/npm-shrinkwrap.json | 30 ---- packages/_boilerplate-generator/README.md | 5 - packages/_boilerplate-generator/generator.js | 165 ------------------ packages/_boilerplate-generator/package.js | 16 -- .../template-web.browser.js | 70 -------- .../template-web.cordova.js | 72 -------- packages/_boilerplate-generator/template.js | 14 -- 10 files changed, 381 deletions(-) delete mode 100644 packages/_boilerplate-generator/.gitignore delete mode 100644 packages/_boilerplate-generator/.npm/package/.gitignore delete mode 100644 packages/_boilerplate-generator/.npm/package/README delete mode 100644 packages/_boilerplate-generator/.npm/package/npm-shrinkwrap.json delete mode 100644 packages/_boilerplate-generator/README.md delete mode 100644 packages/_boilerplate-generator/generator.js delete mode 100644 packages/_boilerplate-generator/package.js delete mode 100644 packages/_boilerplate-generator/template-web.browser.js delete mode 100644 packages/_boilerplate-generator/template-web.cordova.js delete mode 100644 packages/_boilerplate-generator/template.js diff --git a/packages/_boilerplate-generator/.gitignore b/packages/_boilerplate-generator/.gitignore deleted file mode 100644 index 677a6fc2..00000000 --- a/packages/_boilerplate-generator/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.build* diff --git a/packages/_boilerplate-generator/.npm/package/.gitignore b/packages/_boilerplate-generator/.npm/package/.gitignore deleted file mode 100644 index 3c3629e6..00000000 --- a/packages/_boilerplate-generator/.npm/package/.gitignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/packages/_boilerplate-generator/.npm/package/README b/packages/_boilerplate-generator/.npm/package/README deleted file mode 100644 index 3d492553..00000000 --- a/packages/_boilerplate-generator/.npm/package/README +++ /dev/null @@ -1,7 +0,0 @@ -This directory and the files immediately inside it are automatically generated -when you change this package's NPM dependencies. Commit the files in this -directory (npm-shrinkwrap.json, .gitignore, and this README) to source control -so that others run the same versions of sub-dependencies. - -You should NOT check in the node_modules directory that Meteor automatically -creates; if you are using git, the .gitignore file tells git to ignore it. diff --git a/packages/_boilerplate-generator/.npm/package/npm-shrinkwrap.json b/packages/_boilerplate-generator/.npm/package/npm-shrinkwrap.json deleted file mode 100644 index f682982f..00000000 --- a/packages/_boilerplate-generator/.npm/package/npm-shrinkwrap.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "lockfileVersion": 1, - "dependencies": { - "bluebird": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", - "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=" - }, - "combined-stream2": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/combined-stream2/-/combined-stream2-1.1.2.tgz", - "integrity": "sha1-9uFLegFWZvjHsKH6xQYkAWSsNXA=" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "stream-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-length/-/stream-length-1.0.2.tgz", - "integrity": "sha1-gnfzy+5JpNqrz9tOL0qbXp8snwA=" - } - } -} diff --git a/packages/_boilerplate-generator/README.md b/packages/_boilerplate-generator/README.md deleted file mode 100644 index 8521a83c..00000000 --- a/packages/_boilerplate-generator/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# boilerplate-generator -[Source code of released version](https://github.com/meteor/meteor/tree/master/packages/boilerplate-generator) | [Source code of development version](https://github.com/meteor/meteor/tree/devel/packages/boilerplate-generator) -*** - -This is an internal Meteor package. \ No newline at end of file diff --git a/packages/_boilerplate-generator/generator.js b/packages/_boilerplate-generator/generator.js deleted file mode 100644 index ecfc9988..00000000 --- a/packages/_boilerplate-generator/generator.js +++ /dev/null @@ -1,165 +0,0 @@ -import { readFile } from 'fs'; -import { create as createStream } from "combined-stream2"; - -import WebBrowserTemplate from './template-web.browser'; -import WebCordovaTemplate from './template-web.cordova'; - -// Copied from webapp_server -const readUtf8FileSync = filename => Meteor.wrapAsync(readFile)(filename, 'utf8'); - -const identity = value => value; - -function appendToStream(chunk, stream) { - if (typeof chunk === "string") { - stream.append(Buffer.from(chunk, "utf8")); - } else if (Buffer.isBuffer(chunk) || - typeof chunk.read === "function") { - stream.append(chunk); - } -} - -let shouldWarnAboutToHTMLDeprecation = ! Meteor.isProduction; - -export class Boilerplate { - constructor(arch, manifest, options = {}) { - const { headTemplate, closeTemplate } = _getTemplate(arch); - this.headTemplate = headTemplate; - this.closeTemplate = closeTemplate; - this.baseData = null; - - this._generateBoilerplateFromManifest( - manifest, - options - ); - } - - toHTML(extraData) { - if (shouldWarnAboutToHTMLDeprecation) { - shouldWarnAboutToHTMLDeprecation = false; - console.error( - "The Boilerplate#toHTML method has been deprecated. " + - "Please use Boilerplate#toHTMLStream instead." - ); - console.trace(); - } - - // Calling .await() requires a Fiber. - return toHTMLAsync(extraData).await(); - } - - // Returns a Promise that resolves to a string of HTML. - toHTMLAsync(extraData) { - return new Promise((resolve, reject) => { - const stream = this.toHTMLStream(extraData); - const chunks = []; - stream.on("data", chunk => chunks.push(chunk)); - stream.on("end", () => { - resolve(Buffer.concat(chunks).toString("utf8")); - }); - stream.on("error", reject); - }); - } - - // The 'extraData' argument can be used to extend 'self.baseData'. Its - // purpose is to allow you to specify data that you might not know at - // the time that you construct the Boilerplate object. (e.g. it is used - // by 'webapp' to specify data that is only known at request-time). - // this returns a stream - toHTMLStream(extraData) { - if (!this.baseData || !this.headTemplate || !this.closeTemplate) { - throw new Error('Boilerplate did not instantiate correctly.'); - } - - const data = {...this.baseData, ...extraData}; - const start = "\n" + this.headTemplate(data); - - const { body, dynamicBody } = data; - - const end = this.closeTemplate(data); - const response = createStream(); - - appendToStream(start, response); - - if (body) { - appendToStream(body, response); - } - - if (dynamicBody) { - appendToStream(dynamicBody, response); - } - - appendToStream(end, response); - - return response; - } - - // XXX Exported to allow client-side only changes to rebuild the boilerplate - // without requiring a full server restart. - // Produces an HTML string with given manifest and boilerplateSource. - // Optionally takes urlMapper in case urls from manifest need to be prefixed - // or rewritten. - // Optionally takes pathMapper for resolving relative file system paths. - // Optionally allows to override fields of the data context. - _generateBoilerplateFromManifest(manifest, { - urlMapper = identity, - pathMapper = identity, - baseDataExtension, - inline, - } = {}) { - - const boilerplateBaseData = { - css: [], - js: [], - head: '', - body: '', - meteorManifest: JSON.stringify(manifest), - ...baseDataExtension, - }; - - manifest.forEach(item => { - const urlPath = urlMapper(item.url); - const itemObj = { url: urlPath }; - - if (inline) { - itemObj.scriptContent = readUtf8FileSync( - pathMapper(item.path)); - itemObj.inline = true; - } - - if (item.type === 'css' && item.where === 'client') { - boilerplateBaseData.css.push(itemObj); - } - - if (item.type === 'js' && item.where === 'client' && - // Dynamic JS modules should not be loaded eagerly in the - // initial HTML of the app. - !item.path.startsWith('dynamic/')) { - boilerplateBaseData.js.push(itemObj); - } - - if (item.type === 'head') { - boilerplateBaseData.head = - readUtf8FileSync(pathMapper(item.path)); - } - - if (item.type === 'body') { - boilerplateBaseData.body = - readUtf8FileSync(pathMapper(item.path)); - } - }); - - this.baseData = boilerplateBaseData; - } -}; - -// Returns a template function that, when called, produces the boilerplate -// html as a string. -const _getTemplate = arch => { - if (arch === 'web.browser') { - return WebBrowserTemplate; - } else if (arch === 'web.cordova') { - return WebCordovaTemplate; - } else { - throw new Error('Unsupported arch: ' + arch); - } -}; diff --git a/packages/_boilerplate-generator/package.js b/packages/_boilerplate-generator/package.js deleted file mode 100644 index 11d38721..00000000 --- a/packages/_boilerplate-generator/package.js +++ /dev/null @@ -1,16 +0,0 @@ -Package.describe({ - summary: "Generates the boilerplate html from program's manifest", - version: '1.4.0', - name: 'boilerplate-generator' -}); - -Npm.depends({ - "combined-stream2": "1.1.2" -}); - -Package.onUse(api => { - api.use('ecmascript'); - api.use('underscore', 'server'); - api.mainModule('generator.js', 'server'); - api.export('Boilerplate', 'server'); -}); diff --git a/packages/_boilerplate-generator/template-web.browser.js b/packages/_boilerplate-generator/template-web.browser.js deleted file mode 100644 index db992711..00000000 --- a/packages/_boilerplate-generator/template-web.browser.js +++ /dev/null @@ -1,70 +0,0 @@ -import template from './template'; - -export const headTemplate = ({ - css, - htmlAttributes, - bundledJsCssUrlRewriteHook, - head, - dynamicHead, -}) => [ - ' template(' <%= attrName %>="<%- attrValue %>"')({ - attrName: key, - attrValue: htmlAttributes[key], - }) - ).join('') + '>', - '', - - head, - dynamicHead, - - ...(css || []).map(file => - template(' ')({ - href: bundledJsCssUrlRewriteHook(file.url), - }) - ), - - '', - '', -].join('\n'); - -// Template function for rendering the boilerplate html for browsers -export const closeTemplate = ({ - meteorRuntimeConfig, - rootUrlPathPrefix, - inlineScriptsAllowed, - js, - additionalStaticJs, - bundledJsCssUrlRewriteHook, -}) => [ - '', - inlineScriptsAllowed - ? template(' ')({ - conf: meteorRuntimeConfig, - }) - : template(' ')({ - src: rootUrlPathPrefix, - }), - '', - - ...(js || []).map(file => - template(' ')({ - src: bundledJsCssUrlRewriteHook(file.url), - }) - ), - - ...(additionalStaticJs || []).map(({ contents, pathname }) => ( - inlineScriptsAllowed - ? template(' ')({ - contents, - }) - : template(' ')({ - src: rootUrlPathPrefix + pathname, - }) - )), - - '', - '', - '', - '' -].join('\n'); diff --git a/packages/_boilerplate-generator/template-web.cordova.js b/packages/_boilerplate-generator/template-web.cordova.js deleted file mode 100644 index a2870e30..00000000 --- a/packages/_boilerplate-generator/template-web.cordova.js +++ /dev/null @@ -1,72 +0,0 @@ -import template from './template'; - -// Template function for rendering the boilerplate html for cordova -export const headTemplate = ({ - meteorRuntimeConfig, - rootUrlPathPrefix, - inlineScriptsAllowed, - css, - js, - additionalStaticJs, - htmlAttributes, - bundledJsCssUrlRewriteHook, - head, - dynamicHead, -}) => [ - '', - '', - ' ', - ' ', - ' ', - ' ', - ' ', - - // We are explicitly not using bundledJsCssUrlRewriteHook: in cordova we serve assets up directly from disk, so rewriting the URL does not make sense - ...(css || []).map(file => - template(' ')({ - href: file.url, - }) - ), - - ' ', - '', - ' ', - - ...(js || []).map(file => - template(' ')({ - src: file.url, - }) - ), - - ...(additionalStaticJs || []).map(({ contents, pathname }) => ( - inlineScriptsAllowed - ? template(' ')({ - contents, - }) - : template(' ')({ - src: rootUrlPathPrefix + pathname - }) - )), - '', - head, - '', - '', - '', -].join('\n'); - -export function closeTemplate() { - return "\n"; -} diff --git a/packages/_boilerplate-generator/template.js b/packages/_boilerplate-generator/template.js deleted file mode 100644 index 1f702ada..00000000 --- a/packages/_boilerplate-generator/template.js +++ /dev/null @@ -1,14 +0,0 @@ -import { _ } from 'meteor/underscore'; - -// As identified in issue #9149, when an application overrides the default -// _.template settings using _.templateSettings, those new settings are -// used anywhere _.template is used, including within the -// boilerplate-generator. To handle this, _.template settings that have -// been verified to work are overridden here on each _.template call. -export default function template(text) { - return _.template(text, null, { - evaluate : /<%([\s\S]+?)%>/g, - interpolate : /<%=([\s\S]+?)%>/g, - escape : /<%-([\s\S]+?)%>/g, - }); -};