@prismatic-io/spectral 8.1.6 → 9.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/component-manifest.js +2 -0
- package/dist/generators/componentManifest/cli.d.ts +2 -0
- package/dist/generators/componentManifest/cli.js +134 -0
- package/dist/generators/componentManifest/createActions.d.ts +13 -0
- package/dist/generators/componentManifest/createActions.js +95 -0
- package/dist/generators/componentManifest/createConnections.d.ts +13 -0
- package/dist/generators/componentManifest/createConnections.js +95 -0
- package/dist/generators/componentManifest/createDataSources.d.ts +13 -0
- package/dist/generators/componentManifest/createDataSources.js +95 -0
- package/dist/generators/componentManifest/createStaticFiles.d.ts +80 -0
- package/dist/generators/componentManifest/createStaticFiles.js +145 -0
- package/dist/generators/componentManifest/createTriggers.d.ts +13 -0
- package/dist/generators/componentManifest/createTriggers.js +95 -0
- package/dist/generators/componentManifest/getImports.d.ts +7 -0
- package/dist/generators/componentManifest/getImports.js +16 -0
- package/dist/generators/componentManifest/getInputs.d.ts +23 -0
- package/dist/generators/componentManifest/getInputs.js +66 -0
- package/dist/generators/componentManifest/helpers.d.ts +5 -0
- package/dist/generators/componentManifest/helpers.js +11 -0
- package/dist/generators/componentManifest/index.d.ts +15 -0
- package/dist/generators/componentManifest/index.js +78 -0
- package/dist/generators/componentManifest/removeComponentManifest.d.ts +6 -0
- package/dist/generators/componentManifest/removeComponentManifest.js +19 -0
- package/dist/generators/componentManifest/templates/README.md.ejs +186 -0
- package/dist/generators/componentManifest/templates/actions/action.ts.ejs +14 -0
- package/dist/generators/componentManifest/templates/actions/index.ts.ejs +1 -0
- package/dist/generators/componentManifest/templates/connections/connection.ts.ejs +14 -0
- package/dist/generators/componentManifest/templates/connections/index.ts.ejs +1 -0
- package/dist/generators/componentManifest/templates/dataSources/dataSource.ts.ejs +14 -0
- package/dist/generators/componentManifest/templates/dataSources/index.ts.ejs +1 -0
- package/dist/generators/componentManifest/templates/index.ts.ejs +20 -0
- package/dist/generators/componentManifest/templates/package.json.ejs +23 -0
- package/dist/generators/componentManifest/templates/partials/importBarrel.ejs +9 -0
- package/dist/generators/componentManifest/templates/partials/imports.ejs +1 -0
- package/dist/generators/componentManifest/templates/partials/inputTypes.ejs +10 -0
- package/dist/generators/componentManifest/templates/triggers/index.ts.ejs +1 -0
- package/dist/generators/componentManifest/templates/triggers/trigger.ts.ejs +14 -0
- package/dist/generators/componentManifest/templates/tsconfig.json.ejs +15 -0
- package/dist/generators/utils/capitalizeFirstLetter.d.ts +1 -0
- package/dist/generators/utils/capitalizeFirstLetter.js +5 -0
- package/dist/generators/utils/createDependencyImports.d.ts +5 -0
- package/dist/generators/utils/createDependencyImports.js +9 -0
- package/dist/generators/utils/createFlagHelpText.d.ts +12 -0
- package/dist/generators/utils/createFlagHelpText.js +19 -0
- package/dist/generators/utils/createTemplate.d.ts +9 -0
- package/dist/generators/utils/createTemplate.js +59 -0
- package/dist/generators/utils/generatePackageJsonVersion.d.ts +1 -0
- package/dist/generators/utils/generatePackageJsonVersion.js +14 -0
- package/dist/generators/utils/getComponentSignatureWithPrism.d.ts +1 -0
- package/dist/generators/utils/getComponentSignatureWithPrism.js +39 -0
- package/dist/generators/utils/getFlagBooleanValue.d.ts +11 -0
- package/dist/generators/utils/getFlagBooleanValue.js +17 -0
- package/dist/generators/utils/getFlagStringValue.d.ts +11 -0
- package/dist/generators/utils/getFlagStringValue.js +25 -0
- package/dist/generators/utils/truncatePathByFolder.d.ts +1 -0
- package/dist/generators/utils/truncatePathByFolder.js +5 -0
- package/dist/index.d.ts +14 -15
- package/dist/index.js +9 -9
- package/dist/serverTypes/convertIntegration.d.ts +2 -2
- package/dist/serverTypes/convertIntegration.js +97 -43
- package/dist/serverTypes/index.d.ts +3 -2
- package/dist/serverTypes/integration.d.ts +12 -4
- package/dist/testing.d.ts +7 -7
- package/dist/testing.js +1 -1
- package/dist/types/ActionDefinition.d.ts +2 -1
- package/dist/types/ActionPerformFunction.d.ts +5 -3
- package/dist/types/ComponentManifest.d.ts +13 -0
- package/dist/types/ComponentManifest.js +2 -0
- package/dist/types/DataSourceResult.d.ts +1 -0
- package/dist/types/IntegrationDefinition.d.ts +148 -77
- package/dist/types/IntegrationDefinition.js +9 -5
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.js +1 -0
- package/dist/util.d.ts +2 -0
- package/dist/util.js +17 -10
- package/package.json +12 -6
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.runMain = void 0;
|
|
16
|
+
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
17
|
+
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
18
|
+
const path_1 = __importDefault(require("path"));
|
|
19
|
+
const fs_extra_1 = require("fs-extra");
|
|
20
|
+
const index_1 = require("./index");
|
|
21
|
+
const createFlagHelpText_1 = require("../utils/createFlagHelpText");
|
|
22
|
+
const getFlagStringValue_1 = require("../utils/getFlagStringValue");
|
|
23
|
+
const getFlagBooleanValue_1 = require("../utils/getFlagBooleanValue");
|
|
24
|
+
const util_1 = require("../../util");
|
|
25
|
+
const runMain = (process) => __awaiter(void 0, void 0, void 0, function* () {
|
|
26
|
+
var _a, _b;
|
|
27
|
+
const componentDir = process.cwd();
|
|
28
|
+
const componentDistDir = path_1.default.join(componentDir, "dist", "index.js");
|
|
29
|
+
if (!componentDir) {
|
|
30
|
+
console.error("Please run this script using npm or yarn.");
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
if (!(0, fs_extra_1.existsSync)(componentDistDir)) {
|
|
34
|
+
console.error("Component build directory `dist` does not exist. Please verify that the component has been built.");
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
const component = require(componentDistDir).default;
|
|
38
|
+
if (!component ||
|
|
39
|
+
!(0, util_1.isObjectWithTruthyKeys)(component, ["key", "display"]) ||
|
|
40
|
+
!(0, util_1.isObjectWithOneTruthyKey)(component, [
|
|
41
|
+
"actions",
|
|
42
|
+
"connections",
|
|
43
|
+
"dataSources",
|
|
44
|
+
])) {
|
|
45
|
+
console.error("Component is invalid.");
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
const flags = {
|
|
49
|
+
name: {
|
|
50
|
+
flag: ["--name", "-n"],
|
|
51
|
+
value: (0, getFlagStringValue_1.getFlagsStringValue)({
|
|
52
|
+
args: process.argv.slice(3),
|
|
53
|
+
flags: ["--name", "-n"],
|
|
54
|
+
}),
|
|
55
|
+
description: "The name of the component manifest. Defaults to the name of the current component being generated.",
|
|
56
|
+
},
|
|
57
|
+
verbose: {
|
|
58
|
+
flag: ["--verbose", "-v"],
|
|
59
|
+
value: (0, getFlagBooleanValue_1.getFlagsBooleanValue)({
|
|
60
|
+
args: process.argv.slice(3),
|
|
61
|
+
flags: ["--verbose", "-v"],
|
|
62
|
+
}),
|
|
63
|
+
description: "Provides more detailed or extensive information about the files being generated during the process.",
|
|
64
|
+
},
|
|
65
|
+
output_dir: {
|
|
66
|
+
flag: ["--output-dir", "-o"],
|
|
67
|
+
value: (0, getFlagStringValue_1.getFlagsStringValue)({
|
|
68
|
+
args: process.argv.slice(3),
|
|
69
|
+
flags: ["--output-dir", "-o"],
|
|
70
|
+
}),
|
|
71
|
+
description: "The output directory for the component manifest. Defaults to the sibling of the current component directory.",
|
|
72
|
+
},
|
|
73
|
+
registry: {
|
|
74
|
+
flag: ["--registry", "-r"],
|
|
75
|
+
value: (0, getFlagStringValue_1.getFlagsStringValue)({
|
|
76
|
+
args: process.argv.slice(3),
|
|
77
|
+
flags: ["--registry", "-r"],
|
|
78
|
+
}),
|
|
79
|
+
description: "The registry to publish the component manifest to (as a URI). This is where your package will be published. If not specified, it defaults to your system's default registry.",
|
|
80
|
+
},
|
|
81
|
+
dry_run: {
|
|
82
|
+
flag: ["--dry-run", "-d"],
|
|
83
|
+
value: (0, getFlagBooleanValue_1.getFlagsBooleanValue)({
|
|
84
|
+
args: process.argv.slice(3),
|
|
85
|
+
flags: ["--dry-run", "-d"],
|
|
86
|
+
}),
|
|
87
|
+
description: "Perform a dry run without generating the component manifest. This provides a preview of what you could expect to happen when running the command without this flag.",
|
|
88
|
+
},
|
|
89
|
+
include_signature: {
|
|
90
|
+
flag: ["--include-signature", "-s"],
|
|
91
|
+
value: (0, getFlagBooleanValue_1.getFlagsBooleanValue)({
|
|
92
|
+
args: process.argv.slice(3),
|
|
93
|
+
flags: ["--include-signature", "-s"],
|
|
94
|
+
}),
|
|
95
|
+
description: "This will include the published component's signature key. Allowing you to publish the Code Native Integrations (CNI) where this component manifest is used.",
|
|
96
|
+
},
|
|
97
|
+
help: {
|
|
98
|
+
flag: ["--help", "-h"],
|
|
99
|
+
value: (0, getFlagBooleanValue_1.getFlagsBooleanValue)({
|
|
100
|
+
args: process.argv.slice(3),
|
|
101
|
+
flags: ["--help", "-h"],
|
|
102
|
+
}),
|
|
103
|
+
description: "Show this help message.",
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
if (flags.help.value) {
|
|
107
|
+
(0, createFlagHelpText_1.createFlagHelpText)({
|
|
108
|
+
command: "component-manifest",
|
|
109
|
+
flags,
|
|
110
|
+
});
|
|
111
|
+
process.exit(0);
|
|
112
|
+
}
|
|
113
|
+
const packageJson = (0, fs_extra_1.readJsonSync)(path_1.default.join(__dirname, "../../../package.json"));
|
|
114
|
+
yield (0, index_1.createComponentManifest)({
|
|
115
|
+
component,
|
|
116
|
+
dryRun: flags.dry_run.value,
|
|
117
|
+
includeSignature: flags.include_signature.value,
|
|
118
|
+
packageName: (_a = flags.name.value) !== null && _a !== void 0 ? _a : `@components/${component.key}-manifest`,
|
|
119
|
+
dependencies: {
|
|
120
|
+
spectral: packageJson.version,
|
|
121
|
+
dependencies: packageJson.dependencies,
|
|
122
|
+
devDependencies: packageJson.devDependencies,
|
|
123
|
+
},
|
|
124
|
+
verbose: flags.verbose.value,
|
|
125
|
+
sourceDir: path_1.default.join(__dirname, "templates"),
|
|
126
|
+
destinationDir: flags.output_dir.value
|
|
127
|
+
? flags.output_dir.value
|
|
128
|
+
: path_1.default.join(componentDir, "..", flags.name.value
|
|
129
|
+
? flags.name.value
|
|
130
|
+
: `${path_1.default.basename(componentDir)}-manifest`),
|
|
131
|
+
registry: (_b = flags.registry.value) !== null && _b !== void 0 ? _b : null,
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
exports.runMain = runMain;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Component } from "../../serverTypes";
|
|
2
|
+
interface CreateActionsProps {
|
|
3
|
+
component: Component;
|
|
4
|
+
dryRun: boolean;
|
|
5
|
+
verbose: boolean;
|
|
6
|
+
sourceDir: string;
|
|
7
|
+
destinationDir: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const createActions: ({ component, dryRun, verbose, sourceDir, destinationDir, }: CreateActionsProps) => Promise<{
|
|
10
|
+
actionIndex: string | void;
|
|
11
|
+
actions: (string | void)[];
|
|
12
|
+
}>;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.createActions = void 0;
|
|
16
|
+
const path_1 = __importDefault(require("path"));
|
|
17
|
+
const getInputs_1 = require("./getInputs");
|
|
18
|
+
const getImports_1 = require("./getImports");
|
|
19
|
+
const helpers_1 = require("./helpers");
|
|
20
|
+
const createTemplate_1 = require("../utils/createTemplate");
|
|
21
|
+
const DOCUMENT_PROPERTIES = [
|
|
22
|
+
"comments",
|
|
23
|
+
"default",
|
|
24
|
+
"example",
|
|
25
|
+
"placeholder",
|
|
26
|
+
];
|
|
27
|
+
const createActions = ({ component, dryRun, verbose, sourceDir, destinationDir, }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
28
|
+
var _a, _b;
|
|
29
|
+
if (verbose) {
|
|
30
|
+
console.info("Creating actions...");
|
|
31
|
+
}
|
|
32
|
+
const actionIndex = yield renderActionsIndex({
|
|
33
|
+
actions: Object.entries((_a = component.actions) !== null && _a !== void 0 ? _a : {}).map(([actionKey, action]) => {
|
|
34
|
+
return {
|
|
35
|
+
key: action.key || actionKey,
|
|
36
|
+
};
|
|
37
|
+
}),
|
|
38
|
+
dryRun,
|
|
39
|
+
verbose,
|
|
40
|
+
sourceDir,
|
|
41
|
+
destinationDir,
|
|
42
|
+
});
|
|
43
|
+
const actions = yield Promise.all(Object.entries((_b = component.actions) !== null && _b !== void 0 ? _b : {}).map(([actionKey, action]) => __awaiter(void 0, void 0, void 0, function* () {
|
|
44
|
+
const inputs = (0, getInputs_1.getInputs)({
|
|
45
|
+
inputs: action.inputs,
|
|
46
|
+
documentProperties: DOCUMENT_PROPERTIES,
|
|
47
|
+
});
|
|
48
|
+
const imports = (0, getImports_1.getImports)({ inputs });
|
|
49
|
+
return yield renderAction({
|
|
50
|
+
action: {
|
|
51
|
+
key: action.key || actionKey,
|
|
52
|
+
label: action.display.description,
|
|
53
|
+
description: action.display.description,
|
|
54
|
+
inputs,
|
|
55
|
+
},
|
|
56
|
+
imports,
|
|
57
|
+
dryRun,
|
|
58
|
+
verbose,
|
|
59
|
+
sourceDir,
|
|
60
|
+
destinationDir,
|
|
61
|
+
});
|
|
62
|
+
})));
|
|
63
|
+
if (verbose) {
|
|
64
|
+
console.info("");
|
|
65
|
+
}
|
|
66
|
+
return Promise.resolve({
|
|
67
|
+
actionIndex,
|
|
68
|
+
actions,
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
exports.createActions = createActions;
|
|
72
|
+
const renderActionsIndex = ({ actions, dryRun, verbose, sourceDir, destinationDir, }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
73
|
+
return yield (0, createTemplate_1.createTemplate)({
|
|
74
|
+
source: path_1.default.join(sourceDir, "actions", "index.ts.ejs"),
|
|
75
|
+
destination: path_1.default.join(destinationDir, "actions", "index.ts"),
|
|
76
|
+
data: {
|
|
77
|
+
actions,
|
|
78
|
+
},
|
|
79
|
+
dryRun,
|
|
80
|
+
verbose,
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
const renderAction = ({ action, dryRun, imports, verbose, sourceDir, destinationDir, }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
84
|
+
return yield (0, createTemplate_1.createTemplate)({
|
|
85
|
+
source: path_1.default.join(sourceDir, "actions", "action.ts.ejs"),
|
|
86
|
+
destination: path_1.default.join(destinationDir, "actions", `${action.key}.ts`),
|
|
87
|
+
data: {
|
|
88
|
+
action,
|
|
89
|
+
helpers: helpers_1.helpers,
|
|
90
|
+
imports,
|
|
91
|
+
},
|
|
92
|
+
dryRun,
|
|
93
|
+
verbose,
|
|
94
|
+
});
|
|
95
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Component } from "../../serverTypes";
|
|
2
|
+
interface CreateConnectionsProps {
|
|
3
|
+
component: Component;
|
|
4
|
+
dryRun: boolean;
|
|
5
|
+
verbose: boolean;
|
|
6
|
+
sourceDir: string;
|
|
7
|
+
destinationDir: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const createConnections: ({ component, dryRun, verbose, sourceDir, destinationDir, }: CreateConnectionsProps) => Promise<{
|
|
10
|
+
connectionIndex: string | void;
|
|
11
|
+
connections: (string | void)[];
|
|
12
|
+
}>;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.createConnections = void 0;
|
|
16
|
+
const path_1 = __importDefault(require("path"));
|
|
17
|
+
const getInputs_1 = require("./getInputs");
|
|
18
|
+
const getImports_1 = require("./getImports");
|
|
19
|
+
const helpers_1 = require("./helpers");
|
|
20
|
+
const createTemplate_1 = require("../utils/createTemplate");
|
|
21
|
+
const DOCUMENT_PROPERTIES = [
|
|
22
|
+
"comments",
|
|
23
|
+
"default",
|
|
24
|
+
"example",
|
|
25
|
+
"placeholder",
|
|
26
|
+
];
|
|
27
|
+
const createConnections = ({ component, dryRun, verbose, sourceDir, destinationDir, }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
28
|
+
var _a, _b;
|
|
29
|
+
if (verbose) {
|
|
30
|
+
console.info("Creating connections...");
|
|
31
|
+
}
|
|
32
|
+
const connectionIndex = yield renderConnectionsIndex({
|
|
33
|
+
connections: ((_a = component.connections) !== null && _a !== void 0 ? _a : []).map((connection) => {
|
|
34
|
+
return {
|
|
35
|
+
key: connection.key,
|
|
36
|
+
};
|
|
37
|
+
}),
|
|
38
|
+
dryRun,
|
|
39
|
+
verbose,
|
|
40
|
+
sourceDir,
|
|
41
|
+
destinationDir,
|
|
42
|
+
});
|
|
43
|
+
const connections = yield Promise.all(((_b = component.connections) !== null && _b !== void 0 ? _b : []).map((connection) => __awaiter(void 0, void 0, void 0, function* () {
|
|
44
|
+
const inputs = (0, getInputs_1.getInputs)({
|
|
45
|
+
inputs: connection.inputs,
|
|
46
|
+
documentProperties: DOCUMENT_PROPERTIES,
|
|
47
|
+
});
|
|
48
|
+
const imports = (0, getImports_1.getImports)({ inputs });
|
|
49
|
+
return yield renderConnection({
|
|
50
|
+
connection: {
|
|
51
|
+
key: connection.key,
|
|
52
|
+
label: connection.label,
|
|
53
|
+
comments: connection.comments,
|
|
54
|
+
inputs,
|
|
55
|
+
},
|
|
56
|
+
imports,
|
|
57
|
+
dryRun,
|
|
58
|
+
verbose,
|
|
59
|
+
sourceDir,
|
|
60
|
+
destinationDir,
|
|
61
|
+
});
|
|
62
|
+
})));
|
|
63
|
+
if (verbose) {
|
|
64
|
+
console.info("");
|
|
65
|
+
}
|
|
66
|
+
return Promise.resolve({
|
|
67
|
+
connectionIndex,
|
|
68
|
+
connections,
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
exports.createConnections = createConnections;
|
|
72
|
+
const renderConnectionsIndex = ({ connections, dryRun, verbose, sourceDir, destinationDir, }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
73
|
+
return yield (0, createTemplate_1.createTemplate)({
|
|
74
|
+
source: path_1.default.join(sourceDir, "connections", "index.ts.ejs"),
|
|
75
|
+
destination: path_1.default.join(destinationDir, "connections", "index.ts"),
|
|
76
|
+
data: {
|
|
77
|
+
connections,
|
|
78
|
+
},
|
|
79
|
+
dryRun,
|
|
80
|
+
verbose,
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
const renderConnection = ({ connection, dryRun, imports, verbose, sourceDir, destinationDir, }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
84
|
+
return yield (0, createTemplate_1.createTemplate)({
|
|
85
|
+
source: path_1.default.join(sourceDir, "connections", "connection.ts.ejs"),
|
|
86
|
+
destination: path_1.default.join(destinationDir, "connections", `${connection.key}.ts`),
|
|
87
|
+
data: {
|
|
88
|
+
connection,
|
|
89
|
+
helpers: helpers_1.helpers,
|
|
90
|
+
imports,
|
|
91
|
+
},
|
|
92
|
+
dryRun,
|
|
93
|
+
verbose,
|
|
94
|
+
});
|
|
95
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Component } from "../../serverTypes";
|
|
2
|
+
interface CreateDataSourcesProps {
|
|
3
|
+
component: Component;
|
|
4
|
+
dryRun: boolean;
|
|
5
|
+
verbose: boolean;
|
|
6
|
+
sourceDir: string;
|
|
7
|
+
destinationDir: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const createDataSources: ({ component, dryRun, verbose, sourceDir, destinationDir, }: CreateDataSourcesProps) => Promise<{
|
|
10
|
+
dataSourceIndex: string | void;
|
|
11
|
+
dataSources: (string | void)[];
|
|
12
|
+
}>;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.createDataSources = void 0;
|
|
16
|
+
const path_1 = __importDefault(require("path"));
|
|
17
|
+
const getInputs_1 = require("./getInputs");
|
|
18
|
+
const getImports_1 = require("./getImports");
|
|
19
|
+
const helpers_1 = require("./helpers");
|
|
20
|
+
const createTemplate_1 = require("../utils/createTemplate");
|
|
21
|
+
const DOCUMENT_PROPERTIES = [
|
|
22
|
+
"comments",
|
|
23
|
+
"default",
|
|
24
|
+
"example",
|
|
25
|
+
"placeholder",
|
|
26
|
+
];
|
|
27
|
+
const createDataSources = ({ component, dryRun, verbose, sourceDir, destinationDir, }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
28
|
+
var _a, _b;
|
|
29
|
+
if (verbose) {
|
|
30
|
+
console.info("Creating data sources...");
|
|
31
|
+
}
|
|
32
|
+
const dataSourceIndex = yield renderDataSourcesIndex({
|
|
33
|
+
dataSources: Object.entries((_a = component.dataSources) !== null && _a !== void 0 ? _a : {}).map(([dataSourceKey, dataSource]) => {
|
|
34
|
+
return {
|
|
35
|
+
key: dataSource.key || dataSourceKey,
|
|
36
|
+
};
|
|
37
|
+
}),
|
|
38
|
+
dryRun,
|
|
39
|
+
verbose,
|
|
40
|
+
sourceDir,
|
|
41
|
+
destinationDir,
|
|
42
|
+
});
|
|
43
|
+
const dataSources = yield Promise.all(Object.entries((_b = component.dataSources) !== null && _b !== void 0 ? _b : {}).map(([dataSourceKey, dataSource]) => __awaiter(void 0, void 0, void 0, function* () {
|
|
44
|
+
const inputs = (0, getInputs_1.getInputs)({
|
|
45
|
+
inputs: dataSource.inputs,
|
|
46
|
+
documentProperties: DOCUMENT_PROPERTIES,
|
|
47
|
+
});
|
|
48
|
+
const imports = (0, getImports_1.getImports)({ inputs });
|
|
49
|
+
return yield renderDataSource({
|
|
50
|
+
dataSource: {
|
|
51
|
+
key: dataSource.key || dataSourceKey,
|
|
52
|
+
label: dataSource.display.label,
|
|
53
|
+
description: dataSource.display.description,
|
|
54
|
+
inputs,
|
|
55
|
+
},
|
|
56
|
+
imports,
|
|
57
|
+
dryRun,
|
|
58
|
+
verbose,
|
|
59
|
+
sourceDir,
|
|
60
|
+
destinationDir,
|
|
61
|
+
});
|
|
62
|
+
})));
|
|
63
|
+
if (verbose) {
|
|
64
|
+
console.info("");
|
|
65
|
+
}
|
|
66
|
+
return Promise.resolve({
|
|
67
|
+
dataSourceIndex,
|
|
68
|
+
dataSources,
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
exports.createDataSources = createDataSources;
|
|
72
|
+
const renderDataSourcesIndex = ({ dataSources, dryRun, verbose, sourceDir, destinationDir, }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
73
|
+
return yield (0, createTemplate_1.createTemplate)({
|
|
74
|
+
source: path_1.default.join(sourceDir, "dataSources", "index.ts.ejs"),
|
|
75
|
+
destination: path_1.default.join(destinationDir, "dataSources", "index.ts"),
|
|
76
|
+
data: {
|
|
77
|
+
dataSources,
|
|
78
|
+
},
|
|
79
|
+
dryRun,
|
|
80
|
+
verbose,
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
const renderDataSource = ({ dataSource, dryRun, imports, verbose, sourceDir, destinationDir, }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
84
|
+
return yield (0, createTemplate_1.createTemplate)({
|
|
85
|
+
source: path_1.default.join(sourceDir, "dataSources", "dataSource.ts.ejs"),
|
|
86
|
+
destination: path_1.default.join(destinationDir, "dataSources", `${dataSource.key}.ts`),
|
|
87
|
+
data: {
|
|
88
|
+
dataSource,
|
|
89
|
+
helpers: helpers_1.helpers,
|
|
90
|
+
imports,
|
|
91
|
+
},
|
|
92
|
+
dryRun,
|
|
93
|
+
verbose,
|
|
94
|
+
});
|
|
95
|
+
});
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { Component } from "../../serverTypes";
|
|
2
|
+
export interface PackageDependencies {
|
|
3
|
+
spectral: string;
|
|
4
|
+
dependencies: Record<string, string>;
|
|
5
|
+
devDependencies: Record<string, string>;
|
|
6
|
+
}
|
|
7
|
+
interface CreateStaticFilesProps {
|
|
8
|
+
component: Component;
|
|
9
|
+
dryRun: boolean;
|
|
10
|
+
signature: string | null;
|
|
11
|
+
packageName: string;
|
|
12
|
+
dependencies: PackageDependencies;
|
|
13
|
+
verbose: boolean;
|
|
14
|
+
sourceDir: string;
|
|
15
|
+
destinationDir: string;
|
|
16
|
+
registry: string | null;
|
|
17
|
+
}
|
|
18
|
+
export declare const createStaticFiles: ({ component, dryRun, signature, packageName, dependencies, verbose, sourceDir, destinationDir, registry, }: CreateStaticFilesProps) => Promise<{
|
|
19
|
+
index: string | void;
|
|
20
|
+
packageJson: string | void;
|
|
21
|
+
tsConfig: string | void;
|
|
22
|
+
readme: string | void;
|
|
23
|
+
}>;
|
|
24
|
+
interface RenderIndexProps {
|
|
25
|
+
component: {
|
|
26
|
+
key: string;
|
|
27
|
+
public: boolean;
|
|
28
|
+
signature: string | null;
|
|
29
|
+
};
|
|
30
|
+
dryRun: boolean;
|
|
31
|
+
verbose: boolean;
|
|
32
|
+
sourceDir: string;
|
|
33
|
+
destinationDir: string;
|
|
34
|
+
}
|
|
35
|
+
export declare const renderIndex: ({ component, dryRun, verbose, sourceDir, destinationDir, }: RenderIndexProps) => Promise<string | void>;
|
|
36
|
+
interface RenderPackageJsonProps {
|
|
37
|
+
dryRun: boolean;
|
|
38
|
+
packageName: string;
|
|
39
|
+
dependencies: PackageDependencies;
|
|
40
|
+
verbose: boolean;
|
|
41
|
+
sourceDir: string;
|
|
42
|
+
destinationDir: string;
|
|
43
|
+
registry: string | null;
|
|
44
|
+
}
|
|
45
|
+
export declare const renderPackageJson: ({ dryRun, packageName, dependencies, verbose, sourceDir, destinationDir, registry, }: RenderPackageJsonProps) => Promise<string | void>;
|
|
46
|
+
interface RenderTsConfigProps {
|
|
47
|
+
dryRun: boolean;
|
|
48
|
+
verbose: boolean;
|
|
49
|
+
sourceDir: string;
|
|
50
|
+
destinationDir: string;
|
|
51
|
+
}
|
|
52
|
+
export declare const renderTsConfig: ({ dryRun, verbose, sourceDir, destinationDir, }: RenderTsConfigProps) => Promise<string | void>;
|
|
53
|
+
interface RenderReadmeProps {
|
|
54
|
+
component: {
|
|
55
|
+
key: string;
|
|
56
|
+
label: string;
|
|
57
|
+
description: string;
|
|
58
|
+
isPublic: boolean;
|
|
59
|
+
action: {
|
|
60
|
+
key: string;
|
|
61
|
+
} | null;
|
|
62
|
+
trigger: {
|
|
63
|
+
key: string;
|
|
64
|
+
} | null;
|
|
65
|
+
connection: {
|
|
66
|
+
key: string;
|
|
67
|
+
} | null;
|
|
68
|
+
dataSource: {
|
|
69
|
+
key: string;
|
|
70
|
+
type: string;
|
|
71
|
+
} | null;
|
|
72
|
+
};
|
|
73
|
+
dryRun: boolean;
|
|
74
|
+
packageName: string;
|
|
75
|
+
verbose: boolean;
|
|
76
|
+
sourceDir: string;
|
|
77
|
+
destinationDir: string;
|
|
78
|
+
}
|
|
79
|
+
export declare const renderReadme: ({ component, dryRun, packageName, verbose, sourceDir, destinationDir, }: RenderReadmeProps) => Promise<string | void>;
|
|
80
|
+
export {};
|