@teambit/schema 0.0.742 → 0.0.743
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/mock/button-schemas.json +4 -0
- package/dist/schema.cmd.d.ts +3 -1
- package/dist/schema.cmd.js +9 -2
- package/dist/schema.cmd.js.map +1 -1
- package/dist/schema.main.runtime.d.ts +4 -2
- package/dist/schema.main.runtime.js +18 -5
- package/dist/schema.main.runtime.js.map +1 -1
- package/dist/schema.spec.js +21 -5
- package/dist/schema.spec.js.map +1 -1
- package/mock/button-schemas.json +4 -0
- package/package-tar/teambit-schema-0.0.743.tgz +0 -0
- package/package.json +13 -11
- package/{preview-1653535588073.js → preview-1653708349111.js} +2 -2
- package/package-tar/teambit-schema-0.0.742.tgz +0 -0
package/dist/schema.cmd.d.ts
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import { Command, CommandOptions } from '@teambit/cli';
|
|
2
2
|
import { ComponentMain } from '@teambit/component';
|
|
3
|
+
import { Logger } from '@teambit/logger';
|
|
3
4
|
import type { SchemaMain } from './schema.main.runtime';
|
|
4
5
|
export declare class SchemaCommand implements Command {
|
|
5
6
|
private schema;
|
|
6
7
|
private component;
|
|
8
|
+
private logger;
|
|
7
9
|
name: string;
|
|
8
10
|
description: string;
|
|
9
11
|
extendedDescription: string;
|
|
10
12
|
group: string;
|
|
11
13
|
options: CommandOptions;
|
|
12
|
-
constructor(schema: SchemaMain, component: ComponentMain);
|
|
14
|
+
constructor(schema: SchemaMain, component: ComponentMain, logger: Logger);
|
|
13
15
|
report([pattern]: [any]): Promise<string>;
|
|
14
16
|
json([pattern]: [any]): Promise<Record<string, any>[]>;
|
|
15
17
|
private getSchemas;
|
package/dist/schema.cmd.js
CHANGED
|
@@ -42,9 +42,10 @@ function _constants() {
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
class SchemaCommand {
|
|
45
|
-
constructor(schema, component) {
|
|
45
|
+
constructor(schema, component, logger) {
|
|
46
46
|
this.schema = schema;
|
|
47
47
|
this.component = component;
|
|
48
|
+
this.logger = logger;
|
|
48
49
|
(0, _defineProperty2().default)(this, "name", 'schema <pattern>');
|
|
49
50
|
(0, _defineProperty2().default)(this, "description", 'shows the API schema of a certain component.');
|
|
50
51
|
(0, _defineProperty2().default)(this, "extendedDescription", `${(0, _constants().PATTERN_HELP)('schema')}`);
|
|
@@ -66,7 +67,13 @@ class SchemaCommand {
|
|
|
66
67
|
const host = this.component.getHost();
|
|
67
68
|
const ids = await host.idsByPattern(pattern, true);
|
|
68
69
|
const components = await host.getMany(ids);
|
|
69
|
-
|
|
70
|
+
const longRunningLog = this.logger.createLongProcessLogger('generating schema', ids.length);
|
|
71
|
+
const results = await (0, _pMapSeries().default)(components, component => {
|
|
72
|
+
longRunningLog.logProgress(component.id.toString());
|
|
73
|
+
return this.schema.getSchema(component);
|
|
74
|
+
});
|
|
75
|
+
longRunningLog.end();
|
|
76
|
+
return results;
|
|
70
77
|
}
|
|
71
78
|
|
|
72
79
|
}
|
package/dist/schema.cmd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SchemaCommand","constructor","schema","component","PATTERN_HELP","report","pattern","schemas","getSchemas","map","toStringPerType","join","json","toObject","host","getHost","ids","idsByPattern","components","getMany","pMapSeries","getSchema"],"sources":["schema.cmd.ts"],"sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport { ComponentMain } from '@teambit/component';\nimport pMapSeries from 'p-map-series';\nimport { APISchema } from '@teambit/semantics.entities.semantic-schema';\nimport { PATTERN_HELP } from '@teambit/legacy/dist/constants';\nimport type { SchemaMain } from './schema.main.runtime';\n\nexport class SchemaCommand implements Command {\n name = 'schema <pattern>';\n description = 'shows the API schema of a certain component.';\n extendedDescription = `${PATTERN_HELP('schema')}`;\n group = 'component';\n options = [['j', 'json', 'return the component data in json format']] as CommandOptions;\n\n constructor(private schema: SchemaMain, private component: ComponentMain) {}\n\n async report([pattern]) {\n const schemas = await this.getSchemas([pattern]);\n return schemas.map((schema) => schema.toStringPerType()).join('\\n\\n\\n');\n }\n\n async json([pattern]) {\n const schemas = await this.getSchemas([pattern]);\n return schemas.map((schema) => schema.toObject());\n }\n\n private async getSchemas([pattern]): Promise<APISchema[]> {\n const host = this.component.getHost();\n const ids = await host.idsByPattern(pattern, true);\n const components = await host.getMany(ids);\n
|
|
1
|
+
{"version":3,"names":["SchemaCommand","constructor","schema","component","logger","PATTERN_HELP","report","pattern","schemas","getSchemas","map","toStringPerType","join","json","toObject","host","getHost","ids","idsByPattern","components","getMany","longRunningLog","createLongProcessLogger","length","results","pMapSeries","logProgress","id","toString","getSchema","end"],"sources":["schema.cmd.ts"],"sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport { ComponentMain } from '@teambit/component';\nimport pMapSeries from 'p-map-series';\nimport { Logger } from '@teambit/logger';\nimport { APISchema } from '@teambit/semantics.entities.semantic-schema';\nimport { PATTERN_HELP } from '@teambit/legacy/dist/constants';\nimport type { SchemaMain } from './schema.main.runtime';\n\nexport class SchemaCommand implements Command {\n name = 'schema <pattern>';\n description = 'shows the API schema of a certain component.';\n extendedDescription = `${PATTERN_HELP('schema')}`;\n group = 'component';\n options = [['j', 'json', 'return the component data in json format']] as CommandOptions;\n\n constructor(private schema: SchemaMain, private component: ComponentMain, private logger: Logger) {}\n\n async report([pattern]) {\n const schemas = await this.getSchemas([pattern]);\n return schemas.map((schema) => schema.toStringPerType()).join('\\n\\n\\n');\n }\n\n async json([pattern]) {\n const schemas = await this.getSchemas([pattern]);\n return schemas.map((schema) => schema.toObject());\n }\n\n private async getSchemas([pattern]): Promise<APISchema[]> {\n const host = this.component.getHost();\n const ids = await host.idsByPattern(pattern, true);\n const components = await host.getMany(ids);\n const longRunningLog = this.logger.createLongProcessLogger('generating schema', ids.length);\n const results = await pMapSeries(components, (component) => {\n longRunningLog.logProgress(component.id.toString());\n return this.schema.getSchema(component);\n });\n longRunningLog.end();\n return results;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGO,MAAMA,aAAN,CAAuC;EAO5CC,WAAW,CAASC,MAAT,EAAqCC,SAArC,EAAuEC,MAAvE,EAAuF;IAAA,KAA9EF,MAA8E,GAA9EA,MAA8E;IAAA,KAAlDC,SAAkD,GAAlDA,SAAkD;IAAA,KAAhBC,MAAgB,GAAhBA,MAAgB;IAAA,8CAN3F,kBAM2F;IAAA,qDALpF,8CAKoF;IAAA,6DAJ3E,GAAE,IAAAC,yBAAA,EAAa,QAAb,CAAuB,EAIkD;IAAA,+CAH1F,WAG0F;IAAA,iDAFxF,CAAC,CAAC,GAAD,EAAM,MAAN,EAAc,0CAAd,CAAD,CAEwF;EAAE;;EAExF,MAANC,MAAM,CAAC,CAACC,OAAD,CAAD,EAAY;IACtB,MAAMC,OAAO,GAAG,MAAM,KAAKC,UAAL,CAAgB,CAACF,OAAD,CAAhB,CAAtB;IACA,OAAOC,OAAO,CAACE,GAAR,CAAaR,MAAD,IAAYA,MAAM,CAACS,eAAP,EAAxB,EAAkDC,IAAlD,CAAuD,QAAvD,CAAP;EACD;;EAES,MAAJC,IAAI,CAAC,CAACN,OAAD,CAAD,EAAY;IACpB,MAAMC,OAAO,GAAG,MAAM,KAAKC,UAAL,CAAgB,CAACF,OAAD,CAAhB,CAAtB;IACA,OAAOC,OAAO,CAACE,GAAR,CAAaR,MAAD,IAAYA,MAAM,CAACY,QAAP,EAAxB,CAAP;EACD;;EAEuB,MAAVL,UAAU,CAAC,CAACF,OAAD,CAAD,EAAkC;IACxD,MAAMQ,IAAI,GAAG,KAAKZ,SAAL,CAAea,OAAf,EAAb;IACA,MAAMC,GAAG,GAAG,MAAMF,IAAI,CAACG,YAAL,CAAkBX,OAAlB,EAA2B,IAA3B,CAAlB;IACA,MAAMY,UAAU,GAAG,MAAMJ,IAAI,CAACK,OAAL,CAAaH,GAAb,CAAzB;IACA,MAAMI,cAAc,GAAG,KAAKjB,MAAL,CAAYkB,uBAAZ,CAAoC,mBAApC,EAAyDL,GAAG,CAACM,MAA7D,CAAvB;IACA,MAAMC,OAAO,GAAG,MAAM,IAAAC,qBAAA,EAAWN,UAAX,EAAwBhB,SAAD,IAAe;MAC1DkB,cAAc,CAACK,WAAf,CAA2BvB,SAAS,CAACwB,EAAV,CAAaC,QAAb,EAA3B;MACA,OAAO,KAAK1B,MAAL,CAAY2B,SAAZ,CAAsB1B,SAAtB,CAAP;IACD,CAHqB,CAAtB;IAIAkB,cAAc,CAACS,GAAf;IACA,OAAON,OAAP;EACD;;AA9B2C"}
|
|
@@ -3,6 +3,7 @@ import { Component, ComponentMain } from '@teambit/component';
|
|
|
3
3
|
import { SlotRegistry } from '@teambit/harmony';
|
|
4
4
|
import { GraphqlMain } from '@teambit/graphql';
|
|
5
5
|
import { EnvsMain } from '@teambit/envs';
|
|
6
|
+
import { Logger, LoggerMain } from '@teambit/logger';
|
|
6
7
|
import { APISchema, Export } from '@teambit/semantics.entities.semantic-schema';
|
|
7
8
|
import { Parser } from './parser';
|
|
8
9
|
import { SchemaExtractor } from './schema-extractor';
|
|
@@ -23,11 +24,12 @@ export declare class SchemaMain {
|
|
|
23
24
|
private parserSlot;
|
|
24
25
|
private envs;
|
|
25
26
|
private config;
|
|
27
|
+
private logger;
|
|
26
28
|
constructor(
|
|
27
29
|
/**
|
|
28
30
|
* parsers slot.
|
|
29
31
|
*/
|
|
30
|
-
parserSlot: ParserSlot, envs: EnvsMain, config: SchemaConfig);
|
|
32
|
+
parserSlot: ParserSlot, envs: EnvsMain, config: SchemaConfig, logger: Logger);
|
|
31
33
|
/**
|
|
32
34
|
* get the default parser.
|
|
33
35
|
*/
|
|
@@ -53,6 +55,6 @@ export declare class SchemaMain {
|
|
|
53
55
|
static defaultConfig: {
|
|
54
56
|
defaultParser: string;
|
|
55
57
|
};
|
|
56
|
-
static provider([envs, cli, component, graphql]: [EnvsMain, CLIMain, ComponentMain, GraphqlMain], config: SchemaConfig, [parserSlot]: [ParserSlot]): Promise<SchemaMain>;
|
|
58
|
+
static provider([envs, cli, component, graphql, loggerMain]: [EnvsMain, CLIMain, ComponentMain, GraphqlMain, LoggerMain], config: SchemaConfig, [parserSlot]: [ParserSlot]): Promise<SchemaMain>;
|
|
57
59
|
}
|
|
58
60
|
export default SchemaMain;
|
|
@@ -73,6 +73,16 @@ function _envs() {
|
|
|
73
73
|
return data;
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
+
function _logger() {
|
|
77
|
+
const data = require("@teambit/logger");
|
|
78
|
+
|
|
79
|
+
_logger = function () {
|
|
80
|
+
return data;
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
return data;
|
|
84
|
+
}
|
|
85
|
+
|
|
76
86
|
function _semanticsEntities() {
|
|
77
87
|
const data = require("@teambit/semantics.entities.semantic-schema");
|
|
78
88
|
|
|
@@ -121,10 +131,11 @@ class SchemaMain {
|
|
|
121
131
|
/**
|
|
122
132
|
* parsers slot.
|
|
123
133
|
*/
|
|
124
|
-
parserSlot, envs, config) {
|
|
134
|
+
parserSlot, envs, config, logger) {
|
|
125
135
|
this.parserSlot = parserSlot;
|
|
126
136
|
this.envs = envs;
|
|
127
137
|
this.config = config;
|
|
138
|
+
this.logger = logger;
|
|
128
139
|
}
|
|
129
140
|
/**
|
|
130
141
|
* get the default parser.
|
|
@@ -170,6 +181,7 @@ class SchemaMain {
|
|
|
170
181
|
|
|
171
182
|
|
|
172
183
|
async getSchema(component) {
|
|
184
|
+
this.logger.debug(`getSchema of ${component.id.toString()}`);
|
|
173
185
|
const env = this.envs.getEnv(component).env;
|
|
174
186
|
|
|
175
187
|
if (typeof env.getSchemaExtractor === 'undefined') {
|
|
@@ -193,9 +205,10 @@ class SchemaMain {
|
|
|
193
205
|
return this;
|
|
194
206
|
}
|
|
195
207
|
|
|
196
|
-
static async provider([envs, cli, component, graphql], config, [parserSlot]) {
|
|
197
|
-
const
|
|
198
|
-
|
|
208
|
+
static async provider([envs, cli, component, graphql, loggerMain], config, [parserSlot]) {
|
|
209
|
+
const logger = loggerMain.createLogger(_schema().SchemaAspect.id);
|
|
210
|
+
const schema = new SchemaMain(parserSlot, envs, config, logger);
|
|
211
|
+
cli.register(new (_schema2().SchemaCommand)(schema, component, logger));
|
|
199
212
|
graphql.register((0, _schema3().schemaSchema)(schema)); // workspace.onComponentLoad(async (component) => {
|
|
200
213
|
// const apiSchema = await schema.getSchema(component);
|
|
201
214
|
// return {};
|
|
@@ -208,7 +221,7 @@ class SchemaMain {
|
|
|
208
221
|
|
|
209
222
|
exports.SchemaMain = SchemaMain;
|
|
210
223
|
(0, _defineProperty2().default)(SchemaMain, "runtime", _cli().MainRuntime);
|
|
211
|
-
(0, _defineProperty2().default)(SchemaMain, "dependencies", [_envs().EnvsAspect, _cli().CLIAspect, _component().default, _graphql().default]);
|
|
224
|
+
(0, _defineProperty2().default)(SchemaMain, "dependencies", [_envs().EnvsAspect, _cli().CLIAspect, _component().default, _graphql().default, _logger().LoggerAspect]);
|
|
212
225
|
(0, _defineProperty2().default)(SchemaMain, "slots", [_harmony().Slot.withType()]);
|
|
213
226
|
(0, _defineProperty2().default)(SchemaMain, "defaultConfig", {
|
|
214
227
|
defaultParser: 'teambit.typescript/typescript'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SchemaMain","constructor","parserSlot","envs","config","getDefaultParser","get","defaultParser","parseModule","path","parsers","toArray","maybeParser","find","parser","match","extension","getSchemaExtractor","component","env","getEnv","Error","name","getSchema","schemaExtractor","extract","getSchemaFromObject","obj","APISchema","fromObject","registerParser","register","provider","cli","graphql","schema","SchemaCommand","schemaSchema","MainRuntime","EnvsAspect","CLIAspect","ComponentAspect","GraphqlAspect","
|
|
1
|
+
{"version":3,"names":["SchemaMain","constructor","parserSlot","envs","config","logger","getDefaultParser","get","defaultParser","parseModule","path","parsers","toArray","maybeParser","find","parser","match","extension","getSchemaExtractor","component","env","getEnv","Error","name","getSchema","debug","id","toString","schemaExtractor","extract","getSchemaFromObject","obj","APISchema","fromObject","registerParser","register","provider","cli","graphql","loggerMain","createLogger","SchemaAspect","schema","SchemaCommand","schemaSchema","MainRuntime","EnvsAspect","CLIAspect","ComponentAspect","GraphqlAspect","LoggerAspect","Slot","withType","addRuntime"],"sources":["schema.main.runtime.ts"],"sourcesContent":["import { MainRuntime, CLIMain, CLIAspect } from '@teambit/cli';\nimport ComponentAspect, { Component, ComponentMain } from '@teambit/component';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport GraphqlAspect, { GraphqlMain } from '@teambit/graphql';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { APISchema, Export } from '@teambit/semantics.entities.semantic-schema';\nimport { Parser } from './parser';\nimport { SchemaAspect } from './schema.aspect';\nimport { SchemaExtractor } from './schema-extractor';\nimport { SchemaCommand } from './schema.cmd';\nimport { schemaSchema } from './schema.graphql';\n\nexport type ParserSlot = SlotRegistry<Parser>;\n\nexport type SchemaConfig = {\n /**\n * default parser\n */\n defaultParser: string;\n};\n\n/**\n * extension for extracting component schemas.\n */\nexport class SchemaMain {\n constructor(\n /**\n * parsers slot.\n */\n private parserSlot: ParserSlot,\n\n private envs: EnvsMain,\n\n private config: SchemaConfig,\n\n private logger: Logger\n ) {}\n\n /**\n * get the default parser.\n */\n getDefaultParser(): Parser {\n return this.parserSlot.get(this.config.defaultParser) as Parser;\n }\n\n /**\n * parse a module into a component schema.\n */\n parseModule(path: string): Export[] {\n const parsers = this.parserSlot.toArray();\n let maybeParser = parsers.find(([, parser]) => {\n const match = path.match(parser.extension);\n return match;\n });\n\n if (!maybeParser) {\n maybeParser = [this.config.defaultParser, this.getDefaultParser()];\n }\n\n const [, parser] = maybeParser;\n return parser.parseModule(path);\n }\n\n getSchemaExtractor(component: Component) {\n const env = this.envs.getEnv(component).env;\n if (typeof env.getSchemaExtractor === 'undefined') {\n throw new Error(`No SchemaExtractor defined for ${env.name}`);\n }\n\n return env.getSchemaExtractor();\n }\n\n /**\n * get a schema of a component.\n * @param component target component.\n */\n async getSchema(component: Component): Promise<APISchema> {\n this.logger.debug(`getSchema of ${component.id.toString()}`);\n const env = this.envs.getEnv(component).env;\n if (typeof env.getSchemaExtractor === 'undefined') {\n throw new Error(`No SchemaExtractor defined for ${env.name}`);\n }\n const schemaExtractor: SchemaExtractor = env.getSchemaExtractor();\n return schemaExtractor.extract(component);\n }\n\n getSchemaFromObject(obj: Record<string, any>): APISchema {\n return APISchema.fromObject(obj);\n }\n\n /**\n * register a new parser.\n */\n registerParser(parser: Parser): SchemaMain {\n this.parserSlot.register(parser);\n return this;\n }\n\n static runtime = MainRuntime;\n static dependencies = [EnvsAspect, CLIAspect, ComponentAspect, GraphqlAspect, LoggerAspect];\n static slots = [Slot.withType<Parser>()];\n\n static defaultConfig = {\n defaultParser: 'teambit.typescript/typescript',\n };\n\n static async provider(\n [envs, cli, component, graphql, loggerMain]: [EnvsMain, CLIMain, ComponentMain, GraphqlMain, LoggerMain],\n config: SchemaConfig,\n [parserSlot]: [ParserSlot]\n ) {\n const logger = loggerMain.createLogger(SchemaAspect.id);\n const schema = new SchemaMain(parserSlot, envs, config, logger);\n cli.register(new SchemaCommand(schema, component, logger));\n graphql.register(schemaSchema(schema));\n\n // workspace.onComponentLoad(async (component) => {\n // const apiSchema = await schema.getSchema(component);\n // return {};\n // });\n\n return schema;\n }\n}\n\nSchemaAspect.addRuntime(SchemaMain);\n\nexport default SchemaMain;\n"],"mappings":"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"}
|
package/dist/schema.spec.js
CHANGED
|
@@ -54,6 +54,16 @@ function _workspaceTesting() {
|
|
|
54
54
|
return data;
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
+
function _componentId() {
|
|
58
|
+
const data = require("@teambit/component-id");
|
|
59
|
+
|
|
60
|
+
_componentId = function () {
|
|
61
|
+
return data;
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
return data;
|
|
65
|
+
}
|
|
66
|
+
|
|
57
67
|
function _workspace() {
|
|
58
68
|
const data = _interopRequireDefault(require("@teambit/workspace"));
|
|
59
69
|
|
|
@@ -80,6 +90,12 @@ describe('SchemaAspect', function () {
|
|
|
80
90
|
let workspaceData;
|
|
81
91
|
beforeAll(async () => {
|
|
82
92
|
workspaceData = (0, _workspaceTesting().mockWorkspace)();
|
|
93
|
+
const {
|
|
94
|
+
workspacePath
|
|
95
|
+
} = workspaceData; // eslint-disable-next-line no-console
|
|
96
|
+
|
|
97
|
+
console.log('workspace created at ', workspacePath);
|
|
98
|
+
schema = await (0, _harmonyTesting().loadAspect)(_().SchemaAspect, workspacePath);
|
|
83
99
|
});
|
|
84
100
|
afterAll(async () => {
|
|
85
101
|
await (0, _workspaceTesting().destroyWorkspace)(workspaceData);
|
|
@@ -89,9 +105,7 @@ describe('SchemaAspect', function () {
|
|
|
89
105
|
beforeAll(async () => {
|
|
90
106
|
const {
|
|
91
107
|
workspacePath
|
|
92
|
-
} = workspaceData;
|
|
93
|
-
|
|
94
|
-
console.log('workspace created at ', workspacePath);
|
|
108
|
+
} = workspaceData;
|
|
95
109
|
|
|
96
110
|
const compDir = _path().default.join(workspacePath, 'button');
|
|
97
111
|
|
|
@@ -100,7 +114,8 @@ describe('SchemaAspect', function () {
|
|
|
100
114
|
await _fsExtra().default.copy(src, compDir);
|
|
101
115
|
workspace = await (0, _harmonyTesting().loadAspect)(_workspace().default, workspacePath);
|
|
102
116
|
await workspace.track({
|
|
103
|
-
rootDir: compDir
|
|
117
|
+
rootDir: compDir,
|
|
118
|
+
defaultScope: 'org.scope'
|
|
104
119
|
});
|
|
105
120
|
await workspace.bitMap.write();
|
|
106
121
|
schema = await (0, _harmonyTesting().loadAspect)(_().SchemaAspect, workspacePath);
|
|
@@ -128,7 +143,8 @@ describe('SchemaAspect', function () {
|
|
|
128
143
|
const json = _fsExtra().default.readJsonSync(jsonPath);
|
|
129
144
|
|
|
130
145
|
const apiSchema = schema.getSchemaFromObject(json);
|
|
131
|
-
expect(apiSchema instanceof _semanticsEntities().APISchema).toBeTruthy();
|
|
146
|
+
expect(apiSchema instanceof _semanticsEntities().APISchema).toBeTruthy();
|
|
147
|
+
expect(apiSchema.componentId instanceof _componentId().ComponentID).toBeTruthy(); // @ts-ignore it exists on Jest. for some reason ts assumes this is Jasmine.
|
|
132
148
|
|
|
133
149
|
expect(apiSchema.toObject()).toMatchObject(json);
|
|
134
150
|
});
|
package/dist/schema.spec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["describe","schema","workspace","workspaceData","beforeAll","mockWorkspace","
|
|
1
|
+
{"version":3,"names":["describe","schema","workspace","workspaceData","beforeAll","mockWorkspace","workspacePath","console","log","loadAspect","SchemaAspect","afterAll","destroyWorkspace","apiSchema","compDir","path","join","src","getMockDir","fs","copy","WorkspaceAspect","track","rootDir","defaultScope","bitMap","write","compId","resolveComponentId","comp","get","getSchema","it","results","toObject","expectedJsonPath","expectedJson","readJsonSync","expect","toMatchObject","jsonPath","json","getSchemaFromObject","APISchema","toBeTruthy","componentId","ComponentID","getCurrentDir","currentDir","__dirname","endsWith","sep","slice"],"sources":["schema.spec.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport { APISchema } from '@teambit/semantics.entities.semantic-schema';\nimport { loadAspect } from '@teambit/harmony.testing.load-aspect';\nimport { mockWorkspace, destroyWorkspace, WorkspaceData } from '@teambit/workspace.testing.mock-workspace';\nimport { ComponentID } from '@teambit/component-id';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport { SchemaMain } from './schema.main.runtime';\nimport { SchemaAspect } from '.';\n\ndescribe('SchemaAspect', function () {\n let schema: SchemaMain;\n let workspace: Workspace;\n let workspaceData: WorkspaceData;\n beforeAll(async () => {\n workspaceData = mockWorkspace();\n const { workspacePath } = workspaceData;\n // eslint-disable-next-line no-console\n console.log('workspace created at ', workspacePath);\n schema = await loadAspect(SchemaAspect, workspacePath);\n });\n afterAll(async () => {\n await destroyWorkspace(workspaceData);\n });\n describe('getSchema()', () => {\n let apiSchema: APISchema;\n beforeAll(async () => {\n const { workspacePath } = workspaceData;\n const compDir = path.join(workspacePath, 'button');\n const src = path.join(getMockDir(), 'button');\n await fs.copy(src, compDir);\n workspace = await loadAspect(WorkspaceAspect, workspacePath);\n await workspace.track({ rootDir: compDir, defaultScope: 'org.scope' });\n await workspace.bitMap.write();\n schema = await loadAspect(SchemaAspect, workspacePath);\n const compId = await workspace.resolveComponentId('button');\n const comp = await workspace.get(compId);\n apiSchema = await schema.getSchema(comp);\n });\n it('should be able to generate JSON object with all schemas', async () => {\n const results = apiSchema.toObject();\n const expectedJsonPath = path.join(getMockDir(), 'button-schemas.json');\n // uncomment the next line temporarily to sync the expected json with new schema changes\n // fs.outputFileSync(expectedJsonPath, JSON.stringify(results, undefined, 2));\n const expectedJson = fs.readJsonSync(expectedJsonPath);\n // @ts-ignore it exists on Jest. for some reason ts assumes this is Jasmine.\n expect(results).toMatchObject(expectedJson);\n });\n });\n describe('getSchemaFromObject', () => {\n it('should be able to deserialize an JSON object to SchemaNode instances', () => {\n const jsonPath = path.join(getMockDir(), 'button-schemas.json');\n const json = fs.readJsonSync(jsonPath);\n const apiSchema = schema.getSchemaFromObject(json);\n expect(apiSchema instanceof APISchema).toBeTruthy();\n expect(apiSchema.componentId instanceof ComponentID).toBeTruthy();\n // @ts-ignore it exists on Jest. for some reason ts assumes this is Jasmine.\n expect(apiSchema.toObject()).toMatchObject(json);\n });\n });\n});\n\nfunction getCurrentDir() {\n const currentDir = __dirname;\n if (currentDir.endsWith(`${path.sep}dist`)) return currentDir.slice(0, -5);\n return currentDir;\n}\n\nfunction getMockDir() {\n return path.join(getCurrentDir(), 'mock');\n}\n"],"mappings":"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"}
|
package/mock/button-schemas.json
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/schema",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.743",
|
|
4
4
|
"homepage": "https://bit.dev/teambit/semantics/schema",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.semantics",
|
|
8
8
|
"name": "schema",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.743"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"p-map-series": "2.1.0",
|
|
@@ -16,12 +16,13 @@
|
|
|
16
16
|
"core-js": "^3.0.0",
|
|
17
17
|
"@teambit/harmony": "0.3.3",
|
|
18
18
|
"@teambit/base-react.navigation.link": "1.23.0",
|
|
19
|
-
"@teambit/semantics.entities.semantic-schema": "0.0.
|
|
20
|
-
"@teambit/builder": "0.0.
|
|
21
|
-
"@teambit/component": "0.0.
|
|
22
|
-
"@teambit/cli": "0.0.
|
|
23
|
-
"@teambit/
|
|
24
|
-
"@teambit/
|
|
19
|
+
"@teambit/semantics.entities.semantic-schema": "0.0.16",
|
|
20
|
+
"@teambit/builder": "0.0.743",
|
|
21
|
+
"@teambit/component": "0.0.743",
|
|
22
|
+
"@teambit/cli": "0.0.493",
|
|
23
|
+
"@teambit/logger": "0.0.585",
|
|
24
|
+
"@teambit/envs": "0.0.743",
|
|
25
|
+
"@teambit/graphql": "0.0.743"
|
|
25
26
|
},
|
|
26
27
|
"devDependencies": {
|
|
27
28
|
"@types/react": "^17.0.8",
|
|
@@ -32,12 +33,13 @@
|
|
|
32
33
|
"@types/jest": "^26.0.0",
|
|
33
34
|
"@types/react-dom": "^17.0.5",
|
|
34
35
|
"@types/node": "12.20.4",
|
|
36
|
+
"@teambit/component-id": "0.0.402",
|
|
35
37
|
"@teambit/harmony.testing.load-aspect": "0.0.6",
|
|
36
38
|
"@teambit/workspace.testing.mock-workspace": "0.0.5",
|
|
37
|
-
"@teambit/workspace": "0.0.
|
|
39
|
+
"@teambit/workspace": "0.0.743"
|
|
38
40
|
},
|
|
39
41
|
"peerDependencies": {
|
|
40
|
-
"@teambit/legacy": "1.0.
|
|
42
|
+
"@teambit/legacy": "1.0.273",
|
|
41
43
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
42
44
|
"react": "^16.8.0 || ^17.0.0"
|
|
43
45
|
},
|
|
@@ -65,7 +67,7 @@
|
|
|
65
67
|
"react": "-"
|
|
66
68
|
},
|
|
67
69
|
"peerDependencies": {
|
|
68
|
-
"@teambit/legacy": "1.0.
|
|
70
|
+
"@teambit/legacy": "1.0.273",
|
|
69
71
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
70
72
|
"react": "^16.8.0 || ^17.0.0"
|
|
71
73
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.semantics_schema@0.0.
|
|
2
|
-
export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.semantics_schema@0.0.
|
|
1
|
+
export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.semantics_schema@0.0.743/dist/schema.composition.js'), require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.semantics_schema@0.0.743/dist/mock/button/button.composition.js')]
|
|
2
|
+
export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.semantics_schema@0.0.743/dist/schema.docs.mdx')]
|
|
Binary file
|