mirror of
https://github.com/gchq/CyberChef.git
synced 2025-04-21 07:16:17 -04:00
create SyncDish and wrap results in it.
This commit is contained in:
parent
d00b9e0928
commit
45d2fbc5fc
4 changed files with 177 additions and 52 deletions
102
src/node/config/scripts/generateNodeIndex.mjs
Normal file
102
src/node/config/scripts/generateNodeIndex.mjs
Normal file
|
@ -0,0 +1,102 @@
|
|||
/**
|
||||
* This script generates the exports functionality for the node API.
|
||||
*
|
||||
* it exports chef as default, but all the wrapped operations as
|
||||
* other top level exports.
|
||||
*
|
||||
* @author d98762656 [d98762625@gmail.com]
|
||||
* @copyright Crown Copyright 2018
|
||||
* @license Apache-2.0
|
||||
*/
|
||||
|
||||
/*eslint no-console: 0 */
|
||||
|
||||
import fs from "fs";
|
||||
import path from "path";
|
||||
import * as operations from "../../../core/operations/index";
|
||||
import { decapitalise } from "../../apiUtils";
|
||||
|
||||
const dir = path.join(`${process.cwd()}/src/node`);
|
||||
if (!fs.existsSync(dir)) {
|
||||
console.log("\nCWD: " + process.cwd());
|
||||
console.log("Error: generateNodeIndex.mjs should be run from the project root");
|
||||
console.log("Example> node --experimental-modules src/core/config/scripts/generateNodeIndex.mjs");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
let code = `/**
|
||||
* THIS FILE IS AUTOMATICALLY GENERATED BY src/core/config/scripts/generateOpsIndex.mjs
|
||||
*
|
||||
* @author d98762625 [d98762625@gmail.com]
|
||||
* @copyright Crown Copyright ${new Date().getUTCFullYear()}
|
||||
* @license Apache-2.0
|
||||
*/
|
||||
|
||||
/* eslint camelcase: 0 */
|
||||
|
||||
|
||||
import "babel-polyfill";
|
||||
import { wrap } from "./apiUtils";
|
||||
import {
|
||||
`;
|
||||
|
||||
Object.keys(operations).forEach((op) => {
|
||||
// prepend with core_ to avoid name collision later.
|
||||
code += ` ${op} as core_${op},\n`;
|
||||
});
|
||||
|
||||
code +=`
|
||||
} from "../core/operations/index";
|
||||
|
||||
// Define global environment functions
|
||||
global.ENVIRONMENT_IS_WORKER = function() {
|
||||
return typeof importScripts === "function";
|
||||
};
|
||||
global.ENVIRONMENT_IS_NODE = function() {
|
||||
return typeof process === "object" && typeof require === "function";
|
||||
};
|
||||
global.ENVIRONMENT_IS_WEB = function() {
|
||||
return typeof window === "object";
|
||||
};
|
||||
|
||||
/**
|
||||
* generateChef
|
||||
*
|
||||
* Creates decapitalised, wrapped ops in chef object for default export.
|
||||
*/
|
||||
function generateChef() {
|
||||
return {
|
||||
`;
|
||||
|
||||
Object.keys(operations).forEach((op) => {
|
||||
code += ` "${decapitalise(op)}": wrap(core_${op}),\n`;
|
||||
});
|
||||
|
||||
code += ` };
|
||||
}
|
||||
|
||||
const chef = generateChef();
|
||||
`;
|
||||
|
||||
Object.keys(operations).forEach((op) => {
|
||||
code += `const ${decapitalise(op)} = chef.${decapitalise(op)};\n`;
|
||||
});
|
||||
|
||||
code +=`
|
||||
|
||||
export default chef;
|
||||
export {
|
||||
`;
|
||||
|
||||
Object.keys(operations).forEach((op) => {
|
||||
code += ` ${decapitalise(op)},\n`;
|
||||
});
|
||||
|
||||
|
||||
code += "};\n";
|
||||
|
||||
|
||||
fs.writeFileSync(
|
||||
path.join(dir, "/index.mjs"),
|
||||
code
|
||||
);
|
Loading…
Add table
Add a link
Reference in a new issue