UNPKG

@prismatic-io/spectral

Version:

Utility library for building Prismatic connectors and code-native integrations

146 lines (145 loc) 5.77 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.renderReadme = exports.renderTsConfig = exports.renderPackageJson = exports.renderIndex = exports.createStaticFiles = void 0; const path_1 = __importDefault(require("path")); const helpers_1 = require("./helpers"); const createTemplate_1 = require("../utils/createTemplate"); const createStaticFiles = (_a) => __awaiter(void 0, [_a], void 0, function* ({ component, dryRun, signature, packageName, dependencies, verbose, sourceDir, destinationDir, registry, }) { var _b, _c, _d, _e; if (verbose) { console.info("Creating static files..."); } const index = yield (0, exports.renderIndex)({ component: { key: component.key, public: Boolean(component.public), signature, }, dryRun, verbose, sourceDir, destinationDir, }); const packageJson = yield (0, exports.renderPackageJson)({ dryRun, dependencies, packageName, verbose, sourceDir, destinationDir, registry, }); const tsConfig = yield (0, exports.renderTsConfig)({ dryRun, verbose, sourceDir, destinationDir, }); const readme = yield (0, exports.renderReadme)({ component: { key: component.key, label: component.display.label, description: component.display.description, isPublic: Boolean(component.public), action: Object.keys((_b = component.actions) !== null && _b !== void 0 ? _b : {}).length ? { key: Object.keys(component.actions)[0], } : null, trigger: Object.keys((_c = component.triggers) !== null && _c !== void 0 ? _c : {}).length ? { key: Object.keys(component.triggers)[0], } : null, connection: ((_d = component.connections) !== null && _d !== void 0 ? _d : []).length ? { key: component.connections[0].key, } : null, dataSource: Object.keys((_e = component.dataSources) !== null && _e !== void 0 ? _e : {}).length ? { key: Object.keys(component.dataSources)[0], type: component.dataSources[Object.keys(component.dataSources)[0]].dataSourceType, } : null, }, packageName, dryRun, verbose, sourceDir, destinationDir, }); if (verbose) { console.info(""); } return Promise.resolve({ index, packageJson, tsConfig, readme, }); }); exports.createStaticFiles = createStaticFiles; const renderIndex = (_a) => __awaiter(void 0, [_a], void 0, function* ({ component, dryRun, verbose, sourceDir, destinationDir, }) { return yield (0, createTemplate_1.createTemplate)({ source: path_1.default.join(sourceDir, "index.ts.ejs"), destination: path_1.default.join(destinationDir, "src", "index.ts"), data: { component, }, verbose, dryRun, }); }); exports.renderIndex = renderIndex; const renderPackageJson = (_a) => __awaiter(void 0, [_a], void 0, function* ({ dryRun, packageName, dependencies, verbose, sourceDir, destinationDir, registry, }) { return yield (0, createTemplate_1.createTemplate)({ source: path_1.default.join(sourceDir, "package.json.ejs"), destination: path_1.default.join(destinationDir, "package.json"), data: { packageName, spectralVersion: dependencies.spectral, typescriptVersion: dependencies.devDependencies.typescript, helpers: helpers_1.helpers, registry, }, dryRun, verbose, }); }); exports.renderPackageJson = renderPackageJson; const renderTsConfig = (_a) => __awaiter(void 0, [_a], void 0, function* ({ dryRun, verbose, sourceDir, destinationDir, }) { return yield (0, createTemplate_1.createTemplate)({ source: path_1.default.join(sourceDir, "tsconfig.json.ejs"), destination: path_1.default.join(destinationDir, "tsconfig.json"), dryRun, verbose, }); }); exports.renderTsConfig = renderTsConfig; const renderReadme = (_a) => __awaiter(void 0, [_a], void 0, function* ({ component, dryRun, packageName, verbose, sourceDir, destinationDir, }) { return yield (0, createTemplate_1.createTemplate)({ source: path_1.default.join(sourceDir, "README.md.ejs"), destination: path_1.default.join(destinationDir, "README.md"), data: { component, helpers: helpers_1.helpers, packageName, }, dryRun, verbose, }); }); exports.renderReadme = renderReadme;