meteor
This commit is contained in:
commit
032143d9f7
22 changed files with 934 additions and 0 deletions
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
node_modules/
|
||||
/.cache
|
||||
/.meteor
|
7
client/main.html
Normal file
7
client/main.html
Normal file
|
@ -0,0 +1,7 @@
|
|||
<head>
|
||||
<title>zhao</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
</body>
|
12
client/main.js
Normal file
12
client/main.js
Normal file
|
@ -0,0 +1,12 @@
|
|||
import Vue from 'vue'
|
||||
|
||||
import '../imports/ui/plugins'
|
||||
|
||||
import App from '../imports/ui/App.vue'
|
||||
|
||||
Meteor.startup(() => {
|
||||
new Vue({
|
||||
el: '#app',
|
||||
...App,
|
||||
})
|
||||
})
|
3
imports/api/collections/Links.js
Normal file
3
imports/api/collections/Links.js
Normal file
|
@ -0,0 +1,3 @@
|
|||
import { Mongo } from 'meteor/mongo';
|
||||
|
||||
export default new Mongo.Collection('links');
|
24
imports/api/collections/Links.tests.js
Normal file
24
imports/api/collections/Links.tests.js
Normal file
|
@ -0,0 +1,24 @@
|
|||
// Tests for the behavior of the links collection
|
||||
//
|
||||
// https://guide.meteor.com/testing.html
|
||||
|
||||
import { Meteor } from 'meteor/meteor';
|
||||
import { assert } from 'chai';
|
||||
import Links from './Links.js';
|
||||
|
||||
if (Meteor.isServer) {
|
||||
describe('links collection', function () {
|
||||
it('insert correctly', function () {
|
||||
const linkId = Links.insert({
|
||||
title: 'meteor homepage',
|
||||
url: 'https://www.meteor.com',
|
||||
});
|
||||
const added = Links.find({ _id: linkId });
|
||||
const collectionName = added._getCollectionName();
|
||||
const count = added.count();
|
||||
|
||||
assert.equal(collectionName, 'links');
|
||||
assert.equal(count, 1);
|
||||
});
|
||||
});
|
||||
}
|
3
imports/api/collections/Rooms.js
Normal file
3
imports/api/collections/Rooms.js
Normal file
|
@ -0,0 +1,3 @@
|
|||
import { Mongo } from "meteor/mongo";
|
||||
|
||||
export default new Mongo.Collection("rooms");
|
32
imports/api/fixtures.js
Normal file
32
imports/api/fixtures.js
Normal file
|
@ -0,0 +1,32 @@
|
|||
import { Meteor } from 'meteor/meteor';
|
||||
import Links from './collections/Links.js';
|
||||
|
||||
Meteor.startup(() => {
|
||||
// if the Links collection is empty
|
||||
if (Links.find().count() === 0) {
|
||||
const data = [
|
||||
{
|
||||
title: 'Do the Tutorial',
|
||||
url: 'https://www.meteor.com/try',
|
||||
createdAt: new Date(),
|
||||
},
|
||||
{
|
||||
title: 'Follow the Guide',
|
||||
url: 'http://guide.meteor.com',
|
||||
createdAt: new Date(),
|
||||
},
|
||||
{
|
||||
title: 'Read the Docs',
|
||||
url: 'https://docs.meteor.com',
|
||||
createdAt: new Date(),
|
||||
},
|
||||
{
|
||||
title: 'Discussions',
|
||||
url: 'https://forums.meteor.com',
|
||||
createdAt: new Date(),
|
||||
},
|
||||
];
|
||||
|
||||
data.forEach(link => Links.insert(link));
|
||||
}
|
||||
});
|
16
imports/api/methods/createLink.js
Normal file
16
imports/api/methods/createLink.js
Normal file
|
@ -0,0 +1,16 @@
|
|||
import { Meteor } from 'meteor/meteor';
|
||||
import { check } from 'meteor/check';
|
||||
import Links from '../collections/Links.js';
|
||||
|
||||
Meteor.methods({
|
||||
'createLink'(title, url) {
|
||||
check(url, String);
|
||||
check(title, String);
|
||||
|
||||
return Links.insert({
|
||||
url,
|
||||
title,
|
||||
createdAt: new Date(),
|
||||
});
|
||||
},
|
||||
});
|
20
imports/api/methods/createLink.tests.js
Normal file
20
imports/api/methods/createLink.tests.js
Normal file
|
@ -0,0 +1,20 @@
|
|||
import { Meteor } from 'meteor/meteor';
|
||||
import { assert } from 'chai';
|
||||
import Links from '../collections/Links.js';
|
||||
import './methods.js';
|
||||
|
||||
if (Meteor.isServer) {
|
||||
describe('method: createLink', function () {
|
||||
beforeEach(function () {
|
||||
Links.remove({});
|
||||
});
|
||||
|
||||
it('can add a new link', function () {
|
||||
const addLink = Meteor.server.method_handlers['createLink'];
|
||||
|
||||
addLink.apply({}, ['meteor.com', 'https://www.meteor.com']);
|
||||
|
||||
assert.equal(Links.find().count(), 1);
|
||||
});
|
||||
});
|
||||
}
|
1
imports/api/methods/index.js
Normal file
1
imports/api/methods/index.js
Normal file
|
@ -0,0 +1 @@
|
|||
import './createLink'
|
1
imports/api/publications/index.js
Normal file
1
imports/api/publications/index.js
Normal file
|
@ -0,0 +1 @@
|
|||
import './links'
|
6
imports/api/publications/links.js
Normal file
6
imports/api/publications/links.js
Normal file
|
@ -0,0 +1,6 @@
|
|||
import { Meteor } from 'meteor/meteor';
|
||||
import Links from '../collections/Links.js';
|
||||
|
||||
Meteor.publish('links', function () {
|
||||
return Links.find();
|
||||
});
|
22
imports/api/publications/links.tests.js
Normal file
22
imports/api/publications/links.tests.js
Normal file
|
@ -0,0 +1,22 @@
|
|||
import { assert } from 'chai'
|
||||
import { PublicationCollector } from 'meteor/johanbrook:publication-collector'
|
||||
import Links from '../collections/Links.js'
|
||||
import './publications.js'
|
||||
|
||||
describe('Publish links', function () {
|
||||
beforeEach(function () {
|
||||
Links.remove({})
|
||||
Links.insert({
|
||||
title: 'meteor homepage',
|
||||
url: 'https://www.meteor.com'
|
||||
})
|
||||
})
|
||||
|
||||
it('sends all links', function (done) {
|
||||
const collector = new PublicationCollector()
|
||||
collector.collect('links', (collections) => {
|
||||
assert.equal(collections.links.length, 1)
|
||||
done()
|
||||
})
|
||||
})
|
||||
})
|
37
imports/ui/App.vue
Normal file
37
imports/ui/App.vue
Normal file
|
@ -0,0 +1,37 @@
|
|||
<template>
|
||||
<div>
|
||||
<h1>Welcome to Meteor!</h1>
|
||||
<hello/>
|
||||
<info/>
|
||||
|
||||
<component v-bind:is="whatScreen"></component>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Hello from './components/Hello.vue'
|
||||
import Info from './components/Info.vue'
|
||||
import Lobby from './components/Lobby.vue'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
Hello,
|
||||
Info,
|
||||
Lobby,
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
currentRoom: null,
|
||||
whatScreen: Lobby,
|
||||
};
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
padding: 10px;
|
||||
}
|
||||
</style>
|
27
imports/ui/components/Hello.vue
Normal file
27
imports/ui/components/Hello.vue
Normal file
|
@ -0,0 +1,27 @@
|
|||
<template>
|
||||
<div>
|
||||
<button @click="increment">Click Me</button>
|
||||
<p>You've pressed the button {{counter}} times.</p>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
counter: 0,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
increment() {
|
||||
this.counter += 1
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
p {
|
||||
font-family: serif;
|
||||
}
|
||||
</style>
|
55
imports/ui/components/Info.vue
Normal file
55
imports/ui/components/Info.vue
Normal file
|
@ -0,0 +1,55 @@
|
|||
<template>
|
||||
<div>
|
||||
<h2>Learn Meteor!</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<form class="info-link-add">
|
||||
<input type="text" v-model="title" name="title" placeholder="Title" required>
|
||||
<input type="url" v-model="url" name="url" placeholder="Url" required>
|
||||
<input type="submit" name="submit" @click="submit($event)" value="Add new link">
|
||||
</form>
|
||||
</li>
|
||||
<li v-for="link in links"><a :href="link.url" target="_blank">{{link.title}}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Links from '../../api/collections/Links'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
title: "",
|
||||
url: "",
|
||||
}
|
||||
},
|
||||
meteor: {
|
||||
$subscribe: {
|
||||
'links': [],
|
||||
},
|
||||
links () {
|
||||
return Links.find({})
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
submit(event) {
|
||||
event.preventDefault()
|
||||
Meteor.call('createLink', this.title, this.url, (error) => {
|
||||
if (error) {
|
||||
alert(error.error)
|
||||
} else {
|
||||
this.title = ''
|
||||
this.url = ''
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
ul {
|
||||
font-family: monospace;
|
||||
}
|
||||
</style>
|
16
imports/ui/components/Lobby.vue
Normal file
16
imports/ui/components/Lobby.vue
Normal file
|
@ -0,0 +1,16 @@
|
|||
<template>
|
||||
<div>
|
||||
<h1>LOBBY</h1>
|
||||
|
||||
<button id="newgame-btn">new game</button>
|
||||
<button id="joingame-btn">join game</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
</style>
|
4
imports/ui/plugins.js
Normal file
4
imports/ui/plugins.js
Normal file
|
@ -0,0 +1,4 @@
|
|||
import Vue from 'vue'
|
||||
import VueMeteorTracker from 'vue-meteor-tracker'
|
||||
|
||||
Vue.use(VueMeteorTracker)
|
599
package-lock.json
generated
Normal file
599
package-lock.json
generated
Normal file
|
@ -0,0 +1,599 @@
|
|||
{
|
||||
"name": "zhao",
|
||||
"requires": true,
|
||||
"lockfileVersion": 1,
|
||||
"dependencies": {
|
||||
"@babel/runtime": {
|
||||
"version": "7.12.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
|
||||
"integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
|
||||
"requires": {
|
||||
"regenerator-runtime": "^0.13.4"
|
||||
}
|
||||
},
|
||||
"lodash.omit": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz",
|
||||
"integrity": "sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA="
|
||||
},
|
||||
"meteor-node-stubs": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-1.0.1.tgz",
|
||||
"integrity": "sha512-I4PE/z7eAl45XEsebHA4pcQbgjqEdK3EBGgiUoIZBi3bMQcMq6blLWZo+WdtK4Or9X4NJOiYWw4GmHiubr3egA==",
|
||||
"requires": {
|
||||
"assert": "^1.4.1",
|
||||
"browserify-zlib": "^0.2.0",
|
||||
"buffer": "^5.2.1",
|
||||
"console-browserify": "^1.1.0",
|
||||
"constants-browserify": "^1.0.0",
|
||||
"crypto-browserify": "^3.12.0",
|
||||
"domain-browser": "^1.2.0",
|
||||
"events": "^3.0.0",
|
||||
"https-browserify": "^1.0.0",
|
||||
"os-browserify": "^0.3.0",
|
||||
"path-browserify": "^1.0.0",
|
||||
"process": "^0.11.10",
|
||||
"punycode": "^2.1.1",
|
||||
"querystring-es3": "^0.2.1",
|
||||
"readable-stream": "^3.3.0",
|
||||
"stream-browserify": "^2.0.2",
|
||||
"stream-http": "^3.0.0",
|
||||
"string_decoder": "^1.2.0",
|
||||
"timers-browserify": "^2.0.10",
|
||||
"tty-browserify": "0.0.1",
|
||||
"url": "^0.11.0",
|
||||
"util": "^0.11.1",
|
||||
"vm-browserify": "^1.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"asn1.js": {
|
||||
"version": "4.10.1",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"bn.js": "^4.0.0",
|
||||
"inherits": "^2.0.1",
|
||||
"minimalistic-assert": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"assert": {
|
||||
"version": "1.4.1",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"util": "0.10.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"util": {
|
||||
"version": "0.10.3",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"inherits": "2.0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"base64-js": {
|
||||
"version": "1.3.0",
|
||||
"bundled": true
|
||||
},
|
||||
"bn.js": {
|
||||
"version": "4.11.8",
|
||||
"bundled": true
|
||||
},
|
||||
"brorand": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true
|
||||
},
|
||||
"browserify-aes": {
|
||||
"version": "1.2.0",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"buffer-xor": "^1.0.3",
|
||||
"cipher-base": "^1.0.0",
|
||||
"create-hash": "^1.1.0",
|
||||
"evp_bytestokey": "^1.0.3",
|
||||
"inherits": "^2.0.1",
|
||||
"safe-buffer": "^5.0.1"
|
||||
}
|
||||
},
|
||||
"browserify-cipher": {
|
||||
"version": "1.0.1",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"browserify-aes": "^1.0.4",
|
||||
"browserify-des": "^1.0.0",
|
||||
"evp_bytestokey": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"browserify-des": {
|
||||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"cipher-base": "^1.0.1",
|
||||
"des.js": "^1.0.0",
|
||||
"inherits": "^2.0.1",
|
||||
"safe-buffer": "^5.1.2"
|
||||
}
|
||||
},
|
||||
"browserify-rsa": {
|
||||
"version": "4.0.1",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"bn.js": "^4.1.0",
|
||||
"randombytes": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"browserify-sign": {
|
||||
"version": "4.0.4",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"bn.js": "^4.1.1",
|
||||
"browserify-rsa": "^4.0.0",
|
||||
"create-hash": "^1.1.0",
|
||||
"create-hmac": "^1.1.2",
|
||||
"elliptic": "^6.0.0",
|
||||
"inherits": "^2.0.1",
|
||||
"parse-asn1": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"browserify-zlib": {
|
||||
"version": "0.2.0",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"pako": "~1.0.5"
|
||||
}
|
||||
},
|
||||
"buffer": {
|
||||
"version": "5.2.1",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"base64-js": "^1.0.2",
|
||||
"ieee754": "^1.1.4"
|
||||
}
|
||||
},
|
||||
"buffer-xor": {
|
||||
"version": "1.0.3",
|
||||
"bundled": true
|
||||
},
|
||||
"builtin-status-codes": {
|
||||
"version": "3.0.0",
|
||||
"bundled": true
|
||||
},
|
||||
"cipher-base": {
|
||||
"version": "1.0.4",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"inherits": "^2.0.1",
|
||||
"safe-buffer": "^5.0.1"
|
||||
}
|
||||
},
|
||||
"console-browserify": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"date-now": "^0.1.4"
|
||||
}
|
||||
},
|
||||
"constants-browserify": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
"bundled": true
|
||||
},
|
||||
"create-ecdh": {
|
||||
"version": "4.0.3",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"bn.js": "^4.1.0",
|
||||
"elliptic": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"create-hash": {
|
||||
"version": "1.2.0",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"cipher-base": "^1.0.1",
|
||||
"inherits": "^2.0.1",
|
||||
"md5.js": "^1.3.4",
|
||||
"ripemd160": "^2.0.1",
|
||||
"sha.js": "^2.4.0"
|
||||
}
|
||||
},
|
||||
"create-hmac": {
|
||||
"version": "1.1.7",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"cipher-base": "^1.0.3",
|
||||
"create-hash": "^1.1.0",
|
||||
"inherits": "^2.0.1",
|
||||
"ripemd160": "^2.0.0",
|
||||
"safe-buffer": "^5.0.1",
|
||||
"sha.js": "^2.4.8"
|
||||
}
|
||||
},
|
||||
"crypto-browserify": {
|
||||
"version": "3.12.0",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"browserify-cipher": "^1.0.0",
|
||||
"browserify-sign": "^4.0.0",
|
||||
"create-ecdh": "^4.0.0",
|
||||
"create-hash": "^1.1.0",
|
||||
"create-hmac": "^1.1.0",
|
||||
"diffie-hellman": "^5.0.0",
|
||||
"inherits": "^2.0.1",
|
||||
"pbkdf2": "^3.0.3",
|
||||
"public-encrypt": "^4.0.0",
|
||||
"randombytes": "^2.0.0",
|
||||
"randomfill": "^1.0.3"
|
||||
}
|
||||
},
|
||||
"date-now": {
|
||||
"version": "0.1.4",
|
||||
"bundled": true
|
||||
},
|
||||
"des.js": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"inherits": "^2.0.1",
|
||||
"minimalistic-assert": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"diffie-hellman": {
|
||||
"version": "5.0.3",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"bn.js": "^4.1.0",
|
||||
"miller-rabin": "^4.0.0",
|
||||
"randombytes": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"domain-browser": {
|
||||
"version": "1.2.0",
|
||||
"bundled": true
|
||||
},
|
||||
"elliptic": {
|
||||
"version": "6.5.3",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"bn.js": "^4.4.0",
|
||||
"brorand": "^1.0.1",
|
||||
"hash.js": "^1.0.0",
|
||||
"hmac-drbg": "^1.0.0",
|
||||
"inherits": "^2.0.1",
|
||||
"minimalistic-assert": "^1.0.0",
|
||||
"minimalistic-crypto-utils": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"events": {
|
||||
"version": "3.0.0",
|
||||
"bundled": true
|
||||
},
|
||||
"evp_bytestokey": {
|
||||
"version": "1.0.3",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"md5.js": "^1.3.4",
|
||||
"safe-buffer": "^5.1.1"
|
||||
}
|
||||
},
|
||||
"hash-base": {
|
||||
"version": "3.0.4",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"inherits": "^2.0.1",
|
||||
"safe-buffer": "^5.0.1"
|
||||
}
|
||||
},
|
||||
"hash.js": {
|
||||
"version": "1.1.7",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"inherits": "^2.0.3",
|
||||
"minimalistic-assert": "^1.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"inherits": {
|
||||
"version": "2.0.3",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"hmac-drbg": {
|
||||
"version": "1.0.1",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"hash.js": "^1.0.3",
|
||||
"minimalistic-assert": "^1.0.0",
|
||||
"minimalistic-crypto-utils": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"https-browserify": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true
|
||||
},
|
||||
"ieee754": {
|
||||
"version": "1.1.13",
|
||||
"bundled": true
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.1",
|
||||
"bundled": true
|
||||
},
|
||||
"isarray": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true
|
||||
},
|
||||
"md5.js": {
|
||||
"version": "1.3.5",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"hash-base": "^3.0.0",
|
||||
"inherits": "^2.0.1",
|
||||
"safe-buffer": "^5.1.2"
|
||||
}
|
||||
},
|
||||
"miller-rabin": {
|
||||
"version": "4.0.1",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"bn.js": "^4.0.0",
|
||||
"brorand": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"minimalistic-assert": {
|
||||
"version": "1.0.1",
|
||||
"bundled": true
|
||||
},
|
||||
"minimalistic-crypto-utils": {
|
||||
"version": "1.0.1",
|
||||
"bundled": true
|
||||
},
|
||||
"os-browserify": {
|
||||
"version": "0.3.0",
|
||||
"bundled": true
|
||||
},
|
||||
"pako": {
|
||||
"version": "1.0.10",
|
||||
"bundled": true
|
||||
},
|
||||
"parse-asn1": {
|
||||
"version": "5.1.4",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"asn1.js": "^4.0.0",
|
||||
"browserify-aes": "^1.0.0",
|
||||
"create-hash": "^1.1.0",
|
||||
"evp_bytestokey": "^1.0.0",
|
||||
"pbkdf2": "^3.0.3",
|
||||
"safe-buffer": "^5.1.1"
|
||||
}
|
||||
},
|
||||
"path-browserify": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true
|
||||
},
|
||||
"pbkdf2": {
|
||||
"version": "3.0.17",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"create-hash": "^1.1.2",
|
||||
"create-hmac": "^1.1.4",
|
||||
"ripemd160": "^2.0.1",
|
||||
"safe-buffer": "^5.0.1",
|
||||
"sha.js": "^2.4.8"
|
||||
}
|
||||
},
|
||||
"process": {
|
||||
"version": "0.11.10",
|
||||
"bundled": true
|
||||
},
|
||||
"process-nextick-args": {
|
||||
"version": "2.0.0",
|
||||
"bundled": true
|
||||
},
|
||||
"public-encrypt": {
|
||||
"version": "4.0.3",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"bn.js": "^4.1.0",
|
||||
"browserify-rsa": "^4.0.0",
|
||||
"create-hash": "^1.1.0",
|
||||
"parse-asn1": "^5.0.0",
|
||||
"randombytes": "^2.0.1",
|
||||
"safe-buffer": "^5.1.2"
|
||||
}
|
||||
},
|
||||
"punycode": {
|
||||
"version": "2.1.1",
|
||||
"bundled": true
|
||||
},
|
||||
"querystring": {
|
||||
"version": "0.2.0",
|
||||
"bundled": true
|
||||
},
|
||||
"querystring-es3": {
|
||||
"version": "0.2.1",
|
||||
"bundled": true
|
||||
},
|
||||
"randombytes": {
|
||||
"version": "2.1.0",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"safe-buffer": "^5.1.0"
|
||||
}
|
||||
},
|
||||
"randomfill": {
|
||||
"version": "1.0.4",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"randombytes": "^2.0.5",
|
||||
"safe-buffer": "^5.1.0"
|
||||
}
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "3.3.0",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"inherits": "^2.0.3",
|
||||
"string_decoder": "^1.1.1",
|
||||
"util-deprecate": "^1.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"inherits": {
|
||||
"version": "2.0.3",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"ripemd160": {
|
||||
"version": "2.0.2",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"hash-base": "^3.0.0",
|
||||
"inherits": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"safe-buffer": {
|
||||
"version": "5.1.2",
|
||||
"bundled": true
|
||||
},
|
||||
"setimmediate": {
|
||||
"version": "1.0.5",
|
||||
"bundled": true
|
||||
},
|
||||
"sha.js": {
|
||||
"version": "2.4.11",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"inherits": "^2.0.1",
|
||||
"safe-buffer": "^5.0.1"
|
||||
}
|
||||
},
|
||||
"stream-browserify": {
|
||||
"version": "2.0.2",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"inherits": "~2.0.1",
|
||||
"readable-stream": "^2.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"readable-stream": {
|
||||
"version": "2.3.6",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"core-util-is": "~1.0.0",
|
||||
"inherits": "~2.0.3",
|
||||
"isarray": "~1.0.0",
|
||||
"process-nextick-args": "~2.0.0",
|
||||
"safe-buffer": "~5.1.1",
|
||||
"string_decoder": "~1.1.1",
|
||||
"util-deprecate": "~1.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"inherits": {
|
||||
"version": "2.0.3",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "1.1.1",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"safe-buffer": "~5.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"stream-http": {
|
||||
"version": "3.0.0",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"builtin-status-codes": "^3.0.0",
|
||||
"inherits": "^2.0.1",
|
||||
"readable-stream": "^3.0.6",
|
||||
"xtend": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "1.2.0",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"safe-buffer": "~5.1.0"
|
||||
}
|
||||
},
|
||||
"timers-browserify": {
|
||||
"version": "2.0.10",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"setimmediate": "^1.0.4"
|
||||
}
|
||||
},
|
||||
"tty-browserify": {
|
||||
"version": "0.0.1",
|
||||
"bundled": true
|
||||
},
|
||||
"url": {
|
||||
"version": "0.11.0",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"punycode": "1.3.2",
|
||||
"querystring": "0.2.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"punycode": {
|
||||
"version": "1.3.2",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"util": {
|
||||
"version": "0.11.1",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"inherits": "2.0.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"inherits": {
|
||||
"version": "2.0.3",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"util-deprecate": {
|
||||
"version": "1.0.2",
|
||||
"bundled": true
|
||||
},
|
||||
"vm-browserify": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true
|
||||
},
|
||||
"xtend": {
|
||||
"version": "4.0.1",
|
||||
"bundled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"regenerator-runtime": {
|
||||
"version": "0.13.7",
|
||||
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
|
||||
"integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew=="
|
||||
},
|
||||
"vue": {
|
||||
"version": "2.6.12",
|
||||
"resolved": "https://registry.npmjs.org/vue/-/vue-2.6.12.tgz",
|
||||
"integrity": "sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg=="
|
||||
},
|
||||
"vue-meteor-tracker": {
|
||||
"version": "2.0.0-beta.5",
|
||||
"resolved": "https://registry.npmjs.org/vue-meteor-tracker/-/vue-meteor-tracker-2.0.0-beta.5.tgz",
|
||||
"integrity": "sha512-egEEqAeKoy7moc4mdb/yM4+UDxk7yOAiIAW8gFz8umtAEYr7Ll8B1wLC0gtoY4IDUU8bCo0UzQjWvfXDMfl7YA==",
|
||||
"requires": {
|
||||
"lodash.omit": "^4.5.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
23
package.json
Normal file
23
package.json
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"name": "zhao",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"start": "meteor run",
|
||||
"test": "meteor test --once --driver-package meteortesting:mocha",
|
||||
"test-app": "TEST_WATCH=1 meteor test --full-app --driver-package meteortesting:mocha",
|
||||
"visualize": "meteor --production --extra-packages bundle-visualizer"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.11.2",
|
||||
"meteor-node-stubs": "^1.0.1",
|
||||
"vue": "^2.6.12",
|
||||
"vue-meteor-tracker": "^2.0.0-beta.5"
|
||||
},
|
||||
"meteor": {
|
||||
"mainModule": {
|
||||
"client": "client/main.js",
|
||||
"server": "server/main.js"
|
||||
},
|
||||
"testModule": "tests/main.js"
|
||||
}
|
||||
}
|
3
server/main.js
Normal file
3
server/main.js
Normal file
|
@ -0,0 +1,3 @@
|
|||
import '../imports/api/fixtures'
|
||||
import '../imports/api/methods'
|
||||
import '../imports/api/publications'
|
20
tests/main.js
Normal file
20
tests/main.js
Normal file
|
@ -0,0 +1,20 @@
|
|||
import assert from "assert";
|
||||
|
||||
describe("skel", function () {
|
||||
it("package.json has correct name", async function () {
|
||||
const { name } = await import("../package.json");
|
||||
assert.strictEqual(name, "skel");
|
||||
});
|
||||
|
||||
if (Meteor.isClient) {
|
||||
it("client is not server", function () {
|
||||
assert.strictEqual(Meteor.isServer, false);
|
||||
});
|
||||
}
|
||||
|
||||
if (Meteor.isServer) {
|
||||
it("server is not client", function () {
|
||||
assert.strictEqual(Meteor.isClient, false);
|
||||
});
|
||||
}
|
||||
});
|
Loading…
Reference in a new issue