ByJoe Reid,
who has been covering movies and pop culture since 2007
Photo-Illustration: Vulture; Photos: FX, HBO, Apple TV+
It happens every year, whether it’s the Oscars or the Emmys: At some point, we get accustomed to talking and thinking and (ahem) writing about the same handful of nominated shows. And then we start to long for what comes next. Emmy season is especially prone to this, since shows in contention for a future year’s ceremony air during the present year’s campaign cycle. The Bear, to name but one, always premieres a new season while the previous one competes for TV Academy recognition.
The 2024 Emmy nominees cast a foreboding presence over next year’s ceremony not because of the shows that are nominated, but because of the ones that aren’t. We’ve talked a lot about how this year’s Outstanding Drama lineup was shaped as much by the shows that weren’t yet eligible (because they didn’t air new episodes; see HBO shows like House of the Dragon, The Last of Us, and White Lotus) as the shows that were. Looking ahead to next year, many of those shows will finally return, flooding the zone with contenders that have Emmy pedigree and known fan bases.
The eligibility window for the 2025 Emmys began on June 1, 2024, and runs until May 31, 2025. In each of the major categories — Outstanding Drama Series, Outstanding Comedy Series, and Outstanding Limited Series — we can already identify a number of series thatmerit consideration. There are the new shows that have already aired this summer, the old shows that are in the ’24 Emmys conversation and will be planning a return in time for ’25, and the heavy hitters that took the 2024 awards cycle off and will be storming the gates to get back in. (For now, we’re setting aside brand-new shows that haven’t premiered yet since they’re too much of an unknown quantity. That said … the new Dune show is probably one to keep an eye on.) How to make sense of it all? Here’s our best shot.
.
Outstanding Drama Series
Photo: Warner Media
Shows That Already Aired
The major contender of note here is the just-completed second season of House of the Dragon, which was a Drama Series nominee in 2023. There was more than a little bit of frustration in the air when the season-two finale was said and done. In her review, Vulture’s Kathryn VanArendonk said the season “ends with a whimper rather than a bang,” describing a show whose franchise roots are choking off its sense of adventure and drama. This question of “when are they gonna get to the big dragon battle?” was pervasive and could end up costing HOTD a return to the Outstanding Drama Series category (even if, with eight slots, it’s typically harder for such a recognizable title to miss). HBO is certainly going to push it for nominations, and it will likely show up big in the crafts categories at the very least.
The fact that shows like Slow Horses, The Morning Show, and The Gilded Age leveled up to become Drama Series nominees this year has to be encouraging for the likes of Interview With the Vampire and Industry. Both have steadily grown in interest past their genre or niche roots. Both have partisans in the media who will vouch for them as the best showson TV. Interview could end up as a priority for AMC, but you have to imagine that if Industry is one of HBO’s Emmy priorities come season’s end, then that would mean a lot of the bigger-ticket items on its schedule really crashed and burned.
Apple’s Presumed Innocent has been renewed for a second season despite very much seeming like a limited story through most of its run. Apple says the new season will focus on an entirely different case, which could mean this oneactually stays in Limited Series. But remember that if there is connective tissue between the seasons, the post–White Lotus Emmy rules state that the show will be placed in Drama.
Premiering this week is the second season of Prime Video’s Rings of Power and, early next month, the fourth and final season of HBO’s My Brilliant Friend. Emmy voters have yet to latch on to either of these shows, so they would require a real spike in viewership or chatter to put them on the level of Interview and Industry.
2024 Nominees That Should Be Back
Slow Horses returns for its fourth season in mere days after finally grabbing the attention of Academy voters this year. Meanwhile, The Morning Show and The Gilded Age are currently doing what they do best: engaging in an arms race of guest-star-casting announcements that make social media and Slack channels apoplectic. It’s not clear whether either will premiere in time to compete in next year’s race, but if they do — and if the voters who nominated those two shows remain enchanted with their starry, soapy approach to TV drama — both could certainly return to the Emmys race.
Fallout, Mr. and Mrs. Smith, and Shōgun have all been renewed for a second season, but as of now, none of them are projected to return before May of next year.
Returning From Hiatus
Here’s where this race gets interesting. No fewer than half a dozen former Outstanding Drama nominees are due to drop new seasons this year, including the long-awaited return of Squid Game. Its run through the 2022 Emmys (14 nominations, six wins) felt very much like voters were caught up in the whirlwind of its massive crossover success, which saw the South Korean dystopian drama become a global sensation within weeks of its Netflix premiere. Three years later, will the next installment have the same impact?
Severance, another show that scored 14 nominations at the 2022 Emmys (only two wins, though), is in a similar boat. By the time it finally premieres its second season, scheduled for January, it will have been over 33 months since it last aired. Obviously, much of this is due to those widely reported production difficulties, which layers even more pressure on the new season to perform. Still, if Severance is once again a gripping sci-fi mystery after all this time, it’s certainly going to wind up back in the Emmys mix.
Depending on when in 2025 Stranger Thingsseason five actually premieres, the other Netflix juggernaut will also be back after three years away. The streamer dropped the last two seasons across two summer holiday weekends — Memorial Day and July Fourth — and if that remains the case, it’s a 50-50 split whether the show will be eligible in 2025 or 2026.
Yellowjackets didn’t air new episodes in 2024 due to the strikes, but Showtime premiered the first two seasons in January and May, so I would place a bet on an early-January premiere for season three (but that’s pure conjecture on my part). Many critics saw Yellowjackets’ second season as a sophomore slump, but it got nominated in Drama Series anyway, which means voters clearly like it.
Disney+’s Andoralso had its second season pushed back by the strike. There was talk from creator Tony Gilroy that the original plan was to debut season two in August 2024. A full year’s pushback to August of 2025 would place Andor out of the Emmy eligibility window until 2026.
And then there’s HBO, which had a decidedly muted presence on this year’s Emmy ballot. A big part of that was the absence of The Last of Us and The White Lotus, two of the most-nominated series at the 2023 Emmys. HBO already put out a trailer for The Last of Us, a good indication that the new season isn’t too far away; the first was a January premiere, so early 2025 seems like a solid bet.
HBO won’t want to overlap air dates for its biggest dramas, so The White Lotus would need to premiere its third season in late spring in order to make the Emmys cutoff date. That could definitely happen! We just don’t know for sure. The new season, set in Thailand, features the return of Natasha Rothwell’s character, Belinda, from season one, and a new batch of actors, including 2024 Emmy nominees Carrie Coon and Walton Goggins along with Parker Posey, Leslie Bibb, Jason Isaacs, Michelle Monaghan, and Scott Glenn.
.
Outstanding Comedy Series
Photo: Craig Blankenhorn/ HULU
Shows That Already Aired
As is its custom, The Bear premiered its new season right as Emmy nominations emerged for its previous season. Unfortunately, this was also the time that the big “Is The Bear Really a Comedy?” discussion started, which coincided with the big “Is The Bear Season 3 a Letdown” conversation. Whether any of this ends up penetrating voters’ bubbles is anyone’s guess. What’s worth noting is that if FX had wanted to make the bold move of submitting The Bear as a drama to the Emmys (an idea that exists purely in the media, as far as we know), this would have been the year to do it, with the drama categories relatively threadbare. A move to Drama next year would be insanity given how competitive the category will be.
Only Murders in the Building just premiered the first episode of its fourth season this week, but barring a drastic downturn in its final three episodes, it’s sensible to think it will be strongly in the mix for next year’s awards. As for other comedies from this summer? Apple TV+’s Bad Monkey feels like the kind of show that appeals to Emmy voters, what with the Bill Lawrence producing stamp and Vince Vaughn getting the career-resurgence push.
2024 Nominees That Should Be Back
We can probably pencil in Abbott Elementary for a nomination right now. What We Do in the Shadows is scheduled to premiere its sixth and final season in late October. Hacks was one of the last major Emmy contenders to premiere within the eligibility window for 2024, and there’s no reason to think that won’t happen again in May 2025.
Then there’s Palm Royale, which got renewed for a second season, though that production timeline is unknown. The perception was that Palm Royale snuck into the Comedy Series lineup as the seventh or eighth show in the field. Whether or not that’s true, it will be interesting to see if a second season will be able to beat back any new challengers.
Returning From Hiatus
Netflix’s Wednesday is the one 2023 Comedy Series nominee that sat out the 2024 awards season. After campaigning hard for The Gentlemen this year (a show that won’t even start filming until next year) and getting only a single nomination for it, Netflix may shift its comedy energies back to Jenna Ortega and her sullen title character. This would be helped greatly by Beetlejuice Beetlejuice landing as a hit this fall, sending producer Tim Burton and Ortega into season two of Wednesday with a ton of industry juice.
.
Outstanding Limited Series
Photo: Courtesy Disney
On the one hand, it’s harder to predict the Limited Series nominees this far out because you can’t rely on previous nominees. On the other hand, this means you can just assess these shows on their own merits and not bother with whether the voters will ignore them in favor of shows they’re already familiar with; every limited series is on equal footing. In terms of what’s aired this summer, Apple TV+’s Lady in the Lake is the kind of thriller that should appeal to voters. Apple may have desensitized TV critics and viewers with its onslaught of top-tier acting talent in its shows (Colin Farrell couldn’t even get nominated for playing an alien cop!), but Natalie Portman playing in the Mare of Easttown sandbox, even on a show that wasn’t remotely as buzzy as Mare, feels like a good bet to at least be in the mix.
And then there’s The Acolyte, a show that would have preferred to compete in Drama, only to have Disney pull the plug and turn it into a one-season wonder. Fans of the Leslye Headland–created series can rationalize that The Acolyte might have a better chance at getting nominated in Limited Series anyway. But that may not matter if Disney+ doesn’t campaign for it — and it probably won’t, with more franchise programs arriving in the next few months. The streamer boasts both Marvel’s Agatha All Along and Star Wars: Skeleton Crew among its fall offerings, competing with HBO in the superhero space as The Penguin premieres on September 19.
Since there are no returning nominees to discuss in Limited Series, here’s a purely speculative look at the ones on the horizon. Netflix’s The Perfect Couple, debuting just around the corner on September 5, features an all-star cast headed by Nicole Kidman. Kidman’s presence on a TV show is nowadays more in the realm of expected than special; she starred in two shows this past year — Special Ops: Lioness and Expats — and was nominated for neither. Still, she’s the kind of talent that at least demands consideration for whatever she does.
Alfonso Cuaron’s Disclaimer, starring Cate Blanchett, is making the festival rounds this month ahead of an October 11 premiere on Apple TV+, giving the whole endeavor an aura of prestige. It should be noted, however, that last year’s Expats also rode the festival circuit this season, and that show has been used as an Emmys counterexample in two consecutive paragraphs.
Speaking of prestige, though, there’s The Agency, a Paramount+-with-Showtime limited series produced by George Clooney and Grant Heslov and starring Michael Fassbender, Jeffrey Wright, Richard Gere, Jodie Turner-Smith, Katherine Waterston, and John Magaro. If voters can figure out how to watch Paramount+ with Showtime, that’ll be a formidable challenger.
By submitting your email, you agree to our
Terms and Privacy Notice
and to receive email correspondence from us. This site is protected by reCAPTCHA and the Google
Privacy Policy and
Terms of Service apply.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
Already a subscriber?
Already a subscriber?
`;
// integrate Sub(x) scripts and elements
if (hostname !== 'subs.nymag.com') { // do not integrate on this subdomain
document.head.appendChild(trackingScript);
document.body.insertAdjacentHTML('beforeend', subXAnimationElements);
}
There was an error processing the request. Please try again later."}).catch(e=>console.error("Error verifying email: ",e)))(r.querySelector(".content"),o.bannerCTAVerification)})):(l.remove(),s.remove()),o.dismissable||n.remove(),o.useAlertIcon||a.remove(),r.classList.add("show"),n.addEventListener("click",()=>{u(),r.classList.remove("show")})}else r.remove()}});
}, {"1":1,"6":6,"12":12,"35":35,"40":40}];
window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(3),auth=require(12),signInButton=dom.find(".user-signin"),signOutButton=dom.find(".user-signout"),globalNav=dom.find('[class^="global-nav"]'),body=dom.find("body"),dropdownItems=dom.findAll(".dropdown-wrap"),gtm=require(1),appendLandingPageParams=require(136),pageUri=require(124).getPageUri(),subscriptionPromoLinks=dom.findAll(".persist-params"),searchString=window.location.search||"";function closeDropdowns(e){let n=globalNav.querySelectorAll(".dropdown.open");dropdownItems.forEach(function(t){let o=t.querySelector(".dropdown");!n||t.contains(e.target)&&27!==e.keyCode||o.classList.remove("open")})}function gtmSendReport(e,n,t){let o={eventCategory:"ecommerce",eventAction:"componentClick",brand:e,dimension23:"global-nav",list:pageUri,pageZone:"header",variant:"nav-link"};"global-nav-link"===t&&(o.eventLabel=n.href),gtm.reportNow(o)}function updateElementTargetUrlsIfQueryStrings(e){if(searchString){const n=new URLSearchParams(searchString);let t=e.href;if(t.includes("?")){const o=t.split("?"),i=new URLSearchParams(o[1]);for(let e of n.entries())i.set(e[0],e[1]);t=`${o[0]}?${i.toString()}`,e.href=t}else e.href=`${t}?${n.toString()}`}}function init(e){const n=e.querySelectorAll(".to-landing-page");window.addEventListener("auth:init",()=>{signInButton.addEventListener("click",function(e){e.preventDefault(),auth.showEmbeddedLoginFlow("top navigation")}),signOutButton.addEventListener("click",function(e){e.preventDefault(),gtmSendReport("Sign Out",e.target,"user-info-link"),auth.logout()}),auth.isAuthenticated()&&e.classList.add("signed-in"),auth.isSubscriber()&&e.classList.add("subscribed"),e.querySelectorAll(".user-link").forEach(e=>{e.classList.add("active")}),subscriptionPromoLinks.forEach(e=>{updateElementTargetUrlsIfQueryStrings(e)}),appendLandingPageParams(n)})}dropdownItems.forEach(function(e){e.addEventListener("click",function(){e.querySelector(".dropdown").classList.toggle("open")})}),body.addEventListener("click",closeDropdowns),document.addEventListener("keydown",closeDropdowns),globalNav.addEventListener("click",function(e){let n=e.target;n.classList.contains("global-nav-track")&>mSendReport(n.text,n,"global-nav-link")}),module.exports=init;
}, {"1":1,"3":3,"12":12,"124":124,"136":136}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(221),_each=require(408),Fingerprint2=require(407),DS=require(406),Eventify=require(246);function registerGlobals(){window.DS=DS,window.Eventify=Eventify,window.Fingerprint2=Fingerprint2,DS.value("Eventify",Eventify),DS.value("Fingerprint2",Fingerprint2),DS.value("$document",window.document),DS.value("$window",window)}function mountDollarSliceComponents(){DS.service("components",["$document","$module",function(e,n){var o=_pickBy(n.definitions,e=>e.providerStrategy===n.providers.controller),r=Object.keys(o);function t(e){return o=>{try{n.get(e,o)}catch(e){logMountError(o,e)}}}_each(r,n=>{var o=e.querySelectorAll('[data-uri*="/_components/'+n+'/"]'),r=e.querySelectorAll('[data-uri$="/_components/'+n+'"]');_each(o,t(n)),_each(r,t(n))}),this.components=r}]),DS.get("components")}function logMountError(e,n){const o=e.outerHTML.slice(0,e.outerHTML.indexOf(e.innerHTML));console.error("Error attaching controller to "+o,n)}registerGlobals(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{mountDollarSliceComponents()}):mountDollarSliceComponents();
}, {"221":221,"246":246,"406":406,"407":407,"408":408}];
window.modules["ads.legacy"] = [function(require,module,exports){"use strict";const _map=require(118),_forEach=require(107),_isString=require(268),_intersectionWith=require(409),_isEqual=require(274),_each=require(408),_debounce=require(182),_sortBy=require(205),page=require(124),visit=require(114);DS.service("adService",["Eventify","$cid","$document","$window",function(e,t,a,i){var o,n,s,r,d,c,u,l,g={},p=this,h=[],f=visit.getQueryParamsObject(["utm_campaign"]),m=document.querySelector('script[data-type="ad-a9"]'),b=[],w=!1,v=[],y=document.querySelector('script[data-name="ad-doubleverify"]');document.querySelector('script[data-name="concert-ads"]')||(i.NYM={},i.NYM.analytics={},i.NYM.analytics.adStartTime=i.performance.now(),i.googletag=i.googletag||{},i.googletag.cmd=i.googletag.cmd||[],u=i.googletag,(m||y)&&(i.googletag.cmd=i.googletag.cmd||[],i.googletag.cmd.push(function(){i.googletag.pubads().disableInitialLoad()})),m&&(l=i.setInterval(function(){void 0!==window.apstag&&void 0!==window.apstag.timeout&&(i.clearInterval(l),window.apstag.cleared=!0,l=null)},10),setTimeout(function(){l&&(i.clearInterval(l),i.googletag.pubads().refresh(),window.apstag||console.log("MESSAGE: Timeout for A9 load exceeded, aborting"))},500)),y&&(b.push(new Promise(function(e){w?e():v.push(e)})),c=i.setTimeout(T,2500)),o=function(e){var t,a,o=e.data,n=[];return o.loaded?e:(o.loaded=!0,t=null,(t=o.sizes?u.defineSlot(o.name,o.sizes,o.id).addService(u.pubads()):u.defineOutOfPageSlot(o.name,o.id).addService(u.pubads())).setTargeting("adid",o.id),f.hasOwnProperty("utm_campaign")&&t.setTargeting("utmcamp",f.utm_campaign),a=p.getAdCount(o.label),t.setTargeting("label",o.label+"_"+o.site+"-"+a),u.display(o.id),u.pubads().addEventListener("slotOnload",function(){i.NYM.analytics.firstAdLoadTime||(i.NYM.analytics.firstAdLoadTime=i.performance.now(),i.NYM.analytics.firstAdLoadLabel=e.data.label)}),n=_(o),Promise.all(b).then(function(){n?window.apstag&&window.apstag.cleared?window.apstag.fetchBids({slots:[n],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([t],{changeCorrelator:!1})})}):y&&u.pubads().refresh([t],{changeCorrelator:!1}):u.pubads().refresh([t],{changeCorrelator:!1})}),e.slot=t,e)},n=function(e){var a,i,o,n=t(),s=e.getAttribute("data-name"),r=e.getAttribute("data-sizes"),d=e.getAttribute("data-label"),c=e.getAttribute("data-site");n=e.id,r&&r.length?(r=r.split(","),a=[],_map(r,function(e){e=e.split("x"),i=parseInt(e[0]),o=parseInt(e[1]),a.push([i,o])})):(e.classList.add("oop"),a=!1),this.data={id:n,name:s,sizes:a,loaded:!1,label:d,site:c},g[n]=this},r=function(e){u.cmd.push(function(){var t=o(e);g[e.data.id]=t})},s=function(e){var t=[];e.slot?(t=_(e))&&window.apstag&&window.apstag.cleared&&window.apstag.fetchBids({slots:[t],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([e.slot],{changeCorrelator:!1})})}):e&&r(e)},u.cmd.push(function(){var e,t,o,n=page.getMeta("article:tag"),s=page.getMeta("author"),r=i.location.href,d=(e=a.head.querySelector(".head-gtm"),t=a.body.querySelector(".gtm"),e&&"top"===e.getAttribute("data-gtm")?"gtmtop":t&&"bottom"===t.getAttribute("data-gtm")?"gtmbottom":"");o=[],_forEach([n,s,d],function(e){_forEach(e.split(","),function(e){(e=e.trim().toLowerCase().replace(/\s/g,"-").replace(/\'|\’/g,"")).length&&o.push(e)})}),u.pubads().setTargeting("kw",o),u.pubads().setTargeting("entry_group",o),r=r.slice(r.lastIndexOf("/")+1),u.pubads().setTargeting("pn",r),u.companionAds().setRefreshUnfilledSlots(!0),u.pubads().enableAsyncRendering(),u.enableServices()}),this.load=r,this.create=function(e){return new n(e)},this.refresh=function(e){var t;_isString(e)?(t=this.getById(e),s(t)):s(e)},this.remove=function(e){var t=e.data.id;a.getElementById(t).innerHTML=""},this.getAdCount=function(e){var t,a=0,i=Object.keys(g);return _each(i,function(i){(t=g[i]).data.loaded&&t.data.label===e&&a++}),a},this.getById=function(e){return g[e]},d=_debounce(function(){var e={TopLeaderboard:1,RightColTopMPU:2,outOfPage:99,"homepageTakeover/TopLeaderboard":1},t=_sortBy(h,function(t){return e[t.data.label]||10});_forEach(t,function(e){return e.data.sizes?r(e):i.setTimeout(function(){r(e)},2e3)}),y&&window.PQ.cmd.push(()=>{try{window.PQ.loadSignals(["ids","bsc","vlp"],T)}catch(e){T(),console.error(`There has been an error loading Double Verify signals: ${e}`)}}),h=[]},10),this.addToPageLoadQueue=function(e){h.push(e),d()});function _(e){var t,a=e.sizes;return a=_intersectionWith(a,[[970,250],[970,90],[728,90],[300,600],[300,250],[320,100],[320,50]],_isEqual),e.sizes&&e.sizes.length&&(t={slotID:e.id,sizes:a,slotName:e.label}),t}function T(){i.clearTimeout(c),w=!0,_forEach(v,function(e){e()})}}]);
}, {"107":107,"114":114,"118":118,"124":124,"182":182,"205":205,"268":268,"274":274,"408":408,"409":409}];
window.modules["cid.legacy"] = [function(require,module,exports){"use strict";DS.service("$cid",function(){var r=Math.floor(100*Math.random());return function(){return"cid-"+ ++r}});
}, {}];
window.modules["client.legacy"] = [function(require,module,exports){"use strict";require("cid.legacy"),require("ads.legacy"),require("facebook.legacy"),require("aaa-module-mounting.legacy");
}, {"cid.legacy":"cid.legacy","aaa-module-mounting.legacy":"aaa-module-mounting.legacy","ads.legacy":"ads.legacy","facebook.legacy":"facebook.legacy"}];
window.modules["facebook.legacy"] = [function(require,module,exports){"use strict";DS.service("facebook",[function(){this.fb=function(i){window.FB&&window.FB[i].apply(this,Array.prototype.slice.call(arguments,1))}}]);
}, {}];
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o typeof key === 'string' && key.match(/\.legacy$/)).forEach(key => window.require(key));
}
function tryToMount(fn, el, name) {
try {
fn(el); // init the controller
} catch (e) {
const elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML));
console.error(`Error initializing controller for "${name}" on "${elementTag}"`, e);
}
}
/**
* mount client.js component controllers
*/
function mountComponentModules() {
Object.keys(window.modules).filter(key => typeof key === 'string' && key.match(/\.client$/)).forEach(key => {
let controllerFn = window.require(key);
if (typeof controllerFn === 'function') {
const name = key.replace('.client', ''),
instancesSelector = `[data-uri*="_components/${name}/"]`,
defaultSelector = `[data-uri$="_components${name}"]`,
instances = document.querySelectorAll(instancesSelector),
defaults = document.querySelectorAll(defaultSelector);
for (let el of instances) {
tryToMount(controllerFn, el, name);
}
for (let el of defaults) {
tryToMount(controllerFn, el, name);
}
}
});
}
// Make sure that a `window.process.env.NODE_ENV` is available in the client for any dependencies,
// services, or components that could require it
// note: the `` value is swapped for the actual environment variable in /lib/cmd/compile/scripts.js
window.process = window.process || {};
window.process.env = window.process.env || {};
if (!window.process.env.NODE_ENV) {
window.process.env.NODE_ENV = '';
}
// note: legacy controllers that require legacy services (e.g. dollar-slice) must
// wait for DOMContentLoaded to initialize themselves, as the files themselves must be mounted first
mountLegacyServices();
mountComponentModules();
// ]]