projen-cdktf-hybrid-construct 0.1.53 → 0.1.54
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/README.md +21 -1
- package/lib/publishing.d.ts +6 -4
- package/lib/publishing.js +21 -2
- package/package.json +1 -1
package/README.md
CHANGED
@@ -192,6 +192,26 @@ new HybridModule({
|
|
192
192
|
});
|
193
193
|
```
|
194
194
|
|
195
|
+
### Github Packages
|
196
|
+
|
197
|
+
We have a helper method for easy configuration, no extra steps needed:
|
198
|
+
|
199
|
+
```js
|
200
|
+
const {
|
201
|
+
HybridModule,
|
202
|
+
publishToGithubPackages,
|
203
|
+
} = require("projen-cdktf-hybrid-construct");
|
204
|
+
|
205
|
+
const project = new HybridModule({
|
206
|
+
// ... all the other options
|
207
|
+
...publishToGithubPackages({
|
208
|
+
name: "my-new-hybrid-construct",
|
209
|
+
namespace: "my-org",
|
210
|
+
registries: ["npm", "maven"], // pypi and nuget are not yet supported
|
211
|
+
}),
|
212
|
+
});
|
213
|
+
```
|
214
|
+
|
195
215
|
### Roadmap
|
196
216
|
|
197
217
|
- [x] Add dedicated file for HCL templates
|
@@ -201,5 +221,5 @@ new HybridModule({
|
|
201
221
|
- [x] Add example folder to project using this
|
202
222
|
- [x] Add testing strategy
|
203
223
|
- [x] Add construct / option / docs to publish existing module as construct
|
224
|
+
- [x] Add deployment scripts to Github Packages
|
204
225
|
- [ ] Add deployment scripts to Artifactory
|
205
|
-
- [ ] Add deployment scripts to Github Packages
|
package/lib/publishing.d.ts
CHANGED
@@ -5,9 +5,11 @@ export declare type PublishOptions = {
|
|
5
5
|
namespace: string;
|
6
6
|
registries: Registry[];
|
7
7
|
};
|
8
|
-
declare type
|
9
|
-
|
10
|
-
|
11
|
-
|
8
|
+
declare type AtomicObject = Function | Promise<any> | Date | RegExp | Boolean | Number | String;
|
9
|
+
declare type Mutable<T> = T extends AtomicObject ? T : T extends ReadonlyMap<infer K, infer V> ? Map<Mutable<K>, Mutable<V>> : T extends ReadonlySet<infer V> ? Set<Mutable<V>> : T extends object ? {
|
10
|
+
-readonly [K in keyof T]: Mutable<T[K]>;
|
11
|
+
} : T;
|
12
|
+
declare type Config = Mutable<Pick<ConstructLibraryOptions, "publishToPypi" | "publishToMaven" | "publishToNuget" | "releaseToNpm" | "npmRegistryUrl">>;
|
12
13
|
export declare function publishToRegistries(options: PublishOptions): Config;
|
14
|
+
export declare function publishToGithubPackages(options: PublishOptions): Config;
|
13
15
|
export {};
|
package/lib/publishing.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.publishToRegistries = void 0;
|
3
|
+
exports.publishToGithubPackages = exports.publishToRegistries = void 0;
|
4
4
|
const change_case_1 = require("change-case");
|
5
5
|
function publishToRegistries(options) {
|
6
6
|
const { name, namespace, registries } = options;
|
@@ -32,4 +32,23 @@ function publishToRegistries(options) {
|
|
32
32
|
return config;
|
33
33
|
}
|
34
34
|
exports.publishToRegistries = publishToRegistries;
|
35
|
-
|
35
|
+
function publishToGithubPackages(options) {
|
36
|
+
const { registries } = options;
|
37
|
+
const config = publishToRegistries(options);
|
38
|
+
if (registries.includes("pypi")) {
|
39
|
+
throw new Error("Github Packages does not support python packages");
|
40
|
+
}
|
41
|
+
if (registries.includes("nuget")) {
|
42
|
+
// Seems like projen does not support github packages on nuget yet: https://github.dev/projen/projen/blob/14f37ec704afdc5143e6a2954c1250b1f0ccaddf/src/release/publisher.ts#L343
|
43
|
+
throw new Error("Github Packages does support nuget packages, but this library does not yet support it");
|
44
|
+
}
|
45
|
+
if (registries.includes("npm")) {
|
46
|
+
config.npmRegistryUrl = "https://npm.pkg.github.com";
|
47
|
+
}
|
48
|
+
if (registries.includes("maven")) {
|
49
|
+
config.publishToMaven.mavenRepositoryUrl = "https://maven.pkg.github.com";
|
50
|
+
}
|
51
|
+
return config;
|
52
|
+
}
|
53
|
+
exports.publishToGithubPackages = publishToGithubPackages;
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wdWJsaXNoaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUF5QztBQXlDekMsU0FBZ0IsbUJBQW1CLENBQUMsT0FBdUI7SUFDekQsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQ2hELE1BQU0sa0JBQWtCLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDekQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDL0MsTUFBTSxNQUFNLEdBQVc7UUFDckIsWUFBWSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO0tBQ3pDLENBQUM7SUFFRixJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDL0IsTUFBTSxDQUFDLGFBQWEsR0FBRztZQUNyQixRQUFRLEVBQUUsR0FBRyxrQkFBa0IsSUFBSSxhQUFhLEVBQUU7WUFDbEQsTUFBTSxFQUFFLEdBQUcsa0JBQWtCLElBQUksYUFBYSxFQUFFO1NBQ2pELENBQUM7S0FDSDtJQUVELElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUNoQyxNQUFNLENBQUMsY0FBYyxHQUFHO1lBQ3RCLFdBQVcsRUFBRSxPQUFPLGtCQUFrQixJQUFJLGFBQWEsRUFBRTtZQUN6RCxZQUFZLEVBQUUsT0FBTyxrQkFBa0IsRUFBRTtZQUN6QyxlQUFlLEVBQUUsYUFBYTtTQUMvQixDQUFDO0tBQ0g7SUFFRCxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDaEMsTUFBTSxTQUFTLEdBQUcsR0FBRyxJQUFBLHdCQUFVLEVBQUMsU0FBUyxDQUFDLElBQUksSUFBQSx3QkFBVSxFQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDakUsTUFBTSxDQUFDLGNBQWMsR0FBRztZQUN0QixlQUFlLEVBQUUsU0FBUztZQUMxQixTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDO0tBQ0g7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBL0JELGtEQStCQztBQUVELFNBQWdCLHVCQUF1QixDQUFDLE9BQXVCO0lBQzdELE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFDL0IsTUFBTSxNQUFNLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUMsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELENBQUMsQ0FBQztLQUNyRTtJQUNELElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUNoQyxnTEFBZ0w7UUFDaEwsTUFBTSxJQUFJLEtBQUssQ0FDYix1RkFBdUYsQ0FDeEYsQ0FBQztLQUNIO0lBRUQsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQzlCLE1BQU0sQ0FBQyxjQUFjLEdBQUcsNEJBQTRCLENBQUM7S0FDdEQ7SUFFRCxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDaEMsTUFBTSxDQUFDLGNBQWUsQ0FBQyxrQkFBa0IsR0FBRyw4QkFBOEIsQ0FBQztLQUM1RTtJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUF0QkQsMERBc0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFzY2FsQ2FzZSB9IGZyb20gXCJjaGFuZ2UtY2FzZVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0TGlicmFyeU9wdGlvbnMgfSBmcm9tIFwicHJvamVuL2xpYi9jZGtcIjtcblxuZXhwb3J0IHR5cGUgUmVnaXN0cnkgPSBcIm5wbVwiIHwgXCJtYXZlblwiIHwgXCJudWdldFwiIHwgXCJweXBpXCI7XG5cbmV4cG9ydCB0eXBlIFB1Ymxpc2hPcHRpb25zID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuICByZWdpc3RyaWVzOiBSZWdpc3RyeVtdO1xufTtcblxudHlwZSBBdG9taWNPYmplY3QgPVxuICB8IEZ1bmN0aW9uXG4gIHwgUHJvbWlzZTxhbnk+XG4gIHwgRGF0ZVxuICB8IFJlZ0V4cFxuICB8IEJvb2xlYW5cbiAgfCBOdW1iZXJcbiAgfCBTdHJpbmc7XG5cbnR5cGUgTXV0YWJsZTxUPiA9IFQgZXh0ZW5kcyBBdG9taWNPYmplY3RcbiAgPyBUXG4gIDogVCBleHRlbmRzIFJlYWRvbmx5TWFwPGluZmVyIEssIGluZmVyIFY+IC8vIE1hcCBleHRlbmRzIFJlYWRvbmx5TWFwXG4gID8gTWFwPE11dGFibGU8Sz4sIE11dGFibGU8Vj4+XG4gIDogVCBleHRlbmRzIFJlYWRvbmx5U2V0PGluZmVyIFY+IC8vIFNldCBleHRlbmRzIFJlYWRvbmx5U2V0XG4gID8gU2V0PE11dGFibGU8Vj4+XG4gIDogVCBleHRlbmRzIG9iamVjdFxuICA/IHsgLXJlYWRvbmx5IFtLIGluIGtleW9mIFRdOiBNdXRhYmxlPFRbS10+IH1cbiAgOiBUO1xuXG50eXBlIENvbmZpZyA9IE11dGFibGU8XG4gIFBpY2s8XG4gICAgQ29uc3RydWN0TGlicmFyeU9wdGlvbnMsXG4gICAgfCBcInB1Ymxpc2hUb1B5cGlcIlxuICAgIHwgXCJwdWJsaXNoVG9NYXZlblwiXG4gICAgfCBcInB1Ymxpc2hUb051Z2V0XCJcbiAgICB8IFwicmVsZWFzZVRvTnBtXCJcbiAgICB8IFwibnBtUmVnaXN0cnlVcmxcIlxuICA+XG4+O1xuXG5leHBvcnQgZnVuY3Rpb24gcHVibGlzaFRvUmVnaXN0cmllcyhvcHRpb25zOiBQdWJsaXNoT3B0aW9ucyk6IENvbmZpZyB7XG4gIGNvbnN0IHsgbmFtZSwgbmFtZXNwYWNlLCByZWdpc3RyaWVzIH0gPSBvcHRpb25zO1xuICBjb25zdCBzYW5pdGl6ZWROYW1lc3BhY2UgPSBuYW1lc3BhY2UucmVwbGFjZSgvLS9naSwgXCJfXCIpO1xuICBjb25zdCBzYW5pdGl6ZWROYW1lID0gbmFtZS5yZXBsYWNlKC8tL2dpLCBcIl9cIik7XG4gIGNvbnN0IGNvbmZpZzogQ29uZmlnID0ge1xuICAgIHJlbGVhc2VUb05wbTogcmVnaXN0cmllcy5pbmNsdWRlcyhcIm5wbVwiKSxcbiAgfTtcblxuICBpZiAocmVnaXN0cmllcy5pbmNsdWRlcyhcInB5cGlcIikpIHtcbiAgICBjb25maWcucHVibGlzaFRvUHlwaSA9IHtcbiAgICAgIGRpc3ROYW1lOiBgJHtzYW5pdGl6ZWROYW1lc3BhY2V9LSR7c2FuaXRpemVkTmFtZX1gLFxuICAgICAgbW9kdWxlOiBgJHtzYW5pdGl6ZWROYW1lc3BhY2V9XyR7c2FuaXRpemVkTmFtZX1gLFxuICAgIH07XG4gIH1cblxuICBpZiAocmVnaXN0cmllcy5pbmNsdWRlcyhcIm1hdmVuXCIpKSB7XG4gICAgY29uZmlnLnB1Ymxpc2hUb01hdmVuID0ge1xuICAgICAgamF2YVBhY2thZ2U6IGBjb20uJHtzYW5pdGl6ZWROYW1lc3BhY2V9LiR7c2FuaXRpemVkTmFtZX1gLFxuICAgICAgbWF2ZW5Hcm91cElkOiBgY29tLiR7c2FuaXRpemVkTmFtZXNwYWNlfWAsXG4gICAgICBtYXZlbkFydGlmYWN0SWQ6IHNhbml0aXplZE5hbWUsXG4gICAgfTtcbiAgfVxuXG4gIGlmIChyZWdpc3RyaWVzLmluY2x1ZGVzKFwibnVnZXRcIikpIHtcbiAgICBjb25zdCBudWdldE5hbWUgPSBgJHtwYXNjYWxDYXNlKG5hbWVzcGFjZSl9LiR7cGFzY2FsQ2FzZShuYW1lKX1gO1xuICAgIGNvbmZpZy5wdWJsaXNoVG9OdWdldCA9IHtcbiAgICAgIGRvdE5ldE5hbWVzcGFjZTogbnVnZXROYW1lLFxuICAgICAgcGFja2FnZUlkOiBudWdldE5hbWUsXG4gICAgfTtcbiAgfVxuICByZXR1cm4gY29uZmlnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHVibGlzaFRvR2l0aHViUGFja2FnZXMob3B0aW9uczogUHVibGlzaE9wdGlvbnMpOiBDb25maWcge1xuICBjb25zdCB7IHJlZ2lzdHJpZXMgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGNvbmZpZyA9IHB1Ymxpc2hUb1JlZ2lzdHJpZXMob3B0aW9ucyk7XG4gIGlmIChyZWdpc3RyaWVzLmluY2x1ZGVzKFwicHlwaVwiKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkdpdGh1YiBQYWNrYWdlcyBkb2VzIG5vdCBzdXBwb3J0IHB5dGhvbiBwYWNrYWdlc1wiKTtcbiAgfVxuICBpZiAocmVnaXN0cmllcy5pbmNsdWRlcyhcIm51Z2V0XCIpKSB7XG4gICAgLy8gU2VlbXMgbGlrZSBwcm9qZW4gZG9lcyBub3Qgc3VwcG9ydCBnaXRodWIgcGFja2FnZXMgb24gbnVnZXQgeWV0OiBodHRwczovL2dpdGh1Yi5kZXYvcHJvamVuL3Byb2plbi9ibG9iLzE0ZjM3ZWM3MDRhZmRjNTE0M2U2YTI5NTRjMTI1MGIxZjBjY2FkZGYvc3JjL3JlbGVhc2UvcHVibGlzaGVyLnRzI0wzNDNcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBcIkdpdGh1YiBQYWNrYWdlcyBkb2VzIHN1cHBvcnQgbnVnZXQgcGFja2FnZXMsIGJ1dCB0aGlzIGxpYnJhcnkgZG9lcyBub3QgeWV0IHN1cHBvcnQgaXRcIlxuICAgICk7XG4gIH1cblxuICBpZiAocmVnaXN0cmllcy5pbmNsdWRlcyhcIm5wbVwiKSkge1xuICAgIGNvbmZpZy5ucG1SZWdpc3RyeVVybCA9IFwiaHR0cHM6Ly9ucG0ucGtnLmdpdGh1Yi5jb21cIjtcbiAgfVxuXG4gIGlmIChyZWdpc3RyaWVzLmluY2x1ZGVzKFwibWF2ZW5cIikpIHtcbiAgICBjb25maWcucHVibGlzaFRvTWF2ZW4hLm1hdmVuUmVwb3NpdG9yeVVybCA9IFwiaHR0cHM6Ly9tYXZlbi5wa2cuZ2l0aHViLmNvbVwiO1xuICB9XG5cbiAgcmV0dXJuIGNvbmZpZztcbn1cbiJdfQ==
|