UNPKG

@nx-plugins/slidev

Version:

The Nx Plugin for Slidev that contains executors, generators, and utilities for managing Slidev applications within an Nx workspace.

78 lines 3.91 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.filePathPrefix = exports.slidevProjectSchematic = void 0; const tslib_1 = require("tslib"); const devkit_1 = require("@nrwl/devkit"); const generator_1 = require("../init/generator"); const create_files_1 = require("./lib/create-files"); const schemaDefaults = {}; function normalizeOptions(tree, options) { const { appsDir } = (0, devkit_1.getWorkspaceLayout)(tree); const projectName = filePathPrefix(options.directory ? `${options.directory}-${options.name}` : options.name); const projectRoot = options.directory ? (0, devkit_1.joinPathFragments)(appsDir, (0, devkit_1.names)(options.directory).fileName, options.name) : (0, devkit_1.joinPathFragments)(appsDir, options.name); return Object.assign(Object.assign(Object.assign({}, schemaDefaults), options), { projectName, projectRoot, offsetFromRoot: (0, devkit_1.offsetFromRoot)(projectRoot) }); } function slidevProjectGenerator(tree, schema) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const options = normalizeOptions(tree, schema); const installTask = (0, generator_1.default)(tree, { skipPackageJson: options.skipPackageJson, }); (0, devkit_1.addProjectConfiguration)(tree, options.name, { root: options.projectRoot, sourceRoot: (0, devkit_1.joinPathFragments)(options.projectRoot, 'src'), projectType: 'application', targets: { build: { executor: '@nx-plugins/slidev:build', outputs: [(0, devkit_1.joinPathFragments)((0, devkit_1.normalizePath)(options.projectRoot))], options: { entry: 'src/slides.md', /* We need to increase one level due to slidev does not have consistency between the way to get the output on build and export command */ output: `${options.offsetFromRoot}../dist/${options.name}/${options.name}-slides`, }, }, serve: { executor: '@nx-plugins/slidev:slidev', outputs: [(0, devkit_1.joinPathFragments)((0, devkit_1.normalizePath)(options.projectRoot))], options: { entry: 'src/slides.md', }, }, export: { executor: '@nx-plugins/slidev:export', outputs: [(0, devkit_1.joinPathFragments)((0, devkit_1.normalizePath)(options.projectRoot))], options: { entry: 'src/slides.md', output: `${options.offsetFromRoot}dist/${options.name}/${options.name}-slides`, }, }, format: { executor: '@nx-plugins/slidev:export', outputs: [(0, devkit_1.joinPathFragments)((0, devkit_1.normalizePath)(options.projectRoot))], options: { entry: 'src/slides.md', }, }, }, tags: [], }, options.standaloneConfig); (0, create_files_1.createFiles)(tree, options); if (!schema.skipFormat) { yield (0, devkit_1.formatFiles)(tree); } return installTask; }); } exports.default = slidevProjectGenerator; exports.slidevProjectSchematic = (0, devkit_1.convertNxGenerator)(slidevProjectGenerator); function filePathPrefix(directory) { return `${(0, devkit_1.names)(directory).fileName}`.replace(new RegExp('/', 'g'), '-'); } exports.filePathPrefix = filePathPrefix; //# sourceMappingURL=generator.js.map