@valantic/spartacus-mock
Version:
This project offers you the possibility to mock the OCC Endpoints of your Composable Storefront (Spartacus). It uses the Mock Service Worker to mock the API calls.
67 lines • 4.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.boilerplate = boilerplate;
const core_1 = require("@angular-devkit/core");
const schematics_1 = require("@angular-devkit/schematics");
const parse_name_1 = require("@schematics/angular/utility/parse-name");
function getParsedPath(workspaceConfigBuffer, name, relativePath) {
let parsedPath = (0, parse_name_1.parseName)('', name);
if (parsedPath.path === '/') {
const workspaceConfig = JSON.parse(workspaceConfigBuffer.toString());
const projectName = Object.keys(workspaceConfig.projects)[0];
const defaultProject = workspaceConfig.projects[projectName];
const sourceRoot = defaultProject.sourceRoot;
parsedPath = (0, parse_name_1.parseName)(`${sourceRoot}/${relativePath}`, name);
}
return parsedPath;
}
function getTemplate(options, tree, name, relativePath) {
const workspaceConfigBuffer = tree.read('angular.json');
if (!workspaceConfigBuffer) {
throw new schematics_1.SchematicsException('Not an Angular CLI Workspace');
}
const sourceTemplate = (0, schematics_1.url)(`./files/${name}`);
const { name: parsedName, path } = getParsedPath(workspaceConfigBuffer, name, relativePath);
return (0, schematics_1.apply)(sourceTemplate, [
(0, schematics_1.template)({
...options,
...core_1.strings,
name: parsedName,
}),
(0, schematics_1.move)(path),
]);
}
function logMessage() {
return (tree, context) => {
context.logger.info('⌛️ Waiting for file copy and package installation to finish..');
return tree;
};
}
function boilerplate(options) {
return (tree, context) => {
context.logger.info('🔧️ Enhance main.ts file..');
context.logger.info('🔧️ Enhance environment.ts file..');
context.logger.info('🔧️ Add environment.model.ts file..');
context.logger.info('🔧️ Add boilerplate src/mock-server folder and files..');
return (0, schematics_1.chain)([
// override main file with additional logic
(0, schematics_1.branchAndMerge)((0, schematics_1.chain)([(0, schematics_1.mergeWith)(getTemplate(options, tree, 'main', ''), schematics_1.MergeStrategy.Overwrite)]), schematics_1.MergeStrategy.Overwrite),
// override environment files with additional logic
(0, schematics_1.branchAndMerge)((0, schematics_1.chain)([(0, schematics_1.mergeWith)(getTemplate(options, tree, 'environments', 'environments'), schematics_1.MergeStrategy.Overwrite)]), schematics_1.MergeStrategy.Overwrite),
// add mock-server files with some boilerplate code
(0, schematics_1.branchAndMerge)((0, schematics_1.chain)([(0, schematics_1.mergeWith)(getTemplate(options, tree, 'mock-server', 'mock-server'), schematics_1.MergeStrategy.Overwrite)]), schematics_1.MergeStrategy.Overwrite),
// add mock-data files with readme
(0, schematics_1.branchAndMerge)((0, schematics_1.chain)([(0, schematics_1.mergeWith)(getTemplate(options, tree, 'mock-data', 'mock-server/mock-data'), schematics_1.MergeStrategy.Overwrite)]), schematics_1.MergeStrategy.Overwrite),
// add languages files with languages generate method
(0, schematics_1.branchAndMerge)((0, schematics_1.chain)([
(0, schematics_1.mergeWith)(getTemplate(options, tree, 'mock-data--languages', 'mock-server/mock-data/languages'), schematics_1.MergeStrategy.Overwrite),
]), schematics_1.MergeStrategy.Overwrite),
// add translation files with default en translations from spartacus
(0, schematics_1.branchAndMerge)((0, schematics_1.chain)([
(0, schematics_1.mergeWith)(getTemplate(options, tree, 'mock-data--translations', 'mock-server/mock-data/translations'), schematics_1.MergeStrategy.Overwrite),
]), schematics_1.MergeStrategy.Overwrite),
logMessage(),
])(tree, context);
};
}
//# sourceMappingURL=index.js.map