576bcf554f
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
78 lines
1.7 KiB
JavaScript
78 lines
1.7 KiB
JavaScript
/* eslint-env node */
|
|
|
|
let USE_MIRAGE = true;
|
|
|
|
if (process.env.USE_MIRAGE) {
|
|
USE_MIRAGE = process.env.USE_MIRAGE == 'true';
|
|
}
|
|
|
|
module.exports = function(environment) {
|
|
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
|
|
},
|
|
EXTEND_PROTOTYPES: {
|
|
// Prevent Ember Data from overriding Date.parse.
|
|
Date: false,
|
|
},
|
|
},
|
|
|
|
APP: {
|
|
blockingQueries: true,
|
|
mirageScenario: 'smallCluster',
|
|
mirageWithNamespaces: true,
|
|
mirageWithTokens: true,
|
|
mirageWithRegions: true,
|
|
},
|
|
};
|
|
|
|
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,
|
|
};
|
|
|
|
if (process.env.STORYBOOK === 'true') {
|
|
ENV.APP.autoboot = false;
|
|
ENV.rootURL = '/';
|
|
}
|
|
}
|
|
|
|
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';
|
|
ENV.APP.autoboot = false;
|
|
|
|
ENV.browserify = {
|
|
tests: true,
|
|
};
|
|
|
|
ENV['ember-cli-mirage'] = {
|
|
trackRequests: true,
|
|
};
|
|
}
|
|
|
|
// if (environment === 'production') {
|
|
// }
|
|
|
|
return ENV;
|
|
};
|