@prismatic-io/spectral
Version:
Utility library for building Prismatic connectors and code-native integrations
146 lines (145 loc) • 5.77 kB
JavaScript
;
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;