@cosmwasm/ts-codegen 0.3.9
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 +89 -0
- package/main/clean.js +62 -0
- package/main/cleanse.js +89 -0
- package/main/cli.js +69 -0
- package/main/cmds.js +26 -0
- package/main/commands/boilerplate.js +195 -0
- package/main/commands/from-partial.js +74 -0
- package/main/commands/generate.js +74 -0
- package/main/commands/react-query.js +74 -0
- package/main/commands/recoil.js +74 -0
- package/main/cosmwasm-typescript-gen.js +28 -0
- package/main/file.js +47 -0
- package/main/from-partial.js +92 -0
- package/main/generate.js +109 -0
- package/main/header.js +14 -0
- package/main/index.js +59 -0
- package/main/parse.js +49 -0
- package/main/prompt.js +118 -0
- package/main/react-query.js +83 -0
- package/main/recoil.js +86 -0
- package/main/utils.js +123 -0
- package/module/clean.js +49 -0
- package/module/cleanse.js +76 -0
- package/module/cli.js +20 -0
- package/module/cmds.js +12 -0
- package/module/commands/boilerplate.js +116 -0
- package/module/commands/from-partial.js +33 -0
- package/module/commands/generate.js +33 -0
- package/module/commands/react-query.js +33 -0
- package/module/commands/recoil.js +33 -0
- package/module/cosmwasm-typescript-gen.js +8 -0
- package/module/file.js +21 -0
- package/module/from-partial.js +41 -0
- package/module/generate.js +57 -0
- package/module/header.js +8 -0
- package/module/index.js +5 -0
- package/module/parse.js +37 -0
- package/module/prompt.js +68 -0
- package/module/react-query.js +31 -0
- package/module/recoil.js +34 -0
- package/module/utils.js +52 -0
- package/package.json +95 -0
- package/types/clean.d.ts +1 -0
- package/types/cli.d.ts +1 -0
- package/types/cmds.d.ts +1 -0
- package/types/commands/boilerplate.d.ts +2 -0
- package/types/commands/from-partial.d.ts +2 -0
- package/types/commands/generate.d.ts +2 -0
- package/types/commands/react-query.d.ts +2 -0
- package/types/commands/recoil.d.ts +2 -0
- package/types/cosmwasm-typescript-gen.d.ts +2 -0
- package/types/file.d.ts +2 -0
- package/types/from-partial.d.ts +2 -0
- package/types/generate.d.ts +2 -0
- package/types/header.d.ts +1 -0
- package/types/index.d.ts +5 -0
- package/types/parse.d.ts +1 -0
- package/types/prompt.d.ts +3 -0
- package/types/react-query.d.ts +2 -0
- package/types/recoil.d.ts +2 -0
- package/types/utils.d.ts +4 -0
package/README.md
ADDED
@@ -0,0 +1,89 @@
|
|
1
|
+
# cosmwasm-typescript-gen
|
2
|
+
|
3
|
+
A Transpiler for CosmWasm Smart Contracts
|
4
|
+
|
5
|
+
<p align="center">
|
6
|
+
<img width="120" src="https://user-images.githubusercontent.com/545047/163705368-bc899f6d-a2de-43ee-889b-dbf44e17f288.png">
|
7
|
+
</p>
|
8
|
+
|
9
|
+
<p align="center" width="100%">
|
10
|
+
<a href="https://github.com/CosmWasm/cosmwasm-typescript-gen/actions/workflows/run-tests.yaml">
|
11
|
+
<img height="20" src="https://github.com/CosmWasm/cosmwasm-typescript-gen/actions/workflows/run-tests.yaml/badge.svg" />
|
12
|
+
</a>
|
13
|
+
<a href="https://github.com/CosmWasm/cosmwasm-typescript-gen/blob/main/LICENSE-MIT"><img height="20" src="https://img.shields.io/badge/license-MIT-blue.svg"></a>
|
14
|
+
<a href="https://github.com/CosmWasm/cosmwasm-typescript-gen/blob/main/LICENSE-Apache"><img height="20" src="https://img.shields.io/badge/license-Apache-blue.svg"></a>
|
15
|
+
<a href="https://www.npmjs.com/package/cosmwasm-typescript-gen"><img height="20" src="https://img.shields.io/github/package-json/v/CosmWasm/cosmwasm-typescript-gen?filename=packages%2Fcosmwasm-typescript-gen%2Fpackage.json"></a>
|
16
|
+
</p>
|
17
|
+
|
18
|
+
|
19
|
+
```
|
20
|
+
npm install -g cosmwasm-typescript-gen
|
21
|
+
```
|
22
|
+
|
23
|
+
## usage
|
24
|
+
|
25
|
+
```
|
26
|
+
cosmwasm-typescript-gen generate \
|
27
|
+
--schema ./schema \
|
28
|
+
--out ./src \
|
29
|
+
--name MyContractName
|
30
|
+
```
|
31
|
+
|
32
|
+
### example
|
33
|
+
|
34
|
+
```
|
35
|
+
git clone git@github.com:public-awesome/stargaze-contracts.git
|
36
|
+
cd stargaze-contracts/contracts/sg721/
|
37
|
+
cosmwasm-typescript-gen generate --schema ./schema --out ./ts --name SG721
|
38
|
+
```
|
39
|
+
|
40
|
+
### JSON Schema Generation
|
41
|
+
|
42
|
+
Currently you have to have the JSON Schema output. Here is an example to start:
|
43
|
+
|
44
|
+
```sh
|
45
|
+
## get the Rust contracts
|
46
|
+
git clone git@github.com:public-awesome/stargaze-contracts.git
|
47
|
+
cd stargaze-contracts
|
48
|
+
cargo build
|
49
|
+
|
50
|
+
## now build the schema
|
51
|
+
cd contracts/sg721/
|
52
|
+
cargo schema
|
53
|
+
```
|
54
|
+
|
55
|
+
### Example Output
|
56
|
+
|
57
|
+
- `cosmwasm-typescript-gen generate`
|
58
|
+
|
59
|
+
https://gist.github.com/pyramation/ba67ec56e4e2a39cadea55430f9993e5
|
60
|
+
|
61
|
+
- `cosmwasm-typescript-gen from-partial`
|
62
|
+
|
63
|
+
https://gist.github.com/pyramation/f50869d1ecdb6d6ced2bc0a44c6ff492
|
64
|
+
|
65
|
+
- `cosmwasm-typescript-gen react-query`
|
66
|
+
|
67
|
+
https://gist.github.com/pyramation/a3bf4aa7b60a31287d0720ca1bb5473b
|
68
|
+
|
69
|
+
- `cosmwasm-typescript-gen recoil`
|
70
|
+
|
71
|
+
https://gist.github.com/pyramation/48b28a75def1a16b233b369297f05f0e
|
72
|
+
|
73
|
+
|
74
|
+
### Exporting Schemas
|
75
|
+
|
76
|
+
#### `cosmwasm_std` Examples
|
77
|
+
|
78
|
+
```rs
|
79
|
+
use cosmwasm_std::{Addr, CosmosMsg, Empty};
|
80
|
+
|
81
|
+
export_schema_with_title(&schema_for!(MinterData), &out_dir, "MinterResponse");
|
82
|
+
export_schema_with_title(&schema_for!(Addr), &out_dir, "StakingResponse");
|
83
|
+
export_schema_with_title(&schema_for!(Addr), &out_dir, "DaoResponse");
|
84
|
+
export_schema_with_title(
|
85
|
+
&schema_for!(CosmosMsg<Empty>),
|
86
|
+
&out_dir,
|
87
|
+
"CosmosMsg_for_Empty",
|
88
|
+
);
|
89
|
+
```
|
package/main/clean.js
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
6
|
+
value: true
|
7
|
+
});
|
8
|
+
exports.clean = void 0;
|
9
|
+
|
10
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
11
|
+
|
12
|
+
var clean = function clean(obj) {
|
13
|
+
var copy; // Handle the 3 simple types, and null or undefined
|
14
|
+
|
15
|
+
if (null == obj || 'object' != (0, _typeof2["default"])(obj)) return obj; // Handle Date
|
16
|
+
|
17
|
+
if (obj instanceof Date) {
|
18
|
+
copy = new Date();
|
19
|
+
copy.setTime(obj.getTime());
|
20
|
+
return copy;
|
21
|
+
} // Handle Array
|
22
|
+
|
23
|
+
|
24
|
+
if (obj instanceof Array) {
|
25
|
+
copy = [];
|
26
|
+
|
27
|
+
for (var i = 0, len = obj.length; i < len; i++) {
|
28
|
+
copy[i] = clean(obj[i]);
|
29
|
+
}
|
30
|
+
|
31
|
+
return copy;
|
32
|
+
} // Handle Object
|
33
|
+
|
34
|
+
|
35
|
+
if (obj instanceof Object || (0, _typeof2["default"])(obj) === 'object') {
|
36
|
+
copy = {};
|
37
|
+
|
38
|
+
for (var attr in obj) {
|
39
|
+
if (obj.hasOwnProperty(attr)) {
|
40
|
+
switch (attr) {
|
41
|
+
case 'leadingComments':
|
42
|
+
case 'trailingComments':
|
43
|
+
case 'loc':
|
44
|
+
case 'start':
|
45
|
+
case 'end':
|
46
|
+
break;
|
47
|
+
|
48
|
+
default:
|
49
|
+
copy[attr] = clean(obj[attr]);
|
50
|
+
}
|
51
|
+
} else {
|
52
|
+
copy[attr] = clean(obj[attr]);
|
53
|
+
}
|
54
|
+
}
|
55
|
+
|
56
|
+
return copy;
|
57
|
+
}
|
58
|
+
|
59
|
+
throw new Error("Unable to copy obj! Its type isn't supported.");
|
60
|
+
};
|
61
|
+
|
62
|
+
exports.clean = clean;
|
package/main/cleanse.js
ADDED
@@ -0,0 +1,89 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
6
|
+
value: true
|
7
|
+
});
|
8
|
+
exports.cleanse = void 0;
|
9
|
+
|
10
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
11
|
+
|
12
|
+
var cleanFor = function cleanFor(str) {
|
13
|
+
/*
|
14
|
+
1. look at first char after _for_
|
15
|
+
2. ONLY if you find capitals after, modify it
|
16
|
+
*/
|
17
|
+
if (/_for_[A-Z]/.test(str)) {
|
18
|
+
return str.replace(/_for_/, 'For');
|
19
|
+
}
|
20
|
+
|
21
|
+
return str;
|
22
|
+
};
|
23
|
+
|
24
|
+
var cleanse = function cleanse(obj) {
|
25
|
+
var copy; // Handle the 3 simple types, and null or undefined
|
26
|
+
|
27
|
+
if (null == obj || 'object' != (0, _typeof2["default"])(obj)) return obj; // Handle Date
|
28
|
+
|
29
|
+
if (obj instanceof Date) {
|
30
|
+
copy = new Date();
|
31
|
+
copy.setTime(obj.getTime());
|
32
|
+
return copy;
|
33
|
+
} // Handle Array
|
34
|
+
|
35
|
+
|
36
|
+
if (obj instanceof Array) {
|
37
|
+
copy = [];
|
38
|
+
|
39
|
+
for (var i = 0, len = obj.length; i < len; i++) {
|
40
|
+
copy[i] = cleanse(obj[i]);
|
41
|
+
}
|
42
|
+
|
43
|
+
return copy;
|
44
|
+
} // Handle Object
|
45
|
+
|
46
|
+
|
47
|
+
if (obj instanceof Object || (0, _typeof2["default"])(obj) === 'object') {
|
48
|
+
copy = {}; // https://github.com/CosmWasm/cosmwasm-typescript-gen/issues/27
|
49
|
+
|
50
|
+
if (Array.isArray(obj["enum"]) && obj["enum"].length === 0) {
|
51
|
+
delete obj["enum"];
|
52
|
+
|
53
|
+
if (!obj.type) {
|
54
|
+
obj.type = 'string';
|
55
|
+
}
|
56
|
+
}
|
57
|
+
|
58
|
+
for (var attr in obj) {
|
59
|
+
if (obj.hasOwnProperty(attr)) {
|
60
|
+
if (/_for_/.test(attr)) {
|
61
|
+
copy[cleanFor(attr)] = cleanse(obj[attr]);
|
62
|
+
} else {
|
63
|
+
switch (attr) {
|
64
|
+
case 'title':
|
65
|
+
case '$ref':
|
66
|
+
if (typeof obj[attr] === 'string') {
|
67
|
+
copy[attr] = cleanse(cleanFor(obj[attr]));
|
68
|
+
} else {
|
69
|
+
copy[attr] = cleanse(obj[attr]);
|
70
|
+
}
|
71
|
+
|
72
|
+
break;
|
73
|
+
|
74
|
+
default:
|
75
|
+
copy[attr] = cleanse(obj[attr]);
|
76
|
+
}
|
77
|
+
}
|
78
|
+
} else {
|
79
|
+
copy[attr] = cleanse(obj[attr]);
|
80
|
+
}
|
81
|
+
}
|
82
|
+
|
83
|
+
return copy;
|
84
|
+
}
|
85
|
+
|
86
|
+
throw new Error("Unable to copy obj! Its type isn't supported.");
|
87
|
+
};
|
88
|
+
|
89
|
+
exports.cleanse = cleanse;
|
package/main/cli.js
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
6
|
+
value: true
|
7
|
+
});
|
8
|
+
exports.cli = void 0;
|
9
|
+
|
10
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
11
|
+
|
12
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
13
|
+
|
14
|
+
var _prompt = require("./prompt");
|
15
|
+
|
16
|
+
var _cmds = require("./cmds");
|
17
|
+
|
18
|
+
var question = [{
|
19
|
+
_: true,
|
20
|
+
type: 'fuzzy',
|
21
|
+
name: 'cmd',
|
22
|
+
message: 'what do you want to do?',
|
23
|
+
choices: Object.keys(_cmds.Commands)
|
24
|
+
}];
|
25
|
+
|
26
|
+
var cli = /*#__PURE__*/function () {
|
27
|
+
var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(argv) {
|
28
|
+
var _yield$prompt, cmd;
|
29
|
+
|
30
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
31
|
+
while (1) {
|
32
|
+
switch (_context.prev = _context.next) {
|
33
|
+
case 0:
|
34
|
+
_context.next = 2;
|
35
|
+
return (0, _prompt.prompt)(question, argv);
|
36
|
+
|
37
|
+
case 2:
|
38
|
+
_yield$prompt = _context.sent;
|
39
|
+
cmd = _yield$prompt.cmd;
|
40
|
+
|
41
|
+
if (!(typeof _cmds.Commands[cmd] === 'function')) {
|
42
|
+
_context.next = 9;
|
43
|
+
break;
|
44
|
+
}
|
45
|
+
|
46
|
+
_context.next = 7;
|
47
|
+
return _cmds.Commands[cmd](argv);
|
48
|
+
|
49
|
+
case 7:
|
50
|
+
_context.next = 10;
|
51
|
+
break;
|
52
|
+
|
53
|
+
case 9:
|
54
|
+
console.log('command not found.');
|
55
|
+
|
56
|
+
case 10:
|
57
|
+
case "end":
|
58
|
+
return _context.stop();
|
59
|
+
}
|
60
|
+
}
|
61
|
+
}, _callee);
|
62
|
+
}));
|
63
|
+
|
64
|
+
return function cli(_x) {
|
65
|
+
return _ref.apply(this, arguments);
|
66
|
+
};
|
67
|
+
}();
|
68
|
+
|
69
|
+
exports.cli = cli;
|
package/main/cmds.js
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
6
|
+
value: true
|
7
|
+
});
|
8
|
+
exports.Commands = void 0;
|
9
|
+
|
10
|
+
var _boilerplate2 = _interopRequireDefault(require("./commands/boilerplate"));
|
11
|
+
|
12
|
+
var _fromPartial = _interopRequireDefault(require("./commands/from-partial"));
|
13
|
+
|
14
|
+
var _generate2 = _interopRequireDefault(require("./commands/generate"));
|
15
|
+
|
16
|
+
var _reactQuery = _interopRequireDefault(require("./commands/react-query"));
|
17
|
+
|
18
|
+
var _recoil2 = _interopRequireDefault(require("./commands/recoil"));
|
19
|
+
|
20
|
+
var Commands = {};
|
21
|
+
exports.Commands = Commands;
|
22
|
+
Commands['boilerplate'] = _boilerplate2["default"];
|
23
|
+
Commands['from-partial'] = _fromPartial["default"];
|
24
|
+
Commands['generate'] = _generate2["default"];
|
25
|
+
Commands['react-query'] = _reactQuery["default"];
|
26
|
+
Commands['recoil'] = _recoil2["default"];
|
@@ -0,0 +1,195 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
6
|
+
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
8
|
+
value: true
|
9
|
+
});
|
10
|
+
exports["default"] = void 0;
|
11
|
+
|
12
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
13
|
+
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
15
|
+
|
16
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
17
|
+
|
18
|
+
var shell = _interopRequireWildcard(require("shelljs"));
|
19
|
+
|
20
|
+
var _prompt = require("../prompt");
|
21
|
+
|
22
|
+
var _dargs = _interopRequireDefault(require("dargs"));
|
23
|
+
|
24
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
25
|
+
|
26
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
27
|
+
|
28
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
29
|
+
|
30
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
31
|
+
|
32
|
+
var glob = require('glob').sync;
|
33
|
+
|
34
|
+
var fs = require('fs');
|
35
|
+
|
36
|
+
var path = require('path');
|
37
|
+
|
38
|
+
var repo = 'git@github.com:pyramation/tmpl-cosmwasm-module.git';
|
39
|
+
|
40
|
+
var _default = /*#__PURE__*/function () {
|
41
|
+
var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(argv) {
|
42
|
+
var _yield$prompt, name, questions, fullname, email, args, results, scopedResults, license, files, _loop, i, _ret;
|
43
|
+
|
44
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
45
|
+
while (1) {
|
46
|
+
switch (_context.prev = _context.next) {
|
47
|
+
case 0:
|
48
|
+
if (shell.which('git')) {
|
49
|
+
_context.next = 3;
|
50
|
+
break;
|
51
|
+
}
|
52
|
+
|
53
|
+
shell.echo('Sorry, this script requires git');
|
54
|
+
return _context.abrupt("return", shell.exit(1));
|
55
|
+
|
56
|
+
case 3:
|
57
|
+
_context.next = 5;
|
58
|
+
return (0, _prompt.prompt)([{
|
59
|
+
type: 'string',
|
60
|
+
name: 'name',
|
61
|
+
message: 'Enter your new module name'
|
62
|
+
}], argv);
|
63
|
+
|
64
|
+
case 5:
|
65
|
+
_yield$prompt = _context.sent;
|
66
|
+
name = _yield$prompt.name;
|
67
|
+
shell.exec("git clone ".concat(repo, " ").concat(name));
|
68
|
+
shell.cd(name);
|
69
|
+
questions = JSON.parse(fs.readFileSync(".questions.json"));
|
70
|
+
fullname = shell.exec('git config --global user.name', {
|
71
|
+
silent: true
|
72
|
+
}).trim();
|
73
|
+
email = shell.exec('git config --global user.email', {
|
74
|
+
silent: true
|
75
|
+
}).trim(); // @__USERNAME__/__MODULENAME__
|
76
|
+
// __PACKAGE_IDENTIFIER__
|
77
|
+
|
78
|
+
args = (0, _dargs["default"])(_objectSpread(_objectSpread({
|
79
|
+
_: []
|
80
|
+
}, argv), {}, {
|
81
|
+
__MODULENAME__: name,
|
82
|
+
__USERFULLNAME__: fullname,
|
83
|
+
__USEREMAIL__: email
|
84
|
+
}), {
|
85
|
+
allowCamelCase: true
|
86
|
+
});
|
87
|
+
_context.next = 15;
|
88
|
+
return (0, _prompt.prompt)(questions, args);
|
89
|
+
|
90
|
+
case 15:
|
91
|
+
results = _context.sent;
|
92
|
+
_context.next = 18;
|
93
|
+
return (0, _prompt.prompt)([{
|
94
|
+
name: '__LICENSE__',
|
95
|
+
message: 'Which license?',
|
96
|
+
choices: ['MIT', 'closed'],
|
97
|
+
type: 'list',
|
98
|
+
required: true
|
99
|
+
}], []);
|
100
|
+
|
101
|
+
case 18:
|
102
|
+
license = _context.sent;
|
103
|
+
|
104
|
+
if (!(results.__ACCESS__ === 'public')) {
|
105
|
+
_context.next = 23;
|
106
|
+
break;
|
107
|
+
}
|
108
|
+
|
109
|
+
_context.next = 22;
|
110
|
+
return (0, _prompt.prompt)([{
|
111
|
+
type: 'confirm',
|
112
|
+
name: 'scoped',
|
113
|
+
message: 'use npm scopes?',
|
114
|
+
required: true
|
115
|
+
}], []);
|
116
|
+
|
117
|
+
case 22:
|
118
|
+
scopedResults = _context.sent;
|
119
|
+
|
120
|
+
case 23:
|
121
|
+
files = [].concat(glob(process.cwd() + '/**/.*')).concat(glob(process.cwd() + '/**/*'));
|
122
|
+
|
123
|
+
_loop = function _loop(i) {
|
124
|
+
var templateFile = files[i];
|
125
|
+
if (fs.lstatSync(templateFile).isDirectory()) return "continue";
|
126
|
+
var content = fs.readFileSync(templateFile).toString();
|
127
|
+
|
128
|
+
if (path.basename(templateFile) === 'LICENSE' && license.__LICENSE__ === 'closed') {
|
129
|
+
content = "Copyright (c) 2022 __USERFULLNAME__ <__USEREMAIL__> - All Rights Reserved\nUnauthorized copying via any medium is strictly prohibited\nProprietary and confidential";
|
130
|
+
}
|
131
|
+
|
132
|
+
Object.keys(results).forEach(function (key) {
|
133
|
+
if (/^__/.test(key)) {
|
134
|
+
content = content.replace(new RegExp(key, 'g'), results[key]);
|
135
|
+
}
|
136
|
+
});
|
137
|
+
|
138
|
+
if (results.__ACCESS__ === 'public') {
|
139
|
+
if (scopedResults.scoped) {
|
140
|
+
content = content.replace(/__PACKAGE_IDENTIFIER__/g, "@".concat(results.__USERNAME__, "/").concat(results.__MODULENAME__));
|
141
|
+
} else {
|
142
|
+
content = content.replace(/__PACKAGE_IDENTIFIER__/g, "".concat(results.__MODULENAME__));
|
143
|
+
}
|
144
|
+
} else {
|
145
|
+
content = content.replace(/__PACKAGE_IDENTIFIER__/g, "@".concat(results.__USERNAME__, "/").concat(results.__MODULENAME__));
|
146
|
+
}
|
147
|
+
|
148
|
+
if (path.basename(templateFile) === 'README.md') {
|
149
|
+
content = "# ".concat(results.__MODULENAME__);
|
150
|
+
}
|
151
|
+
|
152
|
+
fs.writeFileSync(templateFile, content);
|
153
|
+
};
|
154
|
+
|
155
|
+
i = 0;
|
156
|
+
|
157
|
+
case 26:
|
158
|
+
if (!(i < files.length)) {
|
159
|
+
_context.next = 33;
|
160
|
+
break;
|
161
|
+
}
|
162
|
+
|
163
|
+
_ret = _loop(i);
|
164
|
+
|
165
|
+
if (!(_ret === "continue")) {
|
166
|
+
_context.next = 30;
|
167
|
+
break;
|
168
|
+
}
|
169
|
+
|
170
|
+
return _context.abrupt("continue", 30);
|
171
|
+
|
172
|
+
case 30:
|
173
|
+
i++;
|
174
|
+
_context.next = 26;
|
175
|
+
break;
|
176
|
+
|
177
|
+
case 33:
|
178
|
+
shell.rm('-rf', '.git');
|
179
|
+
shell.rm('-rf', '.questions.json');
|
180
|
+
console.log("\n\n |||\n (o o)\n ooO--(_)--Ooo-\n\n \u2728 Great work!\n ");
|
181
|
+
|
182
|
+
case 36:
|
183
|
+
case "end":
|
184
|
+
return _context.stop();
|
185
|
+
}
|
186
|
+
}
|
187
|
+
}, _callee);
|
188
|
+
}));
|
189
|
+
|
190
|
+
return function (_x) {
|
191
|
+
return _ref.apply(this, arguments);
|
192
|
+
};
|
193
|
+
}();
|
194
|
+
|
195
|
+
exports["default"] = _default;
|
@@ -0,0 +1,74 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
6
|
+
value: true
|
7
|
+
});
|
8
|
+
exports["default"] = void 0;
|
9
|
+
|
10
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
11
|
+
|
12
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
13
|
+
|
14
|
+
var _prompt = require("../prompt");
|
15
|
+
|
16
|
+
var _fromPartial = _interopRequireDefault(require("../from-partial"));
|
17
|
+
|
18
|
+
var _utils = require("../utils");
|
19
|
+
|
20
|
+
var _default = /*#__PURE__*/function () {
|
21
|
+
var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(argv) {
|
22
|
+
var questions, _yield$prompt, schema, out, name, schemas;
|
23
|
+
|
24
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
25
|
+
while (1) {
|
26
|
+
switch (_context.prev = _context.next) {
|
27
|
+
case 0:
|
28
|
+
questions = [{
|
29
|
+
_: true,
|
30
|
+
type: 'path',
|
31
|
+
name: 'schema',
|
32
|
+
message: 'which directory contains the the Rust contracts?',
|
33
|
+
"default": './schema'
|
34
|
+
}, {
|
35
|
+
_: true,
|
36
|
+
type: 'path',
|
37
|
+
name: 'out',
|
38
|
+
message: 'where is the output directory?',
|
39
|
+
"default": './ts'
|
40
|
+
}, {
|
41
|
+
_: true,
|
42
|
+
type: 'string',
|
43
|
+
name: 'name',
|
44
|
+
message: 'contract name?'
|
45
|
+
}];
|
46
|
+
_context.next = 3;
|
47
|
+
return (0, _prompt.prompt)(questions, argv);
|
48
|
+
|
49
|
+
case 3:
|
50
|
+
_yield$prompt = _context.sent;
|
51
|
+
schema = _yield$prompt.schema;
|
52
|
+
out = _yield$prompt.out;
|
53
|
+
name = _yield$prompt.name;
|
54
|
+
schemas = (0, _utils.readSchemas)({
|
55
|
+
schemaDir: schema,
|
56
|
+
argv: argv
|
57
|
+
});
|
58
|
+
_context.next = 10;
|
59
|
+
return (0, _fromPartial["default"])(name, schemas, out);
|
60
|
+
|
61
|
+
case 10:
|
62
|
+
case "end":
|
63
|
+
return _context.stop();
|
64
|
+
}
|
65
|
+
}
|
66
|
+
}, _callee);
|
67
|
+
}));
|
68
|
+
|
69
|
+
return function (_x) {
|
70
|
+
return _ref.apply(this, arguments);
|
71
|
+
};
|
72
|
+
}();
|
73
|
+
|
74
|
+
exports["default"] = _default;
|
@@ -0,0 +1,74 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
6
|
+
value: true
|
7
|
+
});
|
8
|
+
exports["default"] = void 0;
|
9
|
+
|
10
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
11
|
+
|
12
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
13
|
+
|
14
|
+
var _prompt = require("../prompt");
|
15
|
+
|
16
|
+
var _generate = _interopRequireDefault(require("../generate"));
|
17
|
+
|
18
|
+
var _utils = require("../utils");
|
19
|
+
|
20
|
+
var _default = /*#__PURE__*/function () {
|
21
|
+
var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(argv) {
|
22
|
+
var questions, _yield$prompt, schema, out, name, schemas;
|
23
|
+
|
24
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
25
|
+
while (1) {
|
26
|
+
switch (_context.prev = _context.next) {
|
27
|
+
case 0:
|
28
|
+
questions = [{
|
29
|
+
_: true,
|
30
|
+
type: 'path',
|
31
|
+
name: 'schema',
|
32
|
+
message: 'which directory contains the the Rust contracts?',
|
33
|
+
"default": './schema'
|
34
|
+
}, {
|
35
|
+
_: true,
|
36
|
+
type: 'path',
|
37
|
+
name: 'out',
|
38
|
+
message: 'where is the output directory?',
|
39
|
+
"default": './ts'
|
40
|
+
}, {
|
41
|
+
_: true,
|
42
|
+
type: 'string',
|
43
|
+
name: 'name',
|
44
|
+
message: 'contract name?'
|
45
|
+
}];
|
46
|
+
_context.next = 3;
|
47
|
+
return (0, _prompt.prompt)(questions, argv);
|
48
|
+
|
49
|
+
case 3:
|
50
|
+
_yield$prompt = _context.sent;
|
51
|
+
schema = _yield$prompt.schema;
|
52
|
+
out = _yield$prompt.out;
|
53
|
+
name = _yield$prompt.name;
|
54
|
+
schemas = (0, _utils.readSchemas)({
|
55
|
+
schemaDir: schema,
|
56
|
+
argv: argv
|
57
|
+
});
|
58
|
+
_context.next = 10;
|
59
|
+
return (0, _generate["default"])(name, schemas, out);
|
60
|
+
|
61
|
+
case 10:
|
62
|
+
case "end":
|
63
|
+
return _context.stop();
|
64
|
+
}
|
65
|
+
}
|
66
|
+
}, _callee);
|
67
|
+
}));
|
68
|
+
|
69
|
+
return function (_x) {
|
70
|
+
return _ref.apply(this, arguments);
|
71
|
+
};
|
72
|
+
}();
|
73
|
+
|
74
|
+
exports["default"] = _default;
|