mirror of
https://github.com/meteor/meteor.git
synced 2026-05-02 03:01:46 -04:00
Merge branch 'release-2.7.4' into bugfix/fix-problem-with-publish-client-async-methods
This commit is contained in:
164
.mailmap
164
.mailmap
@@ -1,164 +0,0 @@
|
||||
# The presence of this file makes it easier to find GitHub usernames for
|
||||
# History.md.
|
||||
#
|
||||
# This is a git dotfile that affects the output of 'git shortlog'. eg, run:
|
||||
# git shortlog -s release/METEOR@1.0.1..HEAD
|
||||
# to get a sorted list of all committers to revisions in HEAD but not
|
||||
# in 1.0.1. To get the list including email addresses (useful for input
|
||||
# to the script below) include --email as well.
|
||||
#
|
||||
# For any emails that show up in the shortlog that aren't in one of
|
||||
# these lists, figure out their GitHub username and add them.
|
||||
#
|
||||
# A command-line way to get the GitHub username for an author:
|
||||
# scripts/admin/find-author-github.sh 'User Name <foo@bar.com>'
|
||||
# (Note that this script always outputs GITHUB so you should manually
|
||||
# check to see if they are an Meteor Software employee!)
|
||||
|
||||
GITHUB: 0a- <a@0a.io>
|
||||
GITHUB: adnissen <andrew_nissen@yahoo.com>
|
||||
GITHUB: aldeed <eric@dairystatedesigns.com>
|
||||
GITHUB: AlexeyMK <alexey@alexeymk.com>
|
||||
GITHUB: andylash <andy@squidnet.com>
|
||||
GITHUB: ansman <nicklas@ansman.se>
|
||||
GITHUB: anstarovoyt <andrey.starovoyt@jetbrains.com>
|
||||
GITHUB: apendua <apendua@gmail.com>
|
||||
GITHUB: awatson1978 <awatson1978@gmail.com>
|
||||
GITHUB: awwx <andrew.wilcox@gmail.com>
|
||||
GITHUB: babenzele <tim.p.phillips@gmail.com>
|
||||
GITHUB: benweissmann <benweissmann@gmail.com>
|
||||
GITHUB: bwhitty <bwhitten518@gmail.com>
|
||||
GITHUB: Cangit <fredricendrerud@gmail.com>
|
||||
GITHUB: chrisbridgett <me@chrisbridgett.com>
|
||||
GITHUB: christianbundy <christianbundy@fraction.io>
|
||||
GITHUB: cmather <mather.chris@gmail.com>
|
||||
GITHUB: codeinthehole <david.winterbottom@gmail.com>
|
||||
GITHUB: colllin <collindo@gmail.com>
|
||||
GITHUB: cryptoquick <faustianightmare@gmail.com>
|
||||
GITHUB: d4nyll <dan@danyll.com>
|
||||
GITHUB: dandv <ddascalescu+github@gmail.com>
|
||||
GITHUB: DanielDent <DanielDent@users.noreply.github.com>
|
||||
GITHUB: DanielDent <sourcecode@contactdaniel.net>
|
||||
GITHUB: DanielDornhardt <daniel@dornhardt.com>
|
||||
GITHUB: davegonzalez <gonzalez.dalex@gmail.com>
|
||||
GITHUB: DenisGorbachev <Denis.D.Gorbachev@gmail.com>
|
||||
GITHUB: DenisGorbachev <Denis.Gorbachev@faster-than-wind.ru>
|
||||
GITHUB: ducdigital <duc@ducdigital.com>
|
||||
GITHUB: duckspeaker <gallo.j@gmail.com>
|
||||
GITHUB: ecwyne <ecwyne@users.noreply.github.com>
|
||||
GITHUB: emgee3 <hello@gravitronic.com>
|
||||
GITHUB: EOT <eot@gmx.at>
|
||||
GITHUB: fay-jai <willson.mock@gmail.com>
|
||||
GITHUB: felixrabe <felix@rabe.io>
|
||||
GITHUB: FooBarWidget <honglilai@gmail.com>
|
||||
GITHUB: FredericoC <frederico.carvalho@3stack.com.au>
|
||||
GITHUB: Gaelan <gbs@canishe.com>
|
||||
GITHUB: graemian <graeme@graemep.co.za>
|
||||
GITHUB: gsuess <garic.suess@gmail.com>
|
||||
GITHUB: hwillson <hugh@octonary.com>
|
||||
GITHUB: icellan <icellan@icellan.com>
|
||||
GITHUB: ImtiazMajeed <imtiazmaj@gmail.com>
|
||||
GITHUB: jacott <geoffjacobsen@gmail.com>
|
||||
GITHUB: jakozaur <jacek@migdal.pl>
|
||||
GITHUB: JamesLefrere <jlefrere@gmail.com>
|
||||
GITHUB: jbruni <contato@jbruni.com.br>
|
||||
GITHUB: jfhamlin <jfhamlin@gmail.com>
|
||||
GITHUB: jperl <perl.jonathan@gmail.com>
|
||||
GITHUB: kentonv <temporal@gmail.com>
|
||||
GITHUB: kevinchiu <kevin.gc@gmail.com>
|
||||
GITHUB: knownasilya <ilya@burstcreations.com>
|
||||
GITHUB: LyuGGang <me@lyuwonkyung.com>
|
||||
GITHUB: marcandre <github@marc-andre.ca>
|
||||
GITHUB: mart-jansink <m.jansink@gmail.com>
|
||||
GITHUB: matteodem <mat.demicheli@gmail.com>
|
||||
GITHUB: Maxhodges <Max@whiterabbitpress.com>
|
||||
GITHUB: MaximDubrovin <maxxdubrovin@gmail.com>
|
||||
GITHUB: meawoppl <meawoppl@gmail.com>
|
||||
GITHUB: meonkeys <haircut@gmail.com>
|
||||
GITHUB: michaelbishop <michael@michaelsplace.net>
|
||||
GITHUB: mitar <mitar.git@tnode.com>
|
||||
GITHUB: mitar <mitar.github@tnode.com>
|
||||
GITHUB: mizzao <mizzao@gmail.com>
|
||||
GITHUB: mquandalle <maxime.quandalle@gmail.com>
|
||||
GITHUB: mquandalle <maxime@quandalle.com>
|
||||
GITHUB: murillo128 <sergio.garcia.murillo@gmail.com>
|
||||
GITHUB: musically-ut <musically.ut@gmail.com>
|
||||
GITHUB: nathan-muir <ndmuir@gmail.com>
|
||||
GITHUB: Neftedollar <oildollar@gmail.com>
|
||||
GITHUB: netanelgilad <netanelgilad@gmail.com>
|
||||
GITHUB: ogourment <ogourment@smarterportal.com>
|
||||
GITHUB: ograycode <jason@theograys.com>
|
||||
GITHUB: omeid <public@omeid.me>
|
||||
GITHUB: OyoKooN <nathan@sxnlabs.com>
|
||||
GITHUB: paulswartz <paulswartz@gmail.com>
|
||||
GITHUB: pcjpcj2 <pcjpcj2@gmail.com>
|
||||
GITHUB: Pent <jon@empire5design.com>
|
||||
GITHUB: physiocoder <ferro.roberto@email.it>
|
||||
GITHUB: PooMaster <peter.d.curtis@gmail.com>
|
||||
GITHUB: prapicault <pascal@rapicault.net>
|
||||
GITHUB: prapicault <pascal@rapicorp.com>
|
||||
GITHUB: Primigenus <rchoudhury@gmail.com>
|
||||
GITHUB: pscanf <paolo.scanferla@mondora.com>
|
||||
GITHUB: queso <joshua.owens@gmail.com>
|
||||
GITHUB: rbabayoff <ronen@lavaina.com>
|
||||
GITHUB: rcy <rcyeske@gmail.com>
|
||||
GITHUB: rdickert <robert.dickert@gmail.com>
|
||||
GITHUB: restebanez <restebanez@mdsol.com>
|
||||
GITHUB: rgoomar <rishig92@gmail.com>
|
||||
GITHUB: rgould <rwgould@gmail.com>
|
||||
GITHUB: RichardLitt <richard.littauer@gmail.com>
|
||||
GITHUB: richguan <guan.rich@gmail.com>
|
||||
GITHUB: rick-golden-healthagen <rick.golden@healthagen.com>
|
||||
GITHUB: rissem <rissem@gmail.com>
|
||||
GITHUB: rjakobsson <robin@hopjakk.se>
|
||||
GITHUB: RobertLowe <robert@iblargz.com>
|
||||
GITHUB: romanzolotarev <romanzolotarev@me.com>
|
||||
GITHUB: rosh93 <rosh93@gmail.com>
|
||||
GITHUB: ryw <ry@rywalker.com>
|
||||
GITHUB: rzymek <rzymek@gmail.com>
|
||||
GITHUB: sdarnell <stephen@darnell.plus.com>
|
||||
GITHUB: Siilwyn <Siilwyn@users.noreply.github.com>
|
||||
GITHUB: smallhelm <smallhelm@users.noreply.github.com>
|
||||
GITHUB: subhog <hubert@orlikarnia.com>
|
||||
GITHUB: svda <svdakker@gmail.com>
|
||||
GITHUB: Tarang <Tarang@users.noreply.github.com>
|
||||
GITHUB: tbjers <torgny@xorcode.com>
|
||||
GITHUB: thatneat <thatneat@users.noreply.github.com>
|
||||
GITHUB: timhaines <tmhaines@gmail.com>
|
||||
GITHUB: timoabend <timo.abend@liquidmotions.de>
|
||||
GITHUB: tmeasday <tom@thesnail.org>
|
||||
GITHUB: TomFreudenberg <tom.freudenberg@4commerce.de>
|
||||
GITHUB: trusktr <joe@trusktr.io>
|
||||
GITHUB: twhy <tom.wanghaiyi@gmail.com>
|
||||
GITHUB: Urigo <uri.goldshtein@gmail.com>
|
||||
GITHUB: waitingkuo <waitingkuo0527@gmail.com>
|
||||
GITHUB: wulfmeister <wulfmeister@users.noreply.github.com>
|
||||
GITHUB: yauh <stephan@yauh.de>
|
||||
GITHUB: yeputons <egor.suvorov@gmail.com>
|
||||
GITHUB: zol <zol@percolatestudio.com>
|
||||
|
||||
METEOR: arbesfeld <arbesfeld@gmail.com>
|
||||
METEOR: avital <avital@thewe.net>
|
||||
METEOR: benjamn <ben@meteor.com>
|
||||
METEOR: benjamn <bn@cs.stanford.edu>
|
||||
METEOR: debergalis <matt@meteor.com>
|
||||
METEOR: dgreensp <dgreenspan@alum.mit.edu>
|
||||
METEOR: ekatek <ekate@meteor.com>
|
||||
METEOR: estark37 <emily@meteor.com>
|
||||
METEOR: estark37 <estark37@gmail.com>
|
||||
METEOR: glasser <glasser@davidglasser.net>
|
||||
METEOR: glasser <glasser@meteor.com>
|
||||
METEOR: gschmidt <geoff@geoffschmidt.com>
|
||||
METEOR: justinsb <justin@fathomdb.com>
|
||||
METEOR: karayu <lele.yu@gmail.com>
|
||||
METEOR: mariapacana <maria.pacana@gmail.com>
|
||||
METEOR: multilinear <mbrewer@meteor.com>
|
||||
METEOR: n1mmy <nim@meteor.com>
|
||||
METEOR: sixolet <naomi@meteor.com>
|
||||
METEOR: Slava <imslavko@gmail.com>
|
||||
METEOR: Slava <slava@meteor.com>
|
||||
METEOR: stubailo <s.stubailo@gmail.com>
|
||||
METEOR: stubailo <sashko@meteor.com>
|
||||
METEOR: stubailo <sashko@mit.edu>
|
||||
METEOR: stubailo <sashko@stubailo.com>
|
||||
METEOR: yyx990803 <yyx990803@gmail.com>
|
||||
@@ -49,8 +49,7 @@ Current Reviewers:
|
||||
- [@aquinoit](https://github.com/aquinoit)
|
||||
- [@Grubba27](https://github.com/Grubba27)
|
||||
- [@filipenevola](https://github.com/filipenevola)
|
||||
- [@Grubba27](https://github.com/Grubba27)
|
||||
- [@StorytellerCZ](https://github.com/StorytellerCZ)
|
||||
- [@StorytellerCZ](https://github.com/StorytellerCZ)
|
||||
- [@zodern](https://github.com/zodern)
|
||||
- [@CaptainN](https://github.com/CaptainN)
|
||||
- [@radekmie](https://github.com/radekmie)
|
||||
@@ -73,7 +72,6 @@ Current Core Committers:
|
||||
- [@edimarlnx](https://github.com/edimarlnx)
|
||||
- [@matheusccastroo](https://github.com/matheusccastroo)
|
||||
- [@eduwr](https://github.com/eduwr)
|
||||
- [@Grubba27](https://github.com/Grubba27)
|
||||
|
||||
### Tracking project work
|
||||
|
||||
|
||||
@@ -140,41 +140,49 @@ Create a basic [Svelte](https://svelte.dev/) app.
|
||||
|
||||
Create a basic [React](https://reactjs.org) + [Tailwind CSS](https://tailwindcss.com) app.
|
||||
|
||||
`--chakra-ui`
|
||||
|
||||
Create a basic [chakra-ui](https://chakra-ui.com/) app.
|
||||
|
||||
`--solid`
|
||||
|
||||
Create a basic [solid](https://www.solidjs.com/) app.
|
||||
|
||||
**Packages**
|
||||
|
||||
| | Default (`--react`) | `--bare` | `--full` | `--minimal` | `--blaze`| `--apollo` | `--vue` | `--svelte` | `--tailwind` |
|
||||
|------------------------------------------------------------------------------------------------------|:-------------------:|:---------:|:---------:|:-----------:|:--------:|:----------:|:-------:|:----------:|:------------:|
|
||||
| [autopublish](https://atmospherejs.com/meteor/autopublish) |X| | | |X| | |X|X|
|
||||
| [akryum:vue-component](https://atmospherejs.com/akryum/vue-component) | | | | | | |X| | |
|
||||
| [apollo](https://atmospherejs.com/meteor/apollo) | | | | | |X| | | |
|
||||
| [blaze-html-templates](https://atmospherejs.com/meteor/blaze-html-templates) | | |X| |X| | | | |
|
||||
| [ecmascript](https://atmospherejs.com/meteor/ecmascript) |X|X|X|X|X|X|X|X|X|
|
||||
| [es5-shim](https://atmospherejs.com/meteor/es5-shim) |X|X|X|X|X|X|X|X|X|
|
||||
| [hot-module-replacement](https://atmospherejs.com/meteor/hot-module-replacement) |X| | | |X|X| | |X|
|
||||
| [insecure](https://atmospherejs.com/meteor/insecure) |X| | | |X| | |X|X|
|
||||
| [johanbrook:publication-collector](https://atmospherejs.com/meteor/johanbrook/publication-collector) | | |X| | |X| | |
|
||||
| [jquery](https://atmospherejs.com/meteor/jquery) | | |X| |X| | | |
|
||||
| [ostrio:flow-router-extra](https://atmospherejs.com/meteor/ostrio/flow-router-extra) | | |X|| | | | | |
|
||||
| [less](https://atmospherejs.com/meteor/less) | | |X| | | | | | |
|
||||
| [meteor](https://atmospherejs.com/meteor/meteor) | | | |X| | | | | |
|
||||
| [meteor-base](https://atmospherejs.com/meteor/meteor-base) |X|X|X| |X|X|X|X|X|
|
||||
| [mobile-experience](https://atmospherejs.com/meteor/mobile-experience) |X|X|X| |X|X|X|X|X|
|
||||
| [mongo](https://atmospherejs.com/meteor/mongo) |X|X|X| |X|X|X|X|X|
|
||||
| [meteortesting:mocha](https://atmospherejs.com/meteortesting/mocha) | | |X| | | |X| |
|
||||
| [reactive-var](https://atmospherejs.com/meteor/reactive-var) |X|X|X| |X|X|X|X|X|
|
||||
| [rdb:svelte-meteor-data](https://atmospherejs.com/rdb/svelte-meteor-data) | | | | | | | |X| |
|
||||
| [server-render](https://atmospherejs.com/meteor/server-render) | | | |X| |X|X| | |
|
||||
| [shell-server](https://atmospherejs.com/meteor/shell-server) | |X| |X|X|X|X|X |
|
||||
| [standard-minifier-css](https://atmospherejs.com/meteor/standard-minifier-css) |X|X|X|X|X|X|X|X|X|
|
||||
| [standard-minifier-js](https://atmospherejs.com/meteor/standard-minifier-js) |X|X|X|X|X|X|X|X|X|
|
||||
| [static-html](https://atmospherejs.com/meteor/static-html) | |X| |X| |X|X|X| |
|
||||
| [svelte:compiler](https://atmospherejs.com/svelte/compiler) | | | | | | | |X| |
|
||||
| [swydo:graphql](https://atmospherejs.com/swydo/graphql) | | | | | |X| | | |
|
||||
| [tailwindcss](https://tailwindcss.com) | |X|X| |X| |X| |X|
|
||||
| [tracker](https://atmospherejs.com/meteor/tracker) | |X|X| |X| |X| | |
|
||||
| [typescript](https://atmospherejs.com/meteor/typescript) |X|X|X|X|X|X|X|X|X|
|
||||
| [webapp](https://atmospherejs.com/meteor/webapp) | | | |X| | | | | |
|
||||
| [react-meteor-data](https://atmospherejs.com/meteor/react-meteor-data) |X| | | | | | | |X|
|
||||
| | Default (`--react`) | `--bare` | `--full` | `--minimal` | `--blaze` | `--apollo` | `--vue` | `--svelte` | `--tailwind` | `--chakra-ui` | `--solid` |
|
||||
|------------------------------------------------------------------------------------------------------|:-------------------:|:--------:|:--------:|:-----------:|:---------:|:----------:|:-------:|:----------:|:------------:|:-------------:|:---------:|
|
||||
| [autopublish](https://atmospherejs.com/meteor/autopublish) | X | | | | X | | | X | X | X | X |
|
||||
| [akryum:vue-component](https://atmospherejs.com/akryum/vue-component) | | | | | | | X | | | | |
|
||||
| [apollo](https://atmospherejs.com/meteor/apollo) | | | | | | X | | | | | |
|
||||
| [blaze-html-templates](https://atmospherejs.com/meteor/blaze-html-templates) | | | X | | X | | | | | | |
|
||||
| [ecmascript](https://atmospherejs.com/meteor/ecmascript) | X | X | X | X | X | X | X | X | X | X | X |
|
||||
| [es5-shim](https://atmospherejs.com/meteor/es5-shim) | X | X | X | X | X | X | X | X | X | X | X |
|
||||
| [hot-module-replacement](https://atmospherejs.com/meteor/hot-module-replacement) | X | | | | X | X | | | X | X | X |
|
||||
| [insecure](https://atmospherejs.com/meteor/insecure) | X | | | | X | | | X | X | X | X |
|
||||
| [johanbrook:publication-collector](https://atmospherejs.com/meteor/johanbrook/publication-collector) | | | X | | | X | | | | | |
|
||||
| [jquery](https://atmospherejs.com/meteor/jquery) | | | X | | X | | | | | | |
|
||||
| [ostrio:flow-router-extra](https://atmospherejs.com/meteor/ostrio/flow-router-extra) | | | X | | | | | | | | |
|
||||
| [less](https://atmospherejs.com/meteor/less) | | | X | | | | | | | | |
|
||||
| [meteor](https://atmospherejs.com/meteor/meteor) | | | | X | | | | | | | |
|
||||
| [meteor-base](https://atmospherejs.com/meteor/meteor-base) | X | X | X | | X | X | X | X | X | X | X |
|
||||
| [mobile-experience](https://atmospherejs.com/meteor/mobile-experience) | X | X | X | | X | X | X | X | X | X | X |
|
||||
| [mongo](https://atmospherejs.com/meteor/mongo) | X | X | X | | X | X | X | X | X | X | X |
|
||||
| [meteortesting:mocha](https://atmospherejs.com/meteortesting/mocha) | | | X | | | | X | | | | |
|
||||
| [reactive-var](https://atmospherejs.com/meteor/reactive-var) | X | X | X | | X | X | X | X | X | X | X |
|
||||
| [rdb:svelte-meteor-data](https://atmospherejs.com/rdb/svelte-meteor-data) | | | | | | | | X | | | |
|
||||
| [server-render](https://atmospherejs.com/meteor/server-render) | | | | X | | X | X | | | | |
|
||||
| [shell-server](https://atmospherejs.com/meteor/shell-server) | | X | | X | X | X | X | X | X | X | X |
|
||||
| [standard-minifier-css](https://atmospherejs.com/meteor/standard-minifier-css) | X | X | X | X | X | X | X | X | X | X | X |
|
||||
| [standard-minifier-js](https://atmospherejs.com/meteor/standard-minifier-js) | X | X | X | X | X | X | X | X | X | X | X |
|
||||
| [static-html](https://atmospherejs.com/meteor/static-html) | | X | | X | | X | X | X | | | |
|
||||
| [svelte:compiler](https://atmospherejs.com/svelte/compiler) | | | | | | | | X | | | |
|
||||
| [swydo:graphql](https://atmospherejs.com/swydo/graphql) | | | | | | X | | | | | |
|
||||
| [tailwindcss](https://tailwindcss.com) | | X | X | | X | | X | | X | | |
|
||||
| [tracker](https://atmospherejs.com/meteor/tracker) | | X | X | | X | | X | | | | |
|
||||
| [typescript](https://atmospherejs.com/meteor/typescript) | X | X | X | X | X | X | X | X | X | X | X |
|
||||
| [webapp](https://atmospherejs.com/meteor/webapp) | | | | X | | | | | | | |
|
||||
| [react-meteor-data](https://atmospherejs.com/meteor/react-meteor-data) | X | | | | | | | | X | X | |
|
||||
|
||||
<h2 id="meteorloginlogout">meteor login / logout</h2>
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ description: Describes the high-level features and actions for the Meteor projec
|
||||
|
||||
## Introduction
|
||||
|
||||
Last update: August 4, 2022.
|
||||
Last update: August 31, 2022.
|
||||
|
||||
This document describes the high-level features and actions for the Meteor project in the near-to-medium term future.
|
||||
The description of many items include sentences and ideas from Meteor community members.
|
||||
@@ -45,6 +45,11 @@ Contributors are encouraged to focus their efforts on work that aligns with the
|
||||
- Remove Fibers dependency from Meteor Public APIs;
|
||||
- Remove Fibers entirely;
|
||||
|
||||
### Community items
|
||||
- Release Blaze 2.6.2; ([Milestone](https://github.com/meteor/blaze/milestone/9))
|
||||
- Vue 3 integration; ([Forums](https://forums.meteor.com/t/status-of-vue-3-meteor/57915/25) / [Discussion](https://github.com/meteor/meteor/discussions/11521))
|
||||
- SolidJS starter template;
|
||||
|
||||
### Next educational items
|
||||
- Create a new Meteor Guide; ([Current Guide](https://guide.meteor.com/))
|
||||
- Login and Accounts course; ([Meteor University](https://university.meteor.com/))
|
||||
@@ -54,7 +59,6 @@ Contributors are encouraged to focus their efforts on work that aligns with the
|
||||
We plan to implement these items in the near future. Community help would be greatly appreciated.
|
||||
- ES Modules Support; ([Discussion](https://github.com/meteor/meteor/discussions/11727))
|
||||
- MongoDB 6.0 Support; ([Discussion](https://github.com/meteor/meteor/discussions/12092))
|
||||
- Vue 3 integration; ([Forums](https://forums.meteor.com/t/status-of-vue-3-meteor/57915/25) / [Discussion](https://github.com/meteor/meteor/discussions/11521))
|
||||
- Improve Meteor build time; ([Discussion](https://github.com/meteor/meteor/discussions/11587))
|
||||
- HTTP/3 Support;
|
||||
- Tree-shaking; ([PR](https://github.com/meteor/meteor/pull/11164))
|
||||
|
||||
@@ -37,6 +37,33 @@ Here are the newly added methods (you can see this description and the code [her
|
||||
for await (const document of collection.find(query, options)) /* ... */
|
||||
```
|
||||
|
||||
<h3 id="how-do-i-update">How can I start using these new features?</h3>
|
||||
|
||||
We got a few examples for making it easy to use these new feature, you can look the code snippet bellow
|
||||
|
||||
```js
|
||||
// Before 2.8, we would use something like this
|
||||
export const removeByID = ({ id }) => {
|
||||
SomeCollection.remove({ _id: id });
|
||||
};
|
||||
|
||||
// Now we can also do like this
|
||||
export const removeByIDAsync = async ({ id }) => {
|
||||
await SomeCollection.removeAsync({ _id: id });
|
||||
};
|
||||
|
||||
Meteor.methods({
|
||||
//...
|
||||
removeByID,
|
||||
removeByIDAsync,
|
||||
});
|
||||
|
||||
// In UI use Meteor.call('removeByID', { id }) or Meteor.call('removeByIDAsync', { id })
|
||||
```
|
||||
|
||||
More examples can be retrieved from [this commit](https://github.com/fredmaiaarantes/simpletasks/compare/main...mongodb-async-api).
|
||||
|
||||
|
||||
<h3 id="should-i-update">Can I update to this version without changing my app?</h3>
|
||||
|
||||
Yes. You can update to this version without changing your app.
|
||||
|
||||
@@ -58,6 +58,11 @@ DDP.randomStream = name => {
|
||||
* @summary Connect to the server of a different Meteor application to subscribe to its document sets and invoke its remote methods.
|
||||
* @locus Anywhere
|
||||
* @param {String} url The URL of another Meteor application.
|
||||
* @param {Object} [options]
|
||||
* @param {Boolean} options.reloadWithOutstanding is it OK to reload if there are outstanding methods?
|
||||
* @param {Object} options.headers extra headers to send on the websockets connection, for server-to-server DDP only
|
||||
* @param {Object} options._sockjsOptions Specifies options to pass through to the sockjs client
|
||||
* @param {Function} options.onDDPNegotiationVersionFailure callback when version negotiation fails.
|
||||
*/
|
||||
DDP.connect = (url, options) => {
|
||||
const ret = new Connection(url, options);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Package.describe({
|
||||
summary: 'The Meteor command-line tool',
|
||||
version: '2.8.0-beta.5',
|
||||
version: '2.8.0-beta.7',
|
||||
});
|
||||
|
||||
Package.includeTool();
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
Package.describe({
|
||||
summary: "Core Meteor environment",
|
||||
version: '1.10.1-beta280.5'
|
||||
version: '1.10.1-beta280.7'
|
||||
});
|
||||
|
||||
Package.registerBuildPlugin({
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Package.describe({
|
||||
summary: "Meteor's client-side datastore: a port of MongoDB to Javascript",
|
||||
version: '1.9.0-beta280.5'
|
||||
version: '1.9.0-beta280.7'
|
||||
});
|
||||
|
||||
Package.onUse(api => {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Package.describe({
|
||||
name: "modules",
|
||||
version: "0.19.0-beta280.5",
|
||||
version: "0.19.0-beta280.7",
|
||||
summary: "CommonJS module system",
|
||||
documentation: "README.md"
|
||||
});
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
Package.describe({
|
||||
summary: "Adaptor for using MongoDB and Minimongo over DDP",
|
||||
version: '1.16.0-beta280.5'
|
||||
version: '1.16.0-beta280.7'
|
||||
});
|
||||
|
||||
Npm.depends({
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
Package.describe({
|
||||
summary: "Wrapper around the mongo npm package",
|
||||
version: "4.9.0-beta280.5",
|
||||
version: "4.9.0-beta280.7",
|
||||
documentation: null
|
||||
});
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Package.describe({
|
||||
summary: 'Run tests noninteractively, with results going to the console.',
|
||||
version: '1.2.4-beta280.5'
|
||||
version: '1.2.4-beta280.7'
|
||||
});
|
||||
|
||||
Package.onUse(function(api) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"track": "METEOR",
|
||||
"version": "2.8-beta.5",
|
||||
"version": "2.8-beta.7",
|
||||
"recommended": false,
|
||||
"official": false,
|
||||
"description": "Meteor experimental release"
|
||||
|
||||
25
scripts/make-release-tarballs.sh
Normal file
25
scripts/make-release-tarballs.sh
Normal file
@@ -0,0 +1,25 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
for ARGUMENT in "$@"; do
|
||||
KEY=$(echo $ARGUMENT | cut -f1 -d=)
|
||||
|
||||
KEY_LENGTH=${#KEY}
|
||||
VALUE="${ARGUMENT:$KEY_LENGTH+1}"
|
||||
|
||||
export "$KEY"="$VALUE"
|
||||
done
|
||||
|
||||
echo "BRANCH_NAME = $BRANCH_NAME"
|
||||
echo "VERSION = $VERSION"
|
||||
|
||||
git fetch origin && git checkout release/METEOR@$VERSION && git reset --hard origin/$BRANCH_NAME && git clean -df
|
||||
./meteor admin make-bootstrap-tarballs --target-arch os.windows.x86_64 $VERSION win64
|
||||
./meteor admin make-bootstrap-tarballs --target-arch os.linux.x86_64 $VERSION linux64
|
||||
./meteor admin make-bootstrap-tarballs --target-arch os.osx.x86_64 $VERSION osx &&
|
||||
./meteor admin make-bootstrap-tarballs --target-arch os.osx.arm64 $VERSION osx
|
||||
./meteor aws s3 mb s3://com.meteor.static/packages-bootstrap/$VERSION/ &&
|
||||
aws s3 cp --acl public-read win64/meteor-bootstrap-os.windows.x86_64.tar.gz s3://com.meteor.static/packages-bootstrap/$VERSION/ &&
|
||||
aws s3 cp --acl public-read linux64/meteor-bootstrap-os.linux.x86_64.tar.gz s3://com.meteor.static/packages-bootstrap/$VERSION/ &&
|
||||
aws s3 cp --acl public-read osx/meteor-bootstrap-os.osx.x86_64.tar.gz s3://com.meteor.static/packages-bootstrap/$VERSION/ &&
|
||||
aws s3 cp --acl public-read osx/meteor-bootstrap-os.osx.arm64.tar.gz s3://com.meteor.static/packages-bootstrap/$VERSION/ &&
|
||||
aws s3 ls s3://com.meteor.static/packages-bootstrap/$VERSION
|
||||
@@ -516,6 +516,8 @@ export const AVAILABLE_SKELETONS = [
|
||||
"vue",
|
||||
"svelte",
|
||||
"tailwind",
|
||||
"chakra-ui",
|
||||
"solid",
|
||||
];
|
||||
|
||||
main.registerCommand({
|
||||
@@ -535,6 +537,8 @@ main.registerCommand({
|
||||
apollo: { type: Boolean },
|
||||
svelte: { type: Boolean },
|
||||
tailwind: { type: Boolean },
|
||||
'chakra-ui': { type: Boolean },
|
||||
solid: { type: Boolean },
|
||||
},
|
||||
catalogRefresh: new catalog.Refresh.Never()
|
||||
}, function (options) {
|
||||
@@ -907,6 +911,8 @@ main.registerCommand({
|
||||
cmd("meteor create --typescript # to create an app using TypeScript and React");
|
||||
cmd("meteor create --blaze # to create an app using Blaze");
|
||||
cmd("meteor create --tailwind # to create an app using React and Tailwind");
|
||||
cmd("meteor create --chakra-ui # to create an app Chakra UI and React");
|
||||
cmd("meteor create --solid # to create a basic Solid app");
|
||||
}
|
||||
|
||||
Console.info("");
|
||||
@@ -1258,7 +1264,7 @@ main.registerCommand({
|
||||
|
||||
// This option has never done anything, but we are keeping it for
|
||||
// backwards compatibility since it existed for 7 years before adding
|
||||
// the correctly named option
|
||||
// the correctly named option
|
||||
'allow-incompatible-updates': { type: Boolean }
|
||||
},
|
||||
catalogRefresh: new catalog.Refresh.Never()
|
||||
|
||||
@@ -150,7 +150,7 @@ Options:
|
||||
|
||||
>>> create
|
||||
Create a new project.
|
||||
Usage: meteor create [--release <release>] [--bare|--minimal|--full|--react|--vue|--apollo|--svelte|--blaze|--tailwind] <path>
|
||||
Usage: meteor create [--release <release>] [--bare|--minimal|--full|--react|--vue|--apollo|--svelte|--blaze|--tailwind|--chakra-ui|--solid] <path>
|
||||
meteor create [--release <release>] --example <example_name> [<path>]
|
||||
meteor create --list
|
||||
meteor create --package [<package_name>]
|
||||
@@ -189,6 +189,8 @@ Options:
|
||||
--typescript Create a basic Typescript React-based app.
|
||||
--blaze Create a basic blaze-based app.
|
||||
--tailwind Create a basic react-based app, with tailwind configured.
|
||||
--chakra-ui Create a basic react-based app, with chakra-ui configured.
|
||||
--solid Create a basic solid-based app.
|
||||
|
||||
|
||||
>>> update
|
||||
|
||||
@@ -32,6 +32,14 @@ Similar to `skel`, `skel-react` is copied on `meteor create --react` command.
|
||||
|
||||
Similar to `skel`, `skel-tailwind` is copied on `meteor create --tailwind` command.
|
||||
|
||||
## skel-chakra-ui - Package Skeleton
|
||||
|
||||
Similar to `skel`, `skel-chakra-ui` is copied on `meteor create --chakra-ui` command.
|
||||
|
||||
## skel-solid - Package Skeleton
|
||||
|
||||
Similar to `skel`, `skel-solid` is copied on `meteor create --solid` command.
|
||||
|
||||
## server - Bundled App's Bootstrap
|
||||
|
||||
The `server` folder is copied by Isobuild when the app is bundled (on
|
||||
|
||||
1
tools/static-assets/skel-chakra-ui/.gitignore
vendored
Normal file
1
tools/static-assets/skel-chakra-ui/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
node_modules/
|
||||
1
tools/static-assets/skel-chakra-ui/.meteor/.gitignore
vendored
Normal file
1
tools/static-assets/skel-chakra-ui/.meteor/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
local
|
||||
23
tools/static-assets/skel-chakra-ui/.meteor/packages
Normal file
23
tools/static-assets/skel-chakra-ui/.meteor/packages
Normal file
@@ -0,0 +1,23 @@
|
||||
# Meteor packages used by this project, one per line.
|
||||
# Check this file (and the other files in this directory) into your repository.
|
||||
#
|
||||
# 'meteor add' and 'meteor remove' will edit this file for you,
|
||||
# but you can also edit it by hand.
|
||||
|
||||
meteor-base # Packages every Meteor app needs to have
|
||||
mobile-experience # Packages for a great mobile UX
|
||||
mongo # The database Meteor supports right now
|
||||
reactive-var # Reactive variable for tracker
|
||||
|
||||
standard-minifier-css # CSS minifier run for production mode
|
||||
standard-minifier-js # JS minifier run for production mode
|
||||
es5-shim # ECMAScript 5 compatibility for older browsers
|
||||
ecmascript # Enable ECMAScript2015+ syntax in app code
|
||||
typescript # Enable TypeScript syntax in .ts and .tsx modules
|
||||
shell-server # Server-side component of the `meteor shell` command
|
||||
hot-module-replacement # Update client in development without reloading the page
|
||||
|
||||
autopublish # Publish all data to the clients (for prototyping)
|
||||
insecure # Allow all DB writes from clients (for prototyping)
|
||||
static-html # Define static page content in .html files
|
||||
react-meteor-data # React higher-order component for reactively tracking Meteor data
|
||||
2
tools/static-assets/skel-chakra-ui/.meteor/platforms
Normal file
2
tools/static-assets/skel-chakra-ui/.meteor/platforms
Normal file
@@ -0,0 +1,2 @@
|
||||
server
|
||||
browser
|
||||
4
tools/static-assets/skel-chakra-ui/client/main.css
Normal file
4
tools/static-assets/skel-chakra-ui/client/main.css
Normal file
@@ -0,0 +1,4 @@
|
||||
body {
|
||||
padding: 10px;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
7
tools/static-assets/skel-chakra-ui/client/main.html
Normal file
7
tools/static-assets/skel-chakra-ui/client/main.html
Normal file
@@ -0,0 +1,7 @@
|
||||
<head>
|
||||
<title>~name~</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="react-target"></div>
|
||||
</body>
|
||||
8
tools/static-assets/skel-chakra-ui/client/main.jsx
Normal file
8
tools/static-assets/skel-chakra-ui/client/main.jsx
Normal file
@@ -0,0 +1,8 @@
|
||||
import React from 'react';
|
||||
import { Meteor } from 'meteor/meteor';
|
||||
import { render } from 'react-dom';
|
||||
import { App } from '/imports/ui/App';
|
||||
|
||||
Meteor.startup(() => {
|
||||
render(<App/>, document.getElementById('react-target'));
|
||||
});
|
||||
3
tools/static-assets/skel-chakra-ui/imports/api/links.js
Normal file
3
tools/static-assets/skel-chakra-ui/imports/api/links.js
Normal file
@@ -0,0 +1,3 @@
|
||||
import { Mongo } from 'meteor/mongo';
|
||||
|
||||
export const LinksCollection = new Mongo.Collection('links');
|
||||
24
tools/static-assets/skel-chakra-ui/imports/ui/App.jsx
Normal file
24
tools/static-assets/skel-chakra-ui/imports/ui/App.jsx
Normal file
@@ -0,0 +1,24 @@
|
||||
import React from 'react';
|
||||
import {Hello} from './Hello.jsx';
|
||||
import {Info} from './Info.jsx';
|
||||
import {ChakraProvider, ColorModeScript, extendTheme, Heading} from '@chakra-ui/react';
|
||||
|
||||
const theme = extendTheme({
|
||||
config: {
|
||||
initialColorMode: 'dark',
|
||||
useSystemColorMode: false,
|
||||
},
|
||||
});
|
||||
|
||||
export const App = () => {
|
||||
return (
|
||||
<>
|
||||
<ColorModeScript initialColorMode={theme.config.initialColorMode}/>
|
||||
<ChakraProvider theme={theme}>
|
||||
<Heading as='h1' size='4xl'>Welcome to Meteor!</Heading>
|
||||
<Hello/>
|
||||
<Info/>
|
||||
</ChakraProvider>
|
||||
</>
|
||||
);
|
||||
};
|
||||
17
tools/static-assets/skel-chakra-ui/imports/ui/Hello.jsx
Normal file
17
tools/static-assets/skel-chakra-ui/imports/ui/Hello.jsx
Normal file
@@ -0,0 +1,17 @@
|
||||
import React, { useState } from 'react';
|
||||
import {Box, Button, Text} from "@chakra-ui/react";
|
||||
|
||||
export const Hello = () => {
|
||||
const [counter, setCounter] = useState(0);
|
||||
|
||||
const increment = () => {
|
||||
setCounter(counter + 1);
|
||||
};
|
||||
|
||||
return (
|
||||
<Box>
|
||||
<Button variant='outline' onClick={increment}>Click Me</Button>
|
||||
<Text fontSize={'xl'}>You've pressed the button {counter} times.</Text>
|
||||
</Box>
|
||||
);
|
||||
};
|
||||
22
tools/static-assets/skel-chakra-ui/imports/ui/Info.jsx
Normal file
22
tools/static-assets/skel-chakra-ui/imports/ui/Info.jsx
Normal file
@@ -0,0 +1,22 @@
|
||||
import React from 'react';
|
||||
import { useTracker } from 'meteor/react-meteor-data';
|
||||
import { LinksCollection } from '../api/links';
|
||||
import {Box, Heading, Link, ListItem, UnorderedList} from "@chakra-ui/react";
|
||||
import {ExternalLinkIcon} from "@chakra-ui/icons";
|
||||
|
||||
export const Info = () => {
|
||||
const links = useTracker(() => {
|
||||
return LinksCollection.find().fetch();
|
||||
});
|
||||
|
||||
return (
|
||||
<Box>
|
||||
<Heading as='h2' size='3xl'>Learn Meteor!</Heading>
|
||||
<UnorderedList>{links.map(
|
||||
link => <ListItem key={link._id}>
|
||||
<Link isExternal href={link.url} target="_blank">{link.title} <ExternalLinkIcon mx='2px' /></Link>
|
||||
</ListItem>
|
||||
)}</UnorderedList>
|
||||
</Box>
|
||||
);
|
||||
};
|
||||
29
tools/static-assets/skel-chakra-ui/package.json
Normal file
29
tools/static-assets/skel-chakra-ui/package.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"name": "~name~",
|
||||
"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.18.6",
|
||||
"@chakra-ui/icons": "^1.1.7",
|
||||
"@chakra-ui/react": "^1.8.8",
|
||||
"@emotion/react": "^11.9.3",
|
||||
"@emotion/styled": "^11.9.3",
|
||||
"@react-icons/all-files": "^4.1.0",
|
||||
"framer-motion": "^6.4.2",
|
||||
"meteor-node-stubs": "^1.2.3",
|
||||
"react": "^17.0.2",
|
||||
"react-dom": "^17.0.2"
|
||||
},
|
||||
"meteor": {
|
||||
"mainModule": {
|
||||
"client": "client/main.jsx",
|
||||
"server": "server/main.js"
|
||||
},
|
||||
"testModule": "tests/main.js"
|
||||
}
|
||||
}
|
||||
31
tools/static-assets/skel-chakra-ui/server/main.js
Normal file
31
tools/static-assets/skel-chakra-ui/server/main.js
Normal file
@@ -0,0 +1,31 @@
|
||||
import { Meteor } from 'meteor/meteor';
|
||||
import { LinksCollection } from '/imports/api/links';
|
||||
|
||||
async function insertLink({ title, url }) {
|
||||
await LinksCollection.insertAsync({ title, url, createdAt: new Date() });
|
||||
}
|
||||
|
||||
Meteor.startup(async () => {
|
||||
// If the Links collection is empty, add some data.
|
||||
if (await LinksCollection.find().countAsync() === 0) {
|
||||
await insertLink({
|
||||
title: 'Do the Tutorial',
|
||||
url: 'https://www.meteor.com/tutorials/react/creating-an-app',
|
||||
});
|
||||
|
||||
await insertLink({
|
||||
title: 'Follow the Guide',
|
||||
url: 'https://guide.meteor.com',
|
||||
});
|
||||
|
||||
await insertLink({
|
||||
title: 'Read the Docs',
|
||||
url: 'https://docs.meteor.com',
|
||||
});
|
||||
|
||||
await insertLink({
|
||||
title: 'Discussions',
|
||||
url: 'https://forums.meteor.com',
|
||||
});
|
||||
}
|
||||
});
|
||||
20
tools/static-assets/skel-chakra-ui/tests/main.js
Normal file
20
tools/static-assets/skel-chakra-ui/tests/main.js
Normal file
@@ -0,0 +1,20 @@
|
||||
import assert from "assert";
|
||||
|
||||
describe("chakra-template", function () {
|
||||
it("package.json has correct name", async function () {
|
||||
const { name } = await import("../package.json");
|
||||
assert.strictEqual(name, "chakra-template");
|
||||
});
|
||||
|
||||
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);
|
||||
});
|
||||
}
|
||||
});
|
||||
1
tools/static-assets/skel-solid/.gitignore
vendored
Normal file
1
tools/static-assets/skel-solid/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
node_modules/
|
||||
1
tools/static-assets/skel-solid/.meteor/.gitignore
vendored
Normal file
1
tools/static-assets/skel-solid/.meteor/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
local
|
||||
23
tools/static-assets/skel-solid/.meteor/packages
Normal file
23
tools/static-assets/skel-solid/.meteor/packages
Normal file
@@ -0,0 +1,23 @@
|
||||
# Meteor packages used by this project, one per line.
|
||||
# Check this file (and the other files in this directory) into your repository.
|
||||
#
|
||||
# 'meteor add' and 'meteor remove' will edit this file for you,
|
||||
# but you can also edit it by hand.
|
||||
|
||||
meteor-base # Packages every Meteor app needs to have
|
||||
mobile-experience # Packages for a great mobile UX
|
||||
mongo # The database Meteor supports right now
|
||||
reactive-var # Reactive variable for tracker
|
||||
|
||||
standard-minifier-css # CSS minifier run for production mode
|
||||
standard-minifier-js # JS minifier run for production mode
|
||||
es5-shim # ECMAScript 5 compatibility for older browsers
|
||||
ecmascript # Enable ECMAScript2015+ syntax in app code
|
||||
typescript # Enable TypeScript syntax in .ts and .tsx modules
|
||||
shell-server # Server-side component of the `meteor shell` command
|
||||
hot-module-replacement # Update client in development without reloading the page
|
||||
|
||||
autopublish # Publish all data to the clients (for prototyping)
|
||||
insecure # Allow all DB writes from clients (for prototyping)
|
||||
static-html # Define static page content in .html files
|
||||
vite:bundler
|
||||
2
tools/static-assets/skel-solid/.meteor/platforms
Normal file
2
tools/static-assets/skel-solid/.meteor/platforms
Normal file
@@ -0,0 +1,2 @@
|
||||
server
|
||||
browser
|
||||
4
tools/static-assets/skel-solid/client/main.css
Normal file
4
tools/static-assets/skel-solid/client/main.css
Normal file
@@ -0,0 +1,4 @@
|
||||
body {
|
||||
padding: 10px;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
9
tools/static-assets/skel-solid/client/main.html
Normal file
9
tools/static-assets/skel-solid/client/main.html
Normal file
@@ -0,0 +1,9 @@
|
||||
<head>
|
||||
<title>~name~</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<noscript>You need to enable JavaScript to run this app.</noscript>
|
||||
<div id="root"></div>
|
||||
|
||||
</body>
|
||||
1
tools/static-assets/skel-solid/client/main.jsx
Normal file
1
tools/static-assets/skel-solid/client/main.jsx
Normal file
@@ -0,0 +1 @@
|
||||
// main entry point is in imports/ui/main.jsx
|
||||
4
tools/static-assets/skel-solid/imports/api/links.js
Normal file
4
tools/static-assets/skel-solid/imports/api/links.js
Normal file
@@ -0,0 +1,4 @@
|
||||
import { Mongo } from 'meteor/mongo';
|
||||
|
||||
export const LinksCollection = new Mongo.Collection('links');
|
||||
|
||||
12
tools/static-assets/skel-solid/imports/ui/App.jsx
Normal file
12
tools/static-assets/skel-solid/imports/ui/App.jsx
Normal file
@@ -0,0 +1,12 @@
|
||||
import { Hello } from "./Hello";
|
||||
import { Info } from "./Info";
|
||||
|
||||
export const App = () => (
|
||||
<div>
|
||||
<h1>Welcome to Meteor!</h1>
|
||||
<Hello/>
|
||||
<Info/>
|
||||
</div>
|
||||
);
|
||||
|
||||
|
||||
16
tools/static-assets/skel-solid/imports/ui/Hello.jsx
Normal file
16
tools/static-assets/skel-solid/imports/ui/Hello.jsx
Normal file
@@ -0,0 +1,16 @@
|
||||
import { createSignal } from "solid-js";
|
||||
|
||||
export const Hello = () => {
|
||||
const [counter, setCounter] = createSignal(0);
|
||||
|
||||
const increment = () => {
|
||||
setCounter(counter() + 1);
|
||||
};
|
||||
|
||||
return (
|
||||
<div>
|
||||
<button onClick={increment}>Click Me</button>
|
||||
<p>You've pressed the button {counter()} times.</p>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
26
tools/static-assets/skel-solid/imports/ui/Info.jsx
Normal file
26
tools/static-assets/skel-solid/imports/ui/Info.jsx
Normal file
@@ -0,0 +1,26 @@
|
||||
import { LinksCollection } from "../api/links";
|
||||
import { createSignal, For } from "solid-js";
|
||||
import { Tracker } from "meteor/tracker";
|
||||
|
||||
export const Info = () => {
|
||||
const [links, setLinks] = createSignal([]);
|
||||
|
||||
Tracker.autorun(() => {
|
||||
setLinks(LinksCollection.find().fetch());
|
||||
});
|
||||
|
||||
return (
|
||||
<div>
|
||||
<h2>Learn Meteor!</h2>
|
||||
<ul>
|
||||
<For each={links()}>{
|
||||
(link) =>
|
||||
<li>
|
||||
<a href={link.url} target="_blank">{link.title}</a>
|
||||
</li>
|
||||
}</For>
|
||||
</ul>
|
||||
</div>
|
||||
)
|
||||
|
||||
}
|
||||
8
tools/static-assets/skel-solid/imports/ui/main.jsx
Normal file
8
tools/static-assets/skel-solid/imports/ui/main.jsx
Normal file
@@ -0,0 +1,8 @@
|
||||
/* @refresh reload */
|
||||
import { render } from 'solid-js/web';
|
||||
import { App } from './App';
|
||||
import { Meteor } from "meteor/meteor";
|
||||
|
||||
Meteor.startup(() => {
|
||||
render(() => <App/>, document.getElementById('root'));
|
||||
})
|
||||
28
tools/static-assets/skel-solid/package.json
Normal file
28
tools/static-assets/skel-solid/package.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"name": "~name~",
|
||||
"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.17.9",
|
||||
"meteor-node-stubs": "^1.2.1",
|
||||
"solid-js": "^1.5.4"
|
||||
},
|
||||
"meteor": {
|
||||
"mainModule": {
|
||||
"client": "client/main.jsx",
|
||||
"server": "server/main.js"
|
||||
},
|
||||
"testModule": "tests/main.js"
|
||||
},
|
||||
"devDependencies": {
|
||||
"babel-preset-solid": "^1.5.4",
|
||||
"vite": "^3.0.9",
|
||||
"vite-plugin-solid": "^2.3.0",
|
||||
"vite-plugin-solid-svg": "^0.4.1"
|
||||
}
|
||||
}
|
||||
31
tools/static-assets/skel-solid/server/main.js
Normal file
31
tools/static-assets/skel-solid/server/main.js
Normal file
@@ -0,0 +1,31 @@
|
||||
import { Meteor } from 'meteor/meteor';
|
||||
import { LinksCollection } from '/imports/api/links';
|
||||
|
||||
async function insertLink({ title, url }) {
|
||||
await LinksCollection.insertAsync({ title, url, createdAt: new Date() });
|
||||
}
|
||||
|
||||
Meteor.startup(async () => {
|
||||
// If the Links collection is empty, add some data.
|
||||
if (await LinksCollection.find().countAsync() === 0) {
|
||||
await insertLink({
|
||||
title: 'Do the Tutorial',
|
||||
url: 'https://www.solidjs.com/tutorial/introduction_basics',
|
||||
});
|
||||
|
||||
await insertLink({
|
||||
title: 'Follow the Guide',
|
||||
url: 'https://guide.meteor.com',
|
||||
});
|
||||
|
||||
await insertLink({
|
||||
title: 'Read the Docs',
|
||||
url: 'https://docs.meteor.com',
|
||||
});
|
||||
|
||||
await insertLink({
|
||||
title: 'Discussions',
|
||||
url: 'https://forums.meteor.com',
|
||||
});
|
||||
}
|
||||
});
|
||||
20
tools/static-assets/skel-solid/tests/main.js
Normal file
20
tools/static-assets/skel-solid/tests/main.js
Normal file
@@ -0,0 +1,20 @@
|
||||
import assert from "assert";
|
||||
|
||||
describe("solid-template", function () {
|
||||
it("package.json has correct name", async function () {
|
||||
const { name } = await import("../package.json");
|
||||
assert.strictEqual(name, "solid-template");
|
||||
});
|
||||
|
||||
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);
|
||||
});
|
||||
}
|
||||
});
|
||||
12
tools/static-assets/skel-solid/vite.config.js
Normal file
12
tools/static-assets/skel-solid/vite.config.js
Normal file
@@ -0,0 +1,12 @@
|
||||
import { defineConfig } from 'vite';
|
||||
import solidPlugin from 'vite-plugin-solid';
|
||||
import solidSvg from "vite-plugin-solid-svg";
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [solidPlugin(), solidSvg({
|
||||
defaultExport: 'component',
|
||||
})],
|
||||
meteor: {
|
||||
clientEntry: 'imports/ui/main.jsx',
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user