open-nomad/ui/config/environment.js

79 lines
1.7 KiB
JavaScript
Raw Normal View History

2017-09-19 14:47:10 +00:00
/* eslint-env node */
let USE_MIRAGE = true;
if (process.env.USE_MIRAGE) {
USE_MIRAGE = process.env.USE_MIRAGE == 'true';
}
2021-12-28 14:45:20 +00:00
module.exports = function (environment) {
2017-09-19 14:47:10 +00:00
var ENV = {
modulePrefix: 'nomad-ui',
environment: environment,
rootURL: '/ui/',
locationType: 'auto',
EmberENV: {
FEATURES: {
// Here you can enable experimental features on an ember canary build
// e.g. EMBER_NATIVE_DECORATOR_SUPPORT: true
2017-09-19 14:47:10 +00:00
},
EXTEND_PROTOTYPES: {
// Prevent Ember Data from overriding Date.parse.
Date: false,
},
},
APP: {
2020-10-15 17:32:08 +00:00
blockingQueries: true,
mirageScenario: 'topoMedium',
mirageWithNamespaces: false,
mirageWithTokens: true,
2020-10-15 17:32:08 +00:00
mirageWithRegions: true,
showStorybookLink: process.env.STORYBOOK_LINK === 'true',
2017-09-19 14:47:10 +00:00
},
};
if (environment === 'development') {
// ENV.APP.LOG_RESOLVER = true;
// ENV.APP.LOG_ACTIVE_GENERATION = true;
// ENV.APP.LOG_TRANSITIONS = true;
// ENV.APP.LOG_TRANSITIONS_INTERNAL = true;
// ENV.APP.LOG_VIEW_LOOKUPS = true;
ENV['ember-cli-mirage'] = {
enabled: USE_MIRAGE,
excludeFilesFromBuild: !USE_MIRAGE,
2017-09-19 14:47:10 +00:00
};
UI: Migrate to Storybook (#6507) I originally planned to add component documentation, but as this dragged on and I found that JSDoc-to-Markdown sometimes needed hand-tuning, I decided to skip it and focus on replicating what was already present in Freestyle. Adding documentation is a finite task that can be revisited in the future. My goal was to migrate everything from Freestyle with as few changes as possible. Some adaptations that I found necessary: • the DelayedArray and DelayedTruth utilities that delay component rendering until slightly after initial render because without them: ◦ charts were rendering with zero width ◦ the JSON viewer was rendering with empty content • Storybook in Ember renders components in a routerless/controllerless context by default, so some component stories needed changes: ◦ table pagination/sorting stories access to query params, which necessitates some reaching into Ember internals to start routing and dynamically generate a Storybook route/controller to render components into ◦ some stories have a faux controller as part of their Storybook context that hosts setInterval-linked dynamic computed properties • some jiggery-pokery with anchor tags ◦ inert href='#' had to become href='javascript:; ◦ links that are actually meant to navigate need target='_parent' so they don’t navigate inside the Storybook iframe Maybe some of these could be addressed by fixes in ember-cli-storybook but I’m wary of digging around in there any more than I already have, as I’ve lost a lot of time to Storybook confusion and frustrations already 😞 The STORYBOOK=true environment variable tweaks some environment settings to get things working as expected in the Storybook context. I chose to: • use angle bracket invocation within stories rather than have to migrate them soon after having moved to Storybook • keep Freestyle around for now for its palette and typeface components
2020-01-21 21:46:32 +00:00
if (process.env.STORYBOOK === 'true') {
ENV.APP.autoboot = false;
ENV.rootURL = '/';
}
2017-09-19 14:47:10 +00:00
}
if (environment === 'test') {
// Testem prefers this...
ENV.locationType = 'none';
// keep test console output quieter
ENV.APP.LOG_ACTIVE_GENERATION = false;
ENV.APP.LOG_VIEW_LOOKUPS = false;
ENV.APP.rootElement = '#ember-testing';
2019-03-14 02:15:25 +00:00
ENV.APP.autoboot = false;
2017-09-19 14:47:10 +00:00
ENV.browserify = {
tests: true,
};
ENV['ember-cli-mirage'] = {
trackRequests: true,
};
2017-09-19 14:47:10 +00:00
}
// if (environment === 'production') {
// }
2017-09-19 14:47:10 +00:00
return ENV;
};