Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions boilerplate/.meteor/.finished-upgraders
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,4 @@ notices-for-facebook-graph-api-2
1.4.3-split-account-service-packages
1.5-add-dynamic-import-package
1.7-split-underscore-from-meteor-base
1.8.3-split-jquery-from-blaze
31 changes: 17 additions & 14 deletions boilerplate/.meteor/packages
Original file line number Diff line number Diff line change
@@ -1,51 +1,54 @@
# Meteor packages used by this project, one per line.

# Core Packages
meteor-base@1.4.0 # Packages every Meteor app needs to have
mobile-experience@1.0.5 # Packages for a great mobile user experience
dynamic-import@0.5.1 # Runtime support for Meteor 1.5 dynamic import(...) syntax
shell-server@0.4.0 # Server-side component of the `meteor shell` command
meteor-base@1.5.1 # Packages every Meteor app needs to have
mobile-experience@1.1.0 # Packages for a great mobile user experience
dynamic-import@0.7.2 # Runtime support for Meteor 1.5 dynamic import(...) syntax
shell-server@0.5.0 # Server-side component of the `meteor shell` command
es5-shim@4.8.0 # ECMAScript 5 compatibility for older browsers
ecmascript@0.13.0 # Enable ECMAScript2015+ syntax in app code
static-html@1.2.2 # Define static page content in .html files
ecmascript@0.16.1 # Enable ECMAScript2015+ syntax in app code
static-html@1.3.2 # Define static page content in .html files

# JS/Styles minifier
standard-minifier-js@2.5.0 # JS minifier run for production mode
standard-minifier-css@1.5.4 # Reduces amount of white-space parsing CSS with ParseCSS
standard-minifier-js@2.8.0 # JS minifier run for production mode
standard-minifier-css@1.7.4 # Reduces amount of white-space parsing CSS with ParseCSS

# Reactive
reactive-var@1.0.11 # Reactive variable for tracker
tracker@1.2.0 # Meteor's client-side reactive programming library
session@1.2.0 # Session variable. Provides a global object on the client

# Data
mongo@1.6.2 # The database Meteor supports right now
mongo@1.13.0 # The database Meteor supports right now
aldeed:collection2@3.0.0 # Allows you to attach a schema to a Mongo.Collection
check@1.3.1 # Package for argument checking and general pattern matching
deanius:promise@3.1.3 # Utilities for Promise-based wrappers, method calls, helpers and HTTP in Meteor

# Vue.js Wrapper Meteor
akryum:vue # Integrate Vue with Meteor
akryum:vue-component # VueJS single-file components that hot-reloads
akryum:vue-ssr # Vue Server Side Rendering
# akryum:vue-ssr # Vue Server Side Rendering

# Stylus
akryum:vue-stylus # Add stylus support for vue components

# Accouns
accounts-password@1.5.1 # Contains a full system for password-based authentication
accounts-base@1.4.5 # The basic functions necessary for user accounts and lets other packages register login service
alanning:roles@1.2.16 # Authorization package for Meteor
accounts-password@2.2.0 # Contains a full system for password-based authentication
accounts-base@2.2.0 # The basic functions necessary for user accounts and lets other packages register login service
# alanning:roles@1.2.16 # Authorization package for Meteor

# Security
audit-argument-checks@1.0.7 # This package causes Meteor to require that all arguments passed to methods and publish functions are checked
mdg:validated-method@1.1.0 # Define Meteor methods in a structured way, with mixins
mdg:validation-error@0.5.1 # Validation error to indicate that a method call has failed and the client can fix it by changing specific arguments
ddp-rate-limiter@1.0.7 # A rate limiter added directly to DDP that provides an API to add rules to Meteor methods and collections.
ddp-rate-limiter@1.1.0 # A rate limiter added directly to DDP that provides an API to add rules to Meteor methods and collections.

# Testing
meteortesting:mocha@1.0.0 # A Mocha test driver package for Meteor
underscore@1.0.10
ostrio:files
froala:editor
jquery # Helpful client-side library
nathantreid:vue-typescript
nathantreid:vue-typescript-babel
typescript@4.4.1
2 changes: 1 addition & 1 deletion boilerplate/.meteor/release
Original file line number Diff line number Diff line change
@@ -1 +1 @@
METEOR@1.8.2
METEOR@2.5.3
156 changes: 75 additions & 81 deletions boilerplate/.meteor/versions
Original file line number Diff line number Diff line change
@@ -1,114 +1,108 @@
accounts-base@1.4.5
accounts-password@1.5.2
accounts-base@2.2.0
accounts-password@2.2.0
akryum:npm-check@0.1.2
akryum:vue@1.2.3
akryum:vue-component@0.15.1
akryum:vue-component@0.15.2
akryum:vue-component-dev-client@0.4.7
akryum:vue-component-dev-server@0.1.4
akryum:vue-ssr@0.4.0
akryum:vue-stylus@0.1.3
alanning:roles@1.2.19
aldeed:collection2@3.0.4
aldeed:collection2@3.5.0
allow-deny@1.1.0
audit-argument-checks@1.0.7
autoupdate@1.6.0
babel-compiler@7.4.1
babel-runtime@1.4.0
autoupdate@1.8.0
babel-compiler@7.8.0
babel-runtime@1.5.0
barbatus:typescript-compiler@0.10.0
barbatus:typescript-runtime@1.1.0
base64@1.0.12
binary-heap@1.0.11
blaze-tools@1.0.10
boilerplate-generator@1.6.0
caching-compiler@1.2.1
caching-html-compiler@1.1.3
callback-hook@1.2.0
blaze-tools@1.1.2
boilerplate-generator@1.7.1
caching-compiler@1.2.2
caching-html-compiler@1.2.1
callback-hook@1.4.0
check@1.3.1
chuangbo:cookie@1.1.0
coffeescript@1.0.17
cosmos:browserify@0.10.0
ddp@1.4.0
ddp-client@2.3.3
ddp-client@2.5.0
ddp-common@1.4.0
ddp-rate-limiter@1.0.7
ddp-server@2.3.0
ddp-rate-limiter@1.1.0
ddp-server@2.5.0
deanius:promise@3.1.3
deps@1.0.12
diff-sequence@1.1.1
dynamic-import@0.5.1
ecmascript@0.13.1
ecmascript-runtime@0.7.0
ecmascript-runtime-client@0.9.0
ecmascript-runtime-server@0.8.0
ejson@1.1.0
email@1.2.3
dynamic-import@0.7.2
ecmascript@0.16.1
ecmascript-runtime@0.8.0
ecmascript-runtime-client@0.12.1
ecmascript-runtime-server@0.11.0
ejson@1.1.1
email@2.2.0
es5-shim@4.8.0
fetch@0.1.1
fortawesome:fontawesome@4.4.0_1
froala:editor@2.9.6
fortawesome:fontawesome@4.7.0
froala:editor@4.0.1
geojson-utils@1.0.10
hot-code-push@1.0.4
html-tools@1.0.11
htmljs@1.0.11
http@1.4.2
id-map@1.1.0
inter-process-messaging@0.1.0
jquery@1.11.11
lamhieu:meteorx@2.0.1
launch-screen@1.1.1
livedata@1.0.18
lmieulet:meteor-coverage@1.1.4
html-tools@1.1.2
htmljs@1.1.1
http@1.4.4
id-map@1.1.1
inter-process-messaging@0.1.1
jquery@3.0.0
launch-screen@1.3.0
lmieulet:meteor-coverage@3.2.0
localstorage@1.2.0
logging@1.1.20
logging@1.3.1
mdg:validated-method@1.2.0
mdg:validation-error@0.5.1
meteor@1.9.3
meteor-base@1.4.0
meteorhacks:picker@1.0.3
meteortesting:browser-tests@1.0.0
meteortesting:mocha@1.1.3
meteortesting:mocha-core@1.0.1
minifier-css@1.4.3
minifier-js@2.5.1
minimongo@1.4.5
mobile-experience@1.0.5
mobile-status-bar@1.0.14
modern-browsers@0.1.4
modules@0.14.0
modules-runtime@0.11.0
mongo@1.7.0
mongo-decimal@0.1.1
meteor@1.10.0
meteor-base@1.5.1
meteortesting:browser-tests@1.3.5
meteortesting:mocha@1.1.5
meteortesting:mocha-core@7.2.0
minifier-css@1.6.0
minifier-js@2.7.3
minimongo@1.7.0
mobile-experience@1.1.0
mobile-status-bar@1.1.0
modern-browsers@0.1.7
modules@0.18.0
modules-runtime@0.12.0
mongo@1.13.0
mongo-decimal@0.1.2
mongo-dev-server@1.1.0
mongo-id@1.0.7
npm-bcrypt@0.9.3
npm-mongo@3.2.0
mongo-id@1.0.8
nathantreid:vue-typescript@0.0.2
nathantreid:vue-typescript-babel@1.0.3
npm-mongo@3.9.1
ordered-dict@1.1.0
ostrio:cookies@2.5.0
ostrio:files@1.13.0
promise@0.11.2
raix:eventemitter@0.1.3
random@1.1.0
ostrio:cookies@2.7.0
ostrio:files@2.0.1
promise@0.12.0
raix:eventemitter@1.0.0
random@1.2.0
rate-limit@1.0.9
react-fast-refresh@0.2.2
reactive-dict@1.3.0
reactive-var@1.0.11
reload@1.3.0
reload@1.3.1
retry@1.1.0
routepolicy@1.1.0
server-render@0.3.1
service-configuration@1.0.11
routepolicy@1.1.1
service-configuration@1.3.0
session@1.2.0
sha@1.0.9
shell-server@0.4.0
socket-stream-client@0.2.2
spacebars-compiler@1.1.3
srp@1.0.12
standard-minifier-css@1.5.4
standard-minifier-js@2.5.2
staringatlights:fast-render@3.2.0
staringatlights:inject-data@2.3.0
static-html@1.2.2
templating-tools@1.1.2
tmeasday:check-npm-versions@0.3.2
shell-server@0.5.0
socket-stream-client@0.4.0
spacebars-compiler@1.3.0
standard-minifier-css@1.7.4
standard-minifier-js@2.8.0
static-html@1.3.2
templating-tools@1.2.1
tmeasday:check-npm-versions@1.0.2
tracker@1.2.0
typescript@4.4.1
underscore@1.0.10
url@1.2.0
webapp@1.7.5
webapp-hashing@1.0.9
url@1.3.2
webapp@1.13.0
webapp-hashing@1.1.0
5 changes: 4 additions & 1 deletion boilerplate/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,7 @@

## Contributors

Check the [issues](https://github.com/alexandesigner/lets/issues) that are open and if you have a new idea open an issue, you will be welcome to discuss an improvement, bug or critical
Check the [issues](https://github.com/alexandesigner/lets/issues) that are open and if you have a new idea open an issue, you will be welcome to discuss an improvement, bug or critical

** David-bfg contributed updates to allow project to build with the latest Meteor 2.5 release. Vue server side rendering and roles have been removed due to dependency issues with the latest meteor.
Removed packages can be found commented out here boilerplate/.meteor/packages . If your project requires these features you may uncomment the packages and work on integrating them into your project.
3 changes: 3 additions & 0 deletions boilerplate/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@
"vuex-router-sync": "^5.0.0"
},
"devDependencies": {
"@babel/core": "^7.16.7",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/plugin-transform-typescript": "^7.16.7",
"babel-eslint": "^10.0.3",
"eslint": "^6.7.2",
"eslint-config-standard": "^14.1.0",
Expand Down
102 changes: 51 additions & 51 deletions boilerplate/src/server/index.js
Original file line number Diff line number Diff line change
@@ -1,57 +1,57 @@
import '../imports/startup/server'

import { VueSSR } from 'meteor/akryum:vue-ssr'
import CreateApp from '../imports/app'
// import { VueSSR } from 'meteor/akryum:vue-ssr'
// import CreateApp from '../imports/app'

const isDev = process.env.NODE_ENV !== 'production'

// Simple createApp
VueSSR.createApp = function (context) {
const s = isDev && Date.now()

return new Promise((resolve, reject) => {
const { app, router, store } = CreateApp({
ssr: true
})

// set router's location
router.push(context.url)

// wait until router has resolved possible async hooks
router.onReady(() => {
const matchedComponents = router.getMatchedComponents()

// no matched routes
if (!matchedComponents.length) {
reject({ code: 404 })
}

context.js = ''

// Call preFetch hooks on components matched by the route.
// A preFetch hook dispatches a store action and returns a Promise,
// which is resolved when the action is complete and store state has been
// updated.
Promise.all(matchedComponents.map(component => {
return component.asyncData && component.asyncData({
store,
route: router.currentRoute
})
})).then(() => {
context.rendered = () => {
isDev && console.log(`[SSR] Data prefetch: ${Date.now() - s}ms`)

// After all preFetch hooks are resolved, our store is now
// filled with the state needed to render the app.
// Expose the state on the render context, and let the request handler
// inline the state in the HTML response. This allows the client-side
// store to pick-up the server-side state without having to duplicate
// the initial data fetching on the client.

context.js += `window.__INITIAL_STATE__=${JSON.stringify(store.state)};`
}
resolve(app)
}).catch(reject)
})
})
}
// VueSSR.createApp = function (context) {
// const s = isDev && Date.now()

// return new Promise((resolve, reject) => {
// const { app, router, store } = CreateApp({
// ssr: true
// })

// // set router's location
// router.push(context.url)

// // wait until router has resolved possible async hooks
// router.onReady(() => {
// const matchedComponents = router.getMatchedComponents()

// // no matched routes
// if (!matchedComponents.length) {
// reject({ code: 404 })
// }

// context.js = ''

// // Call preFetch hooks on components matched by the route.
// // A preFetch hook dispatches a store action and returns a Promise,
// // which is resolved when the action is complete and store state has been
// // updated.
// Promise.all(matchedComponents.map(component => {
// return component.asyncData && component.asyncData({
// store,
// route: router.currentRoute
// })
// })).then(() => {
// context.rendered = () => {
// isDev && console.log(`[SSR] Data prefetch: ${Date.now() - s}ms`)

// // After all preFetch hooks are resolved, our store is now
// // filled with the state needed to render the app.
// // Expose the state on the render context, and let the request handler
// // inline the state in the HTML response. This allows the client-side
// // store to pick-up the server-side state without having to duplicate
// // the initial data fetching on the client.

// context.js += `window.__INITIAL_STATE__=${JSON.stringify(store.state)};`
// }
// resolve(app)
// }).catch(reject)
// })
// })
// }