@teambit/node 0.0.761 → 0.0.764

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.
Files changed (85) hide show
  1. package/artifacts/env-template/public/875.js +6 -3
  2. package/artifacts/env-template/public/{91.js → 983.js} +2 -2
  3. package/artifacts/env-template/public/assets-manifest.json +11 -11
  4. package/artifacts/env-template/public/{compositions.7c156ebb9205d9994226.js → compositions.58b10202cff55b5dc7bd.js} +1 -1
  5. package/artifacts/env-template/public/compositions.html +1 -1
  6. package/artifacts/env-template/public/{overview.bb1cff31e98bb44b323b.js → overview.1220ac805e0c7de29d03.js} +1 -1
  7. package/artifacts/env-template/public/overview.html +1 -1
  8. package/artifacts/env-template/public/{preview-root.a03eeceb9e4617894d2b.js → preview-root.3321fc8dd0e9ab83be3d.js} +1 -1
  9. package/artifacts/env-template/public/static/css/{875.b96d1dd6.css → 875.f1507f80.css} +1 -1
  10. package/artifacts/preview/teambit_harmony_node-preview.js +2 -2
  11. package/{compositions-1655263660719.js → compositions-1655436530187.js} +0 -0
  12. package/dist/node.application.d.ts +1 -1
  13. package/dist/node.application.js +16 -1
  14. package/dist/node.application.js.map +1 -1
  15. package/dist/node.main.runtime.js +21 -1
  16. package/dist/node.main.runtime.js.map +1 -1
  17. package/dist/templates/express-app/files/app-root.d.ts +5 -0
  18. package/dist/templates/express-app/files/app-root.js +37 -0
  19. package/dist/templates/express-app/files/app-root.js.map +1 -0
  20. package/dist/templates/express-app/files/composition.d.ts +5 -0
  21. package/dist/templates/express-app/files/composition.js +21 -0
  22. package/dist/templates/express-app/files/composition.js.map +1 -0
  23. package/dist/templates/express-app/files/doc.d.ts +5 -0
  24. package/dist/templates/express-app/files/doc.js +36 -0
  25. package/dist/templates/express-app/files/doc.js.map +1 -0
  26. package/dist/templates/express-app/files/get-port.d.ts +4 -0
  27. package/dist/templates/express-app/files/get-port.js +22 -0
  28. package/dist/templates/express-app/files/get-port.js.map +1 -0
  29. package/dist/templates/express-app/files/index.d.ts +6 -0
  30. package/dist/templates/express-app/files/index.js +18 -0
  31. package/dist/templates/express-app/files/index.js.map +1 -0
  32. package/dist/templates/express-app/files/mock-route.d.ts +4 -0
  33. package/dist/templates/express-app/files/mock-route.js +24 -0
  34. package/dist/templates/express-app/files/mock-route.js.map +1 -0
  35. package/dist/templates/express-app/files/node-app.d.ts +5 -0
  36. package/dist/templates/express-app/files/node-app.js +24 -0
  37. package/dist/templates/express-app/files/node-app.js.map +1 -0
  38. package/dist/templates/express-app/files/route.d.ts +4 -0
  39. package/dist/templates/express-app/files/route.js +30 -0
  40. package/dist/templates/express-app/files/route.js.map +1 -0
  41. package/dist/templates/express-app/files/test.d.ts +5 -0
  42. package/dist/templates/express-app/files/test.js +20 -0
  43. package/dist/templates/express-app/files/test.js.map +1 -0
  44. package/dist/templates/express-app/index.d.ts +2 -0
  45. package/dist/templates/express-app/index.js +97 -0
  46. package/dist/templates/express-app/index.js.map +1 -0
  47. package/dist/templates/express-route/files/composition.d.ts +5 -0
  48. package/dist/templates/express-route/files/composition.js +21 -0
  49. package/dist/templates/express-route/files/composition.js.map +1 -0
  50. package/dist/templates/express-route/files/doc.d.ts +5 -0
  51. package/dist/templates/express-route/files/doc.js +25 -0
  52. package/dist/templates/express-route/files/doc.js.map +1 -0
  53. package/dist/templates/express-route/files/index.d.ts +6 -0
  54. package/dist/templates/express-route/files/index.js +17 -0
  55. package/dist/templates/express-route/files/index.js.map +1 -0
  56. package/dist/templates/express-route/files/main.d.ts +5 -0
  57. package/dist/templates/express-route/files/main.js +22 -0
  58. package/dist/templates/express-route/files/main.js.map +1 -0
  59. package/dist/templates/express-route/files/test.d.ts +5 -0
  60. package/dist/templates/express-route/files/test.js +20 -0
  61. package/dist/templates/express-route/files/test.js.map +1 -0
  62. package/dist/templates/express-route/index.d.ts +2 -0
  63. package/dist/templates/express-route/index.js +57 -0
  64. package/dist/templates/express-route/index.js.map +1 -0
  65. package/{overview-1655263660719.js → overview-1655436530187.js} +0 -0
  66. package/package-tar/teambit-node-0.0.764.tgz +0 -0
  67. package/package.json +17 -16
  68. package/{preview-1655263660719.js → preview-1655436530187.js} +2 -2
  69. package/templates/express-app/files/app-root.ts +30 -0
  70. package/templates/express-app/files/composition.ts +14 -0
  71. package/templates/express-app/files/doc.ts +26 -0
  72. package/templates/express-app/files/get-port.ts +13 -0
  73. package/templates/express-app/files/index.ts +11 -0
  74. package/templates/express-app/files/mock-route.ts +15 -0
  75. package/templates/express-app/files/node-app.ts +17 -0
  76. package/templates/express-app/files/route.ts +21 -0
  77. package/templates/express-app/files/test.ts +13 -0
  78. package/templates/express-app/index.ts +34 -0
  79. package/templates/express-route/files/composition.ts +14 -0
  80. package/templates/express-route/files/doc.ts +18 -0
  81. package/templates/express-route/files/index.ts +10 -0
  82. package/templates/express-route/files/main.ts +15 -0
  83. package/templates/express-route/files/test.ts +13 -0
  84. package/templates/express-route/index.ts +26 -0
  85. package/package-tar/teambit-node-0.0.761.tgz +0 -0
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.compositionFile = compositionFile;
7
+
8
+ function compositionFile(context) {
9
+ return {
10
+ relativePath: `${context.name}.composition.tsx`,
11
+ content: `import React from 'react';
12
+ import { ${context.nameCamelCase} } from './${context.name}';
13
+
14
+ export function ReturnsCorrectValue() {
15
+ return <div>{${context.nameCamelCase}()}</div>;
16
+ }
17
+ `
18
+ };
19
+ }
20
+
21
+ //# sourceMappingURL=composition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["compositionFile","context","relativePath","name","content","nameCamelCase"],"sources":["composition.ts"],"sourcesContent":["import { ComponentContext } from '@teambit/generator';\n\nexport function compositionFile(context: ComponentContext) {\n return {\n relativePath: `${context.name}.composition.tsx`,\n content: `import React from 'react';\nimport { ${context.nameCamelCase} } from './${context.name}';\n\nexport function ReturnsCorrectValue() {\n return <div>{${context.nameCamelCase}()}</div>;\n}\n`,\n };\n}\n"],"mappings":";;;;;;;AAEO,SAASA,eAAT,CAAyBC,OAAzB,EAAoD;EACzD,OAAO;IACLC,YAAY,EAAG,GAAED,OAAO,CAACE,IAAK,kBADzB;IAELC,OAAO,EAAG;AACd,WAAWH,OAAO,CAACI,aAAc,cAAaJ,OAAO,CAACE,IAAK;AAC3D;AACA;AACA,iBAAiBF,OAAO,CAACI,aAAc;AACvC;AACA;EARS,CAAP;AAUD"}
@@ -0,0 +1,5 @@
1
+ import { ComponentContext } from '@teambit/generator';
2
+ export declare function docFile(context: ComponentContext): {
3
+ relativePath: string;
4
+ content: string;
5
+ };
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.docFile = docFile;
7
+
8
+ function docFile(context) {
9
+ return {
10
+ relativePath: `${context.name}.docs.mdx`,
11
+ content: `---
12
+ labels: ['express', 'node', 'route']
13
+ description: 'An express route'
14
+ ---
15
+
16
+ API:
17
+
18
+ \`\`\`ts
19
+ function get${context.namePascalCase}Route()
20
+ \`\`\`
21
+ `
22
+ };
23
+ }
24
+
25
+ //# sourceMappingURL=doc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["docFile","context","relativePath","name","content","namePascalCase"],"sources":["doc.ts"],"sourcesContent":["import { ComponentContext } from '@teambit/generator';\n\nexport function docFile(context: ComponentContext) {\n return {\n relativePath: `${context.name}.docs.mdx`,\n content: `---\nlabels: ['express', 'node', 'route']\ndescription: 'An express route'\n---\n\nAPI:\n\n\\`\\`\\`ts\nfunction get${context.namePascalCase}Route()\n\\`\\`\\`\n`,\n };\n}\n"],"mappings":";;;;;;;AAEO,SAASA,OAAT,CAAiBC,OAAjB,EAA4C;EACjD,OAAO;IACLC,YAAY,EAAG,GAAED,OAAO,CAACE,IAAK,WADzB;IAELC,OAAO,EAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAcH,OAAO,CAACI,cAAe;AACrC;AACA;EAZS,CAAP;AAcD"}
@@ -0,0 +1,6 @@
1
+ import { ComponentContext } from '@teambit/generator';
2
+ export declare function indexFile(context: ComponentContext): {
3
+ relativePath: string;
4
+ content: string;
5
+ isMain: boolean;
6
+ };
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.indexFile = indexFile;
7
+
8
+ function indexFile(context) {
9
+ return {
10
+ relativePath: 'index.ts',
11
+ content: `export { get${context.namePascalCase}Route } from './${context.name}';
12
+ `,
13
+ isMain: true
14
+ };
15
+ }
16
+
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["indexFile","context","relativePath","content","namePascalCase","name","isMain"],"sources":["index.ts"],"sourcesContent":["import { ComponentContext } from '@teambit/generator';\n\nexport function indexFile(context: ComponentContext) {\n return {\n relativePath: 'index.ts',\n content: `export { get${context.namePascalCase}Route } from './${context.name}';\n`,\n isMain: true,\n };\n}\n"],"mappings":";;;;;;;AAEO,SAASA,SAAT,CAAmBC,OAAnB,EAA8C;EACnD,OAAO;IACLC,YAAY,EAAE,UADT;IAELC,OAAO,EAAG,eAAcF,OAAO,CAACG,cAAe,mBAAkBH,OAAO,CAACI,IAAK;AAClF,CAHS;IAILC,MAAM,EAAE;EAJH,CAAP;AAMD"}
@@ -0,0 +1,5 @@
1
+ import { ComponentContext } from '@teambit/generator';
2
+ export declare function mainFile(context: ComponentContext): {
3
+ relativePath: string;
4
+ content: string;
5
+ };
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.mainFile = mainFile;
7
+
8
+ function mainFile(context) {
9
+ return {
10
+ relativePath: `${context.name}.ts`,
11
+ content: `export function get${context.namePascalCase}Route() {
12
+ return {
13
+ method: 'get',
14
+ route: '/${context.name}',
15
+ middlewares: [async (req, res) => res.send('${context.name} response')]
16
+ }
17
+ }
18
+ `
19
+ };
20
+ }
21
+
22
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["mainFile","context","relativePath","name","content","namePascalCase"],"sources":["main.ts"],"sourcesContent":["import { ComponentContext } from '@teambit/generator';\n\nexport function mainFile(context: ComponentContext) {\n return {\n relativePath: `${context.name}.ts`,\n content: `export function get${context.namePascalCase}Route() {\n return {\n method: 'get',\n route: '/${context.name}',\n middlewares: [async (req, res) => res.send('${context.name} response')]\n }\n}\n`,\n };\n}\n"],"mappings":";;;;;;;AAEO,SAASA,QAAT,CAAkBC,OAAlB,EAA6C;EAClD,OAAO;IACLC,YAAY,EAAG,GAAED,OAAO,CAACE,IAAK,KADzB;IAELC,OAAO,EAAG,sBAAqBH,OAAO,CAACI,cAAe;AAC1D;AACA;AACA,eAAeJ,OAAO,CAACE,IAAK;AAC5B,kDAAkDF,OAAO,CAACE,IAAK;AAC/D;AACA;AACA;EATS,CAAP;AAWD"}
@@ -0,0 +1,5 @@
1
+ import { ComponentContext } from '@teambit/generator';
2
+ export declare function testFile(context: ComponentContext): {
3
+ relativePath: string;
4
+ content: string;
5
+ };
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.testFile = testFile;
7
+
8
+ function testFile(context) {
9
+ return {
10
+ relativePath: `${context.name}.spec.ts`,
11
+ content: `import { ${context.nameCamelCase} } from './${context.name}';
12
+
13
+ it('should return the correct value', () => {
14
+ expect(${context.nameCamelCase}()).toBe('Hello world!');
15
+ });
16
+ `
17
+ };
18
+ }
19
+
20
+ //# sourceMappingURL=test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["testFile","context","relativePath","name","content","nameCamelCase"],"sources":["test.ts"],"sourcesContent":["import { ComponentContext } from '@teambit/generator';\n\nexport function testFile(context: ComponentContext) {\n return {\n relativePath: `${context.name}.spec.ts`,\n content: `import { ${context.nameCamelCase} } from './${context.name}';\n\nit('should return the correct value', () => {\n expect(${context.nameCamelCase}()).toBe('Hello world!');\n});\n`,\n };\n}\n"],"mappings":";;;;;;;AAEO,SAASA,QAAT,CAAkBC,OAAlB,EAA6C;EAClD,OAAO;IACLC,YAAY,EAAG,GAAED,OAAO,CAACE,IAAK,UADzB;IAELC,OAAO,EAAG,YAAWH,OAAO,CAACI,aAAc,cAAaJ,OAAO,CAACE,IAAK;AACzE;AACA;AACA,WAAWF,OAAO,CAACI,aAAc;AACjC;AACA;EAPS,CAAP;AASD"}
@@ -0,0 +1,2 @@
1
+ import { ComponentTemplate } from '@teambit/generator';
2
+ export declare const expressRouteTemplate: ComponentTemplate;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.expressRouteTemplate = void 0;
7
+
8
+ function _index() {
9
+ const data = require("./files/index");
10
+
11
+ _index = function () {
12
+ return data;
13
+ };
14
+
15
+ return data;
16
+ }
17
+
18
+ function _doc() {
19
+ const data = require("./files/doc");
20
+
21
+ _doc = function () {
22
+ return data;
23
+ };
24
+
25
+ return data;
26
+ }
27
+
28
+ function _main() {
29
+ const data = require("./files/main");
30
+
31
+ _main = function () {
32
+ return data;
33
+ };
34
+
35
+ return data;
36
+ }
37
+
38
+ // import { testFile } from './files/test';
39
+ // import { compositionFile } from './files/composition';
40
+ const expressRouteTemplate = {
41
+ name: 'express-route',
42
+ description: 'an express route',
43
+ generateFiles: context => {
44
+ return [(0, _index().indexFile)(context), (0, _doc().docFile)(context), (0, _main().mainFile)(context) // compositionFile(context),
45
+ // testFile(context)
46
+ ];
47
+ },
48
+ config: {
49
+ 'teambit.harmony/node': {},
50
+ 'teambit.envs/envs': {
51
+ env: 'teambit.harmony/node'
52
+ }
53
+ }
54
+ };
55
+ exports.expressRouteTemplate = expressRouteTemplate;
56
+
57
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["expressRouteTemplate","name","description","generateFiles","context","indexFile","docFile","mainFile","config","env"],"sources":["index.ts"],"sourcesContent":["import { ComponentContext, ComponentTemplate } from '@teambit/generator';\nimport { indexFile } from './files/index';\nimport { docFile } from './files/doc';\nimport { mainFile } from './files/main';\n// import { testFile } from './files/test';\n// import { compositionFile } from './files/composition';\n\nexport const expressRouteTemplate: ComponentTemplate = {\n name: 'express-route',\n description: 'an express route',\n generateFiles: (context: ComponentContext) => {\n return [\n indexFile(context),\n docFile(context),\n mainFile(context),\n // compositionFile(context),\n // testFile(context)\n ];\n },\n config: {\n 'teambit.harmony/node': {},\n 'teambit.envs/envs': {\n env: 'teambit.harmony/node',\n },\n },\n};\n"],"mappings":";;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;AACA;AAEO,MAAMA,oBAAuC,GAAG;EACrDC,IAAI,EAAE,eAD+C;EAErDC,WAAW,EAAE,kBAFwC;EAGrDC,aAAa,EAAGC,OAAD,IAA+B;IAC5C,OAAO,CACL,IAAAC,kBAAA,EAAUD,OAAV,CADK,EAEL,IAAAE,cAAA,EAAQF,OAAR,CAFK,EAGL,IAAAG,gBAAA,EAASH,OAAT,CAHK,CAIL;IACA;IALK,CAAP;EAOD,CAXoD;EAYrDI,MAAM,EAAE;IACN,wBAAwB,EADlB;IAEN,qBAAqB;MACnBC,GAAG,EAAE;IADc;EAFf;AAZ6C,CAAhD"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/node",
3
- "version": "0.0.761",
3
+ "version": "0.0.764",
4
4
  "homepage": "https://bit.dev/teambit/harmony/node",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.harmony",
8
8
  "name": "node",
9
- "version": "0.0.761"
9
+ "version": "0.0.764"
10
10
  },
11
11
  "dependencies": {
12
12
  "lodash": "4.17.21",
@@ -15,21 +15,22 @@
15
15
  "@babel/runtime": "7.12.18",
16
16
  "core-js": "^3.0.0",
17
17
  "@teambit/harmony": "0.3.3",
18
- "@teambit/application": "0.0.403",
19
- "@teambit/logger": "0.0.596",
20
- "@teambit/react": "0.0.761",
21
- "@teambit/builder": "0.0.761",
22
- "@teambit/dependency-resolver": "0.0.761",
23
- "@teambit/envs": "0.0.761",
24
- "@teambit/tester": "0.0.761",
25
- "@teambit/typescript": "0.0.761",
26
- "@teambit/cli": "0.0.503",
27
- "@teambit/compiler": "0.0.761",
28
- "@teambit/generator": "0.0.761",
29
- "@teambit/pkg": "0.0.761",
30
- "@teambit/compositions": "0.0.761",
18
+ "@teambit/application": "0.0.406",
19
+ "@teambit/logger": "0.0.598",
20
+ "@teambit/react": "0.0.764",
21
+ "@teambit/toolbox.network.get-port": "0.0.113",
22
+ "@teambit/builder": "0.0.764",
23
+ "@teambit/dependency-resolver": "0.0.764",
24
+ "@teambit/envs": "0.0.764",
25
+ "@teambit/tester": "0.0.764",
26
+ "@teambit/typescript": "0.0.764",
27
+ "@teambit/cli": "0.0.505",
28
+ "@teambit/compiler": "0.0.764",
29
+ "@teambit/generator": "0.0.764",
30
+ "@teambit/pkg": "0.0.764",
31
+ "@teambit/compositions": "0.0.764",
31
32
  "@teambit/design.ui.empty-box": "0.0.353",
32
- "@teambit/ui": "0.0.761"
33
+ "@teambit/ui": "0.0.764"
33
34
  },
34
35
  "devDependencies": {
35
36
  "@types/react": "^17.0.8",
@@ -1,2 +1,2 @@
1
- export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_node@0.0.761/dist/node.composition.js')]
2
- export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_node@0.0.761/dist/node.docs.mdx')]
1
+ export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_node@0.0.764/dist/node.composition.js')]
2
+ export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_node@0.0.764/dist/node.docs.mdx')]
@@ -0,0 +1,30 @@
1
+ import { ComponentContext } from '@teambit/generator';
2
+
3
+ export function appRoot(context: ComponentContext) {
4
+ return {
5
+ relativePath: `${context.name}.app-root.ts`,
6
+ content: `import Application from 'express';
7
+ import {getPort} from './get-port';
8
+ import {getMockRoute} from './mock-route';
9
+
10
+ export const expressApp = async () => {
11
+ const app = Application();
12
+ const port = await getPort();
13
+ registerRoutes(app);
14
+ app.listen(port, () => {
15
+ console.log(\`${context.name} app listening on port \${port}\`);
16
+ });
17
+ };
18
+
19
+ function registerRoutes(app: Application.Application) {
20
+ const mockRoute = getMockRoute();
21
+ const routes = [mockRoute];
22
+ routes.forEach(route => {
23
+ app[route.method](route.route, route.middlewares);
24
+ })
25
+ }
26
+
27
+ expressApp();
28
+ `,
29
+ };
30
+ }
@@ -0,0 +1,14 @@
1
+ import { ComponentContext } from '@teambit/generator';
2
+
3
+ export function compositionFile(context: ComponentContext) {
4
+ return {
5
+ relativePath: `${context.name}.composition.tsx`,
6
+ content: `import React from 'react';
7
+ import { ${context.nameCamelCase} } from './${context.name}';
8
+
9
+ export function ReturnsCorrectValue() {
10
+ return <div>{${context.nameCamelCase}()}</div>;
11
+ }
12
+ `,
13
+ };
14
+ }
@@ -0,0 +1,26 @@
1
+ import { ComponentContext } from '@teambit/generator';
2
+
3
+ export function docFile({ name, componentId }: ComponentContext) {
4
+ return {
5
+ relativePath: `${name}.docs.mdx`,
6
+ content: `---
7
+ labels: ['express', 'node', 'service', 'app']
8
+ description: 'A general purpose bit express application'
9
+ ---
10
+
11
+ Configure the app plugin on your workspace:
12
+
13
+ \`\`\`json
14
+ "${componentId.toString()}": {},
15
+ \`\`\`
16
+
17
+ ### Run the application
18
+
19
+ You can run your application on a separate port to see it outside of the Bit workspace
20
+
21
+ \`\`\`bash
22
+ bit run ${name}
23
+ \`\`\`
24
+ `,
25
+ };
26
+ }
@@ -0,0 +1,13 @@
1
+ export function getPort() {
2
+ return {
3
+ relativePath: `get-port.ts`,
4
+ content: `export async function getPort() {
5
+ if (process.env.PORT){
6
+ return process.env.PORT;
7
+ }
8
+ const myArgs = process.argv.slice(2);
9
+ return myArgs[0] || 3000;
10
+ }
11
+ `,
12
+ };
13
+ }
@@ -0,0 +1,11 @@
1
+ import { ComponentContext } from '@teambit/generator';
2
+
3
+ export function indexFile(context: ComponentContext) {
4
+ return {
5
+ relativePath: 'index.ts',
6
+ content: `export { expressApp } from './${context.name}.app-root';
7
+ export type { Route } from './route';
8
+ `,
9
+ isMain: true,
10
+ };
11
+ }
@@ -0,0 +1,15 @@
1
+ export function mockRoute() {
2
+ return {
3
+ relativePath: `mock-route.ts`,
4
+ content: `import type { Route } from './route';
5
+
6
+ export function getMockRoute(): Route {
7
+ return {
8
+ method: 'get',
9
+ route: '/',
10
+ middlewares: [async (req, res) => res.send('hello world')]
11
+ }
12
+ }
13
+ `,
14
+ };
15
+ }
@@ -0,0 +1,17 @@
1
+ import { ComponentContext } from '@teambit/generator';
2
+
3
+ export function nodeApp(context: ComponentContext) {
4
+ return {
5
+ relativePath: `${context.name}.node-app.ts`,
6
+ content: `import { NodeAppOptions } from '@teambit/node';
7
+
8
+ export const ${context.nameCamelCase}: NodeAppOptions = {
9
+ name: '${context.name}',
10
+ entry: require.resolve('./${context.name}.app-root'),
11
+ portRange: [3000, 4000]
12
+ };
13
+
14
+ export default ${context.nameCamelCase};
15
+ `,
16
+ };
17
+ }
@@ -0,0 +1,21 @@
1
+ export function route() {
2
+ return {
3
+ relativePath: `route.ts`,
4
+ content: `import express, { Request, Response } from 'express';
5
+
6
+ /**
7
+ * define express Middleware
8
+ */
9
+ export type Middleware = (req: Request, res: Response, next: express.NextFunction) => Promise<any>;
10
+
11
+ /**
12
+ * express new Route
13
+ */
14
+ export interface Route {
15
+ method: string;
16
+ route: string | RegExp;
17
+ middlewares: Middleware[];
18
+ }
19
+ `,
20
+ };
21
+ }
@@ -0,0 +1,13 @@
1
+ import { ComponentContext } from '@teambit/generator';
2
+
3
+ export function testFile(context: ComponentContext) {
4
+ return {
5
+ relativePath: `${context.name}.spec.ts`,
6
+ content: `import { ${context.nameCamelCase} } from './${context.name}';
7
+
8
+ it('should return the correct value', () => {
9
+ expect(${context.nameCamelCase}()).toBe('Hello world!');
10
+ });
11
+ `,
12
+ };
13
+ }
@@ -0,0 +1,34 @@
1
+ import { ComponentContext, ComponentTemplate } from '@teambit/generator';
2
+ import { indexFile } from './files/index';
3
+ import { docFile } from './files/doc';
4
+ import { appRoot } from './files/app-root';
5
+ import { nodeApp } from './files/node-app';
6
+ import { getPort } from './files/get-port';
7
+ import { mockRoute } from './files/mock-route';
8
+ import { route } from './files/route';
9
+ // import { testFile } from './files/test';
10
+ // import { compositionFile } from './files/composition';
11
+
12
+ export const expressAppTemplate: ComponentTemplate = {
13
+ name: 'express-app',
14
+ description: 'a bit express application',
15
+ generateFiles: (context: ComponentContext) => {
16
+ return [
17
+ indexFile(context),
18
+ docFile(context),
19
+ appRoot(context),
20
+ nodeApp(context),
21
+ getPort(),
22
+ mockRoute(),
23
+ route(),
24
+ // compositionFile(context),
25
+ // testFile(context),
26
+ ];
27
+ },
28
+ config: {
29
+ 'teambit.harmony/aspect': {},
30
+ 'teambit.envs/envs': {
31
+ env: 'teambit.harmony/aspect',
32
+ },
33
+ },
34
+ };
@@ -0,0 +1,14 @@
1
+ import { ComponentContext } from '@teambit/generator';
2
+
3
+ export function compositionFile(context: ComponentContext) {
4
+ return {
5
+ relativePath: `${context.name}.composition.tsx`,
6
+ content: `import React from 'react';
7
+ import { ${context.nameCamelCase} } from './${context.name}';
8
+
9
+ export function ReturnsCorrectValue() {
10
+ return <div>{${context.nameCamelCase}()}</div>;
11
+ }
12
+ `,
13
+ };
14
+ }
@@ -0,0 +1,18 @@
1
+ import { ComponentContext } from '@teambit/generator';
2
+
3
+ export function docFile(context: ComponentContext) {
4
+ return {
5
+ relativePath: `${context.name}.docs.mdx`,
6
+ content: `---
7
+ labels: ['express', 'node', 'route']
8
+ description: 'An express route'
9
+ ---
10
+
11
+ API:
12
+
13
+ \`\`\`ts
14
+ function get${context.namePascalCase}Route()
15
+ \`\`\`
16
+ `,
17
+ };
18
+ }
@@ -0,0 +1,10 @@
1
+ import { ComponentContext } from '@teambit/generator';
2
+
3
+ export function indexFile(context: ComponentContext) {
4
+ return {
5
+ relativePath: 'index.ts',
6
+ content: `export { get${context.namePascalCase}Route } from './${context.name}';
7
+ `,
8
+ isMain: true,
9
+ };
10
+ }
@@ -0,0 +1,15 @@
1
+ import { ComponentContext } from '@teambit/generator';
2
+
3
+ export function mainFile(context: ComponentContext) {
4
+ return {
5
+ relativePath: `${context.name}.ts`,
6
+ content: `export function get${context.namePascalCase}Route() {
7
+ return {
8
+ method: 'get',
9
+ route: '/${context.name}',
10
+ middlewares: [async (req, res) => res.send('${context.name} response')]
11
+ }
12
+ }
13
+ `,
14
+ };
15
+ }
@@ -0,0 +1,13 @@
1
+ import { ComponentContext } from '@teambit/generator';
2
+
3
+ export function testFile(context: ComponentContext) {
4
+ return {
5
+ relativePath: `${context.name}.spec.ts`,
6
+ content: `import { ${context.nameCamelCase} } from './${context.name}';
7
+
8
+ it('should return the correct value', () => {
9
+ expect(${context.nameCamelCase}()).toBe('Hello world!');
10
+ });
11
+ `,
12
+ };
13
+ }
@@ -0,0 +1,26 @@
1
+ import { ComponentContext, ComponentTemplate } from '@teambit/generator';
2
+ import { indexFile } from './files/index';
3
+ import { docFile } from './files/doc';
4
+ import { mainFile } from './files/main';
5
+ // import { testFile } from './files/test';
6
+ // import { compositionFile } from './files/composition';
7
+
8
+ export const expressRouteTemplate: ComponentTemplate = {
9
+ name: 'express-route',
10
+ description: 'an express route',
11
+ generateFiles: (context: ComponentContext) => {
12
+ return [
13
+ indexFile(context),
14
+ docFile(context),
15
+ mainFile(context),
16
+ // compositionFile(context),
17
+ // testFile(context)
18
+ ];
19
+ },
20
+ config: {
21
+ 'teambit.harmony/node': {},
22
+ 'teambit.envs/envs': {
23
+ env: 'teambit.harmony/node',
24
+ },
25
+ },
26
+ };