@openfn/cli 0.0.40 → 0.0.41
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/dist/process/runner.js +78 -59
- package/package.json +1 -1
package/dist/process/runner.js
CHANGED
|
@@ -511,6 +511,59 @@ Paths inside the workflow are relative to the workflow.json`
|
|
|
511
511
|
}
|
|
512
512
|
};
|
|
513
513
|
|
|
514
|
+
// src/util/map-adaptors-to-monorepo.ts
|
|
515
|
+
import { readFile } from "node:fs/promises";
|
|
516
|
+
import path2 from "node:path";
|
|
517
|
+
import assert from "node:assert";
|
|
518
|
+
import { getNameAndVersion as getNameAndVersion2 } from "@openfn/runtime";
|
|
519
|
+
var validateMonoRepo = async (repoPath, log) => {
|
|
520
|
+
try {
|
|
521
|
+
const raw = await readFile(`${repoPath}/package.json`, "utf8");
|
|
522
|
+
const pkg = JSON.parse(raw);
|
|
523
|
+
assert(pkg.name === "adaptors");
|
|
524
|
+
} catch (e) {
|
|
525
|
+
log.error(`ERROR: Adaptors Monorepo not found at ${repoPath}`);
|
|
526
|
+
process.exit(9);
|
|
527
|
+
}
|
|
528
|
+
};
|
|
529
|
+
var updatePath = (adaptor, repoPath, log) => {
|
|
530
|
+
if (adaptor.match("=")) {
|
|
531
|
+
return adaptor;
|
|
532
|
+
}
|
|
533
|
+
const { name, version } = getNameAndVersion2(adaptor);
|
|
534
|
+
if (version) {
|
|
535
|
+
log.warn(
|
|
536
|
+
`Warning: Ignoring version specifier on ${adaptor} as loading from the adaptors monorepo`
|
|
537
|
+
);
|
|
538
|
+
}
|
|
539
|
+
const shortName = name.replace("@openfn/language-", "");
|
|
540
|
+
const abspath = path2.resolve(repoPath, "packages", shortName);
|
|
541
|
+
return `${name}=${abspath}`;
|
|
542
|
+
};
|
|
543
|
+
var mapAdaptorsToMonorepo = async (options, log) => {
|
|
544
|
+
const { adaptors, monorepoPath, workflow } = options;
|
|
545
|
+
if (monorepoPath) {
|
|
546
|
+
await validateMonoRepo(monorepoPath, log);
|
|
547
|
+
log.success(`Loading adaptors from monorepo at ${monorepoPath}`);
|
|
548
|
+
if (adaptors) {
|
|
549
|
+
options.adaptors = adaptors.map((a) => {
|
|
550
|
+
const p = updatePath(a, monorepoPath, log);
|
|
551
|
+
log.info(`Mapped adaptor ${a} to monorepo: ${p.split("=")[1]}`);
|
|
552
|
+
return p;
|
|
553
|
+
});
|
|
554
|
+
}
|
|
555
|
+
if (workflow) {
|
|
556
|
+
Object.values(workflow.jobs).forEach((job) => {
|
|
557
|
+
if (job.adaptor) {
|
|
558
|
+
job.adaptor = updatePath(job.adaptor, monorepoPath, log);
|
|
559
|
+
}
|
|
560
|
+
});
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
return options;
|
|
564
|
+
};
|
|
565
|
+
var map_adaptors_to_monorepo_default = mapAdaptorsToMonorepo;
|
|
566
|
+
|
|
514
567
|
// src/execute/handler.ts
|
|
515
568
|
var executeHandler = async (options, logger) => {
|
|
516
569
|
const start = new Date().getTime();
|
|
@@ -518,6 +571,10 @@ var executeHandler = async (options, logger) => {
|
|
|
518
571
|
let input = await load_input_default(options, logger);
|
|
519
572
|
if (options.workflow) {
|
|
520
573
|
expand_adaptors_default(options);
|
|
574
|
+
await map_adaptors_to_monorepo_default(
|
|
575
|
+
options,
|
|
576
|
+
logger
|
|
577
|
+
);
|
|
521
578
|
}
|
|
522
579
|
const { repoDir, monorepoPath, autoinstall } = options;
|
|
523
580
|
if (autoinstall) {
|
|
@@ -564,6 +621,13 @@ var handler_default = executeHandler;
|
|
|
564
621
|
import { writeFile as writeFile2 } from "node:fs/promises";
|
|
565
622
|
var compileHandler = async (options, logger) => {
|
|
566
623
|
await load_input_default(options, logger);
|
|
624
|
+
if (options.workflow) {
|
|
625
|
+
expand_adaptors_default(options);
|
|
626
|
+
await map_adaptors_to_monorepo_default(
|
|
627
|
+
options,
|
|
628
|
+
logger
|
|
629
|
+
);
|
|
630
|
+
}
|
|
567
631
|
let result = await compile_default(options, logger);
|
|
568
632
|
if (options.workflow) {
|
|
569
633
|
result = JSON.stringify(result);
|
|
@@ -629,20 +693,20 @@ var handler_default3 = testHandler;
|
|
|
629
693
|
// src/docgen/handler.ts
|
|
630
694
|
import { writeFile as writeFile3 } from "node:fs/promises";
|
|
631
695
|
import { readFileSync, writeFileSync, mkdirSync, rmSync } from "node:fs";
|
|
632
|
-
import
|
|
696
|
+
import path3 from "node:path";
|
|
633
697
|
import { describePackage } from "@openfn/describe-package";
|
|
634
|
-
import { getNameAndVersion as
|
|
698
|
+
import { getNameAndVersion as getNameAndVersion3 } from "@openfn/runtime";
|
|
635
699
|
var RETRY_DURATION = 500;
|
|
636
700
|
var RETRY_COUNT = 20;
|
|
637
701
|
var TIMEOUT_MS = 1e3 * 60;
|
|
638
702
|
var actualDocGen = (specifier) => describePackage(specifier, {});
|
|
639
|
-
var ensurePath = (filePath) => mkdirSync(
|
|
703
|
+
var ensurePath = (filePath) => mkdirSync(path3.dirname(filePath), { recursive: true });
|
|
640
704
|
var generatePlaceholder = (path7) => {
|
|
641
705
|
writeFileSync(path7, `{ "loading": true, "timestamp": ${Date.now()}}`);
|
|
642
706
|
};
|
|
643
707
|
var finish = (logger, resultPath) => {
|
|
644
708
|
logger.success("Done! Docs can be found at:\n");
|
|
645
|
-
logger.print(` ${
|
|
709
|
+
logger.print(` ${path3.resolve(resultPath)}`);
|
|
646
710
|
};
|
|
647
711
|
var generateDocs = async (specifier, path7, docgen, logger) => {
|
|
648
712
|
const result = await docgen(specifier);
|
|
@@ -683,7 +747,7 @@ var waitForDocs = async (docs, path7, logger, retryDuration = RETRY_DURATION) =>
|
|
|
683
747
|
};
|
|
684
748
|
var docgenHandler = (options, logger, docgen = actualDocGen, retryDuration = RETRY_DURATION) => {
|
|
685
749
|
const { specifier, repoDir } = options;
|
|
686
|
-
const { version } =
|
|
750
|
+
const { version } = getNameAndVersion3(specifier);
|
|
687
751
|
if (!version) {
|
|
688
752
|
logger.error("Error: No version number detected");
|
|
689
753
|
logger.error("eg, @openfn/language-common@1.7.5");
|
|
@@ -722,8 +786,8 @@ var docgenHandler = (options, logger, docgen = actualDocGen, retryDuration = RET
|
|
|
722
786
|
var handler_default4 = docgenHandler;
|
|
723
787
|
|
|
724
788
|
// src/docs/handler.ts
|
|
725
|
-
import { readFile } from "node:fs/promises";
|
|
726
|
-
import { getNameAndVersion as
|
|
789
|
+
import { readFile as readFile2 } from "node:fs/promises";
|
|
790
|
+
import { getNameAndVersion as getNameAndVersion4, getLatestVersion } from "@openfn/runtime";
|
|
727
791
|
var describeFn = (adaptorName, fn) => `## ${fn.name}(${fn.parameters.map(({ name }) => name).join(",")})
|
|
728
792
|
|
|
729
793
|
${fn.description}
|
|
@@ -753,7 +817,7 @@ var docsHandler = async (options, logger) => {
|
|
|
753
817
|
const { adaptor, operation, repoDir } = options;
|
|
754
818
|
const { adaptors } = expand_adaptors_default({ adaptors: [adaptor] });
|
|
755
819
|
const [adaptorName] = adaptors;
|
|
756
|
-
let { name, version } =
|
|
820
|
+
let { name, version } = getNameAndVersion4(adaptorName);
|
|
757
821
|
if (!version) {
|
|
758
822
|
logger.info("No version number provided, looking for latest...");
|
|
759
823
|
version = await getLatestVersion(name);
|
|
@@ -770,7 +834,7 @@ var docsHandler = async (options, logger) => {
|
|
|
770
834
|
);
|
|
771
835
|
let didError = false;
|
|
772
836
|
if (path7) {
|
|
773
|
-
const source = await
|
|
837
|
+
const source = await readFile2(path7, "utf8");
|
|
774
838
|
const data = JSON.parse(source);
|
|
775
839
|
let desc;
|
|
776
840
|
if (operation) {
|
|
@@ -802,7 +866,7 @@ var handler_default5 = docsHandler;
|
|
|
802
866
|
// src/metadata/cache.ts
|
|
803
867
|
import { createHash } from "node:crypto";
|
|
804
868
|
import { readFileSync as readFileSync2 } from "node:fs";
|
|
805
|
-
import
|
|
869
|
+
import path4 from "node:path";
|
|
806
870
|
import { writeFile as writeFile4, mkdir } from "node:fs/promises";
|
|
807
871
|
var getPath = (repoDir, key) => `${repoDir}/meta/${key}.json`;
|
|
808
872
|
var sortKeys = (obj) => {
|
|
@@ -833,7 +897,7 @@ var get = (repoPath, key) => {
|
|
|
833
897
|
};
|
|
834
898
|
var set = async (repoPath, key, data) => {
|
|
835
899
|
const fullPath = getPath(repoPath, key);
|
|
836
|
-
await mkdir(
|
|
900
|
+
await mkdir(path4.dirname(fullPath), { recursive: true });
|
|
837
901
|
await writeFile4(fullPath, JSON.stringify(data));
|
|
838
902
|
};
|
|
839
903
|
var cache_default = { get, set, generateKey, getPath, sortKeys };
|
|
@@ -917,7 +981,7 @@ var metadataHandler = async (options, logger) => {
|
|
|
917
981
|
var handler_default6 = metadataHandler;
|
|
918
982
|
|
|
919
983
|
// src/util/ensure-opts.ts
|
|
920
|
-
import
|
|
984
|
+
import path5 from "node:path";
|
|
921
985
|
var defaultLoggerOptions = {
|
|
922
986
|
default: "default",
|
|
923
987
|
job: "debug"
|
|
@@ -995,7 +1059,7 @@ function ensureOpts(basePath = ".", opts) {
|
|
|
995
1059
|
}
|
|
996
1060
|
let baseDir = basePath;
|
|
997
1061
|
if (basePath.endsWith(".js")) {
|
|
998
|
-
baseDir =
|
|
1062
|
+
baseDir = path5.dirname(basePath);
|
|
999
1063
|
set2("jobPath", basePath);
|
|
1000
1064
|
} else {
|
|
1001
1065
|
set2("jobPath", `${baseDir}/job.js`);
|
|
@@ -1011,47 +1075,6 @@ function ensureOpts(basePath = ".", opts) {
|
|
|
1011
1075
|
return newOpts;
|
|
1012
1076
|
}
|
|
1013
1077
|
|
|
1014
|
-
// src/util/use-adaptors-repo.ts
|
|
1015
|
-
import { readFile as readFile2 } from "node:fs/promises";
|
|
1016
|
-
import path5 from "node:path";
|
|
1017
|
-
import assert from "node:assert";
|
|
1018
|
-
import { getNameAndVersion as getNameAndVersion5 } from "@openfn/runtime";
|
|
1019
|
-
var validateMonoRepo = async (repoPath, log) => {
|
|
1020
|
-
try {
|
|
1021
|
-
const raw = await readFile2(`${repoPath}/package.json`, "utf8");
|
|
1022
|
-
const pkg = JSON.parse(raw);
|
|
1023
|
-
assert(pkg.name === "adaptors");
|
|
1024
|
-
} catch (e) {
|
|
1025
|
-
log.error(`ERROR: Adaptors Monorepo not found at ${repoPath}`);
|
|
1026
|
-
process.exit(9);
|
|
1027
|
-
}
|
|
1028
|
-
};
|
|
1029
|
-
var updatePath = (adaptor, repoPath, log) => {
|
|
1030
|
-
if (adaptor.match("=")) {
|
|
1031
|
-
return adaptor;
|
|
1032
|
-
}
|
|
1033
|
-
const { name, version } = getNameAndVersion5(adaptor);
|
|
1034
|
-
if (version) {
|
|
1035
|
-
log.warn(
|
|
1036
|
-
`Warning: Ignoring version specifier on ${adaptor} as loading from the adaptors monorepo`
|
|
1037
|
-
);
|
|
1038
|
-
}
|
|
1039
|
-
const shortName = name.replace("@openfn/language-", "");
|
|
1040
|
-
const abspath = path5.resolve(repoPath, "packages", shortName);
|
|
1041
|
-
return `${name}=${abspath}`;
|
|
1042
|
-
};
|
|
1043
|
-
var useAdaptorsRepo = async (adaptors, repoPath, log) => {
|
|
1044
|
-
await validateMonoRepo(repoPath, log);
|
|
1045
|
-
log.success(`Loading adaptors from monorepo at ${repoPath}`);
|
|
1046
|
-
const updatedAdaptors = adaptors.map((a) => {
|
|
1047
|
-
const p = updatePath(a, repoPath, log);
|
|
1048
|
-
log.info(`Mapped adaptor ${a} to monorepo: ${p.split("=")[1]}`);
|
|
1049
|
-
return p;
|
|
1050
|
-
});
|
|
1051
|
-
return updatedAdaptors;
|
|
1052
|
-
};
|
|
1053
|
-
var use_adaptors_repo_default = useAdaptorsRepo;
|
|
1054
|
-
|
|
1055
1078
|
// src/util/print-versions.ts
|
|
1056
1079
|
import { readFileSync as readFileSync3 } from "node:fs";
|
|
1057
1080
|
import path6 from "node:path";
|
|
@@ -1156,11 +1179,7 @@ var parse = async (basePath, options, log) => {
|
|
|
1156
1179
|
logger.error("Set OPENFN_ADAPTORS_REPO to a path pointing to the repo");
|
|
1157
1180
|
process.exit(9);
|
|
1158
1181
|
}
|
|
1159
|
-
|
|
1160
|
-
opts.adaptors,
|
|
1161
|
-
opts.monorepoPath,
|
|
1162
|
-
logger
|
|
1163
|
-
);
|
|
1182
|
+
await map_adaptors_to_monorepo_default(opts, logger);
|
|
1164
1183
|
} else if (opts.adaptors && opts.expandAdaptors) {
|
|
1165
1184
|
expand_adaptors_default(opts);
|
|
1166
1185
|
}
|