@teambit/schema 0.0.1067 → 0.0.1069

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.
@@ -1,6 +1,6 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.semantics_schema@0.0.1067/dist/schema.composition.js';
2
- import * as compositions_1 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.semantics_schema@0.0.1067/dist/mock/button/button.composition.js';
3
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.semantics_schema@0.0.1067/dist/schema.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.semantics_schema@0.0.1069/dist/schema.composition.js';
2
+ import * as compositions_1 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.semantics_schema@0.0.1069/dist/mock/button/button.composition.js';
3
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.semantics_schema@0.0.1069/dist/schema.docs.mdx';
4
4
 
5
5
  export const compositions = [compositions_0, compositions_1];
6
6
  export const overview = [overview_0];
@@ -50,7 +50,7 @@ export declare class SchemaMain {
50
50
  * relevant. for calling the API only to get a schema for one component, this is needed to ensure the ts-server is
51
51
  * not kept alive. otherwise, the process will never end.
52
52
  */
53
- getSchema(component: Component, shouldDisposeResourcesOnceDone?: boolean): Promise<APISchema>;
53
+ getSchema(component: Component, shouldDisposeResourcesOnceDone?: boolean, alwaysRunExtractor?: boolean, path?: string): Promise<APISchema>;
54
54
  getSchemaFromObject(obj: Record<string, any>): APISchema;
55
55
  /**
56
56
  * register a new parser.
@@ -167,11 +167,8 @@ class SchemaMain {
167
167
  * relevant. for calling the API only to get a schema for one component, this is needed to ensure the ts-server is
168
168
  * not kept alive. otherwise, the process will never end.
169
169
  */
170
- async getSchema(component, shouldDisposeResourcesOnceDone = false) {
171
- this.logger.debug(`getSchema of ${component.id.toString()}`);
172
-
173
- // if on workspace get schema from ts server
174
- if (this.workspace) {
170
+ async getSchema(component, shouldDisposeResourcesOnceDone = false, alwaysRunExtractor = false, path) {
171
+ if (alwaysRunExtractor || this.workspace) {
175
172
  var _env$getFormatter;
176
173
  const env = this.envs.getEnv(component).env;
177
174
  // types need to be fixed
@@ -182,7 +179,7 @@ class SchemaMain {
182
179
  if (typeof env.getSchemaExtractor === 'undefined') {
183
180
  throw new Error(`No SchemaExtractor defined for ${env.name}`);
184
181
  }
185
- const schemaExtractor = env.getSchemaExtractor();
182
+ const schemaExtractor = env.getSchemaExtractor(undefined, path);
186
183
  const result = await schemaExtractor.extract(component, formatter);
187
184
  if (shouldDisposeResourcesOnceDone) schemaExtractor.dispose();
188
185
  return result;
@@ -191,6 +188,8 @@ class SchemaMain {
191
188
  // on scope get schema from builder api
192
189
  const schemaArtifact = await this.builder.getArtifactsVinylByAspectAndTaskName(component, _schema().SchemaAspect.id, _schema4().SCHEMA_TASK_NAME);
193
190
  if (schemaArtifact.length === 0) {
191
+ this.logger.debug(`no schema found for ${component.id.toString()}`);
192
+
194
193
  /**
195
194
  * return empty schema
196
195
  * when tag/snap without build
@@ -1 +1 @@
1
- {"version":3,"names":["SchemaMain","constructor","parserSlot","envs","config","builder","workspace","logger","getDefaultParser","get","defaultParser","parseModule","path","parsers","toArray","maybeParser","find","parser","match","extension","getSchemaExtractor","component","env","getEnv","Error","name","getSchema","shouldDisposeResourcesOnceDone","debug","id","toString","formatter","getFormatter","setKey","schemaExtractor","result","extract","dispose","schemaArtifact","getArtifactsVinylByAspectAndTaskName","SchemaAspect","SCHEMA_TASK_NAME","length","APISchema","empty","schemaJsonStr","contents","schemaJson","JSON","parse","getSchemaFromObject","e","SyntaxError","error","message","obj","fromObject","registerParser","register","provider","cli","graphql","loggerMain","createLogger","schema","schemaTask","SchemaTask","registerBuildTasks","SchemaCommand","schemaSchema","registerService","SchemaService","MainRuntime","EnvsAspect","CLIAspect","ComponentAspect","GraphqlAspect","LoggerAspect","BuilderAspect","WorkspaceAspect","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 { PrettierConfigMutator } from '@teambit/defender.prettier.config-mutator';\nimport { APISchema, Export } from '@teambit/semantics.entities.semantic-schema';\nimport { BuilderMain, BuilderAspect } from '@teambit/builder';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { Formatter } from '@teambit/formatter';\nimport { Parser } from './parser';\nimport { SchemaAspect } from './schema.aspect';\nimport { SchemaExtractor } from './schema-extractor';\nimport { SchemaCommand } from './schema.cmd';\nimport { schemaSchema } from './schema.graphql';\nimport { SchemaTask, SCHEMA_TASK_NAME } from './schema.task';\nimport { SchemaService } from './schema.service';\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 builder: BuilderMain,\n\n private workspace: Workspace,\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 * @param shouldDisposeResourcesOnceDone for long-running processes, such as bit-start/bit-watch, this is not\n * relevant. for calling the API only to get a schema for one component, this is needed to ensure the ts-server is\n * not kept alive. otherwise, the process will never end.\n */\n async getSchema(component: Component, shouldDisposeResourcesOnceDone = false): Promise<APISchema> {\n this.logger.debug(`getSchema of ${component.id.toString()}`);\n\n // if on workspace get schema from ts server\n if (this.workspace) {\n const env = this.envs.getEnv(component).env;\n // types need to be fixed\n const formatter: Formatter | undefined = env.getFormatter?.(null, [\n (config: PrettierConfigMutator) => {\n config.setKey('parser', 'typescript');\n return config;\n },\n ]);\n if (typeof env.getSchemaExtractor === 'undefined') {\n throw new Error(`No SchemaExtractor defined for ${env.name}`);\n }\n const schemaExtractor: SchemaExtractor = env.getSchemaExtractor();\n\n const result = await schemaExtractor.extract(component, formatter);\n if (shouldDisposeResourcesOnceDone) schemaExtractor.dispose();\n\n return result;\n }\n\n // on scope get schema from builder api\n const schemaArtifact = await this.builder.getArtifactsVinylByAspectAndTaskName(\n component,\n SchemaAspect.id,\n SCHEMA_TASK_NAME\n );\n\n if (schemaArtifact.length === 0) {\n /**\n * return empty schema\n * when tag/snap without build\n * or backwards compatibility\n */\n return APISchema.empty(component.id);\n }\n\n const schemaJsonStr = schemaArtifact[0].contents.toString('utf-8');\n\n try {\n const schemaJson = JSON.parse(schemaJsonStr);\n return this.getSchemaFromObject(schemaJson);\n } catch (e) {\n if (e instanceof SyntaxError) {\n this.logger.error(e.message);\n throw new Error(`Invalid schema.json for ${component.id}`);\n }\n throw e;\n }\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 = [\n EnvsAspect,\n CLIAspect,\n ComponentAspect,\n GraphqlAspect,\n LoggerAspect,\n BuilderAspect,\n WorkspaceAspect,\n ];\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, builder, workspace]: [\n EnvsMain,\n CLIMain,\n ComponentMain,\n GraphqlMain,\n LoggerMain,\n BuilderMain,\n Workspace\n ],\n config: SchemaConfig,\n [parserSlot]: [ParserSlot]\n ) {\n const logger = loggerMain.createLogger(SchemaAspect.id);\n const schema = new SchemaMain(parserSlot, envs, config, builder, workspace, logger);\n const schemaTask = new SchemaTask(SchemaAspect.id, schema, logger);\n builder.registerBuildTasks([schemaTask]);\n cli.register(new SchemaCommand(schema, component, logger));\n graphql.register(schemaSchema(schema));\n envs.registerService(new SchemaService());\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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"}
1
+ {"version":3,"names":["SchemaMain","constructor","parserSlot","envs","config","builder","workspace","logger","getDefaultParser","get","defaultParser","parseModule","path","parsers","toArray","maybeParser","find","parser","match","extension","getSchemaExtractor","component","env","getEnv","Error","name","getSchema","shouldDisposeResourcesOnceDone","alwaysRunExtractor","formatter","getFormatter","setKey","schemaExtractor","undefined","result","extract","dispose","schemaArtifact","getArtifactsVinylByAspectAndTaskName","SchemaAspect","id","SCHEMA_TASK_NAME","length","debug","toString","APISchema","empty","schemaJsonStr","contents","schemaJson","JSON","parse","getSchemaFromObject","e","SyntaxError","error","message","obj","fromObject","registerParser","register","provider","cli","graphql","loggerMain","createLogger","schema","schemaTask","SchemaTask","registerBuildTasks","SchemaCommand","schemaSchema","registerService","SchemaService","MainRuntime","EnvsAspect","CLIAspect","ComponentAspect","GraphqlAspect","LoggerAspect","BuilderAspect","WorkspaceAspect","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 { PrettierConfigMutator } from '@teambit/defender.prettier.config-mutator';\nimport { APISchema, Export } from '@teambit/semantics.entities.semantic-schema';\nimport { BuilderMain, BuilderAspect } from '@teambit/builder';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { Formatter } from '@teambit/formatter';\nimport { Parser } from './parser';\nimport { SchemaAspect } from './schema.aspect';\nimport { SchemaExtractor } from './schema-extractor';\nimport { SchemaCommand } from './schema.cmd';\nimport { schemaSchema } from './schema.graphql';\nimport { SchemaTask, SCHEMA_TASK_NAME } from './schema.task';\nimport { SchemaService } from './schema.service';\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 builder: BuilderMain,\n\n private workspace: Workspace,\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 * @param shouldDisposeResourcesOnceDone for long-running processes, such as bit-start/bit-watch, this is not\n * relevant. for calling the API only to get a schema for one component, this is needed to ensure the ts-server is\n * not kept alive. otherwise, the process will never end.\n */\n async getSchema(\n component: Component,\n shouldDisposeResourcesOnceDone = false,\n alwaysRunExtractor = false,\n path?: string\n ): Promise<APISchema> {\n if (alwaysRunExtractor || this.workspace) {\n const env = this.envs.getEnv(component).env;\n // types need to be fixed\n const formatter: Formatter | undefined = env.getFormatter?.(null, [\n (config: PrettierConfigMutator) => {\n config.setKey('parser', 'typescript');\n return config;\n },\n ]);\n if (typeof env.getSchemaExtractor === 'undefined') {\n throw new Error(`No SchemaExtractor defined for ${env.name}`);\n }\n const schemaExtractor: SchemaExtractor = env.getSchemaExtractor(undefined, path);\n\n const result = await schemaExtractor.extract(component, formatter);\n if (shouldDisposeResourcesOnceDone) schemaExtractor.dispose();\n\n return result;\n }\n\n // on scope get schema from builder api\n const schemaArtifact = await this.builder.getArtifactsVinylByAspectAndTaskName(\n component,\n SchemaAspect.id,\n SCHEMA_TASK_NAME\n );\n\n if (schemaArtifact.length === 0) {\n this.logger.debug(`no schema found for ${component.id.toString()}`);\n\n /**\n * return empty schema\n * when tag/snap without build\n * or backwards compatibility\n */\n return APISchema.empty(component.id);\n }\n\n const schemaJsonStr = schemaArtifact[0].contents.toString('utf-8');\n\n try {\n const schemaJson = JSON.parse(schemaJsonStr);\n return this.getSchemaFromObject(schemaJson);\n } catch (e) {\n if (e instanceof SyntaxError) {\n this.logger.error(e.message);\n throw new Error(`Invalid schema.json for ${component.id}`);\n }\n throw e;\n }\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 = [\n EnvsAspect,\n CLIAspect,\n ComponentAspect,\n GraphqlAspect,\n LoggerAspect,\n BuilderAspect,\n WorkspaceAspect,\n ];\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, builder, workspace]: [\n EnvsMain,\n CLIMain,\n ComponentMain,\n GraphqlMain,\n LoggerMain,\n BuilderMain,\n Workspace\n ],\n config: SchemaConfig,\n [parserSlot]: [ParserSlot]\n ) {\n const logger = loggerMain.createLogger(SchemaAspect.id);\n const schema = new SchemaMain(parserSlot, envs, config, builder, workspace, logger);\n const schemaTask = new SchemaTask(SchemaAspect.id, schema, logger);\n builder.registerBuildTasks([schemaTask]);\n cli.register(new SchemaCommand(schema, component, logger));\n graphql.register(schemaSchema(schema));\n envs.registerService(new SchemaService());\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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"}
@@ -68,7 +68,7 @@ class SchemaTask {
68
68
  await (0, _pMapSeries().default)(capsules, async capsule => {
69
69
  const component = capsule.component;
70
70
  try {
71
- const schema = await this.schema.getSchema(component);
71
+ const schema = await this.schema.getSchema(component, true, true, capsule.path);
72
72
  const schemaObj = schema.toObject();
73
73
  await _fsExtra().default.outputFile((0, _path().join)(capsule.path, getSchemaArtifactPath()), JSON.stringify(schemaObj, null, 2));
74
74
  schemaResult.push({
@@ -77,6 +77,7 @@ class SchemaTask {
77
77
  endTime: Date.now()
78
78
  });
79
79
  } catch (e) {
80
+ this.logger.warn(`failed extracting schema for ${component.id.toString()}`);
80
81
  /**
81
82
  * @todo once schema extractor is more stable change this to an error
82
83
  */
@@ -1 +1 @@
1
- {"version":3,"names":["SCHEMA_TASK_NAME","SCHEMA_ARTIFACT_NAME","SchemaTask","constructor","aspectId","schema","logger","execute","context","startTime","Date","now","capsules","capsuleNetwork","seedersCapsules","schemaResult","pMapSeries","capsule","component","getSchema","schemaObj","toObject","fs","outputFile","join","path","getSchemaArtifactPath","JSON","stringify","push","endTime","e","Error","warnings","message","artifacts","getSchemaArtifactDef","componentsResults","CAPSULE_ARTIFACTS_DIR","def","name","rootDir","globPatterns"],"sources":["schema.task.ts"],"sourcesContent":["import {\n BuildContext,\n BuiltTaskResult,\n BuildTask,\n TaskLocation,\n CAPSULE_ARTIFACTS_DIR,\n ComponentResult,\n ArtifactDefinition,\n} from '@teambit/builder';\nimport { Logger } from '@teambit/logger';\nimport fs from 'fs-extra';\nimport pMapSeries from 'p-map-series';\nimport { join } from 'path';\nimport { SchemaMain } from './schema.main.runtime';\n\nexport const SCHEMA_TASK_NAME = 'ExtractSchema';\nexport const SCHEMA_ARTIFACT_NAME = 'schema';\n\n/**\n * extract and persist the component schema as a json file\n */\nexport class SchemaTask implements BuildTask {\n readonly name = SCHEMA_TASK_NAME;\n readonly location: TaskLocation = 'end';\n readonly description = 'extract api schema for a set of components';\n\n constructor(readonly aspectId: string, private schema: SchemaMain, private logger: Logger) {}\n\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n const startTime = Date.now();\n const capsules = context.capsuleNetwork.seedersCapsules;\n const schemaResult: ComponentResult[] = [];\n // persist schema json\n await pMapSeries(capsules, async (capsule) => {\n const component = capsule.component;\n try {\n const schema = await this.schema.getSchema(component);\n const schemaObj = schema.toObject();\n await fs.outputFile(join(capsule.path, getSchemaArtifactPath()), JSON.stringify(schemaObj, null, 2));\n schemaResult.push({\n component,\n startTime,\n endTime: Date.now(),\n });\n } catch (e) {\n /**\n * @todo once schema extractor is more stable change this to an error\n */\n if (e instanceof Error) {\n schemaResult.push({\n component,\n startTime,\n endTime: Date.now(),\n warnings: [e.message],\n });\n }\n }\n });\n return {\n artifacts: [getSchemaArtifactDef()],\n componentsResults: schemaResult,\n };\n }\n}\n\nexport function getSchemaArtifactPath() {\n return join(CAPSULE_ARTIFACTS_DIR, 'schema.json');\n}\n\nexport function getSchemaArtifactDef() {\n const def: ArtifactDefinition = {\n name: SCHEMA_ARTIFACT_NAME,\n rootDir: CAPSULE_ARTIFACTS_DIR,\n globPatterns: ['schema.json'],\n };\n\n return def;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAUA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGO,MAAMA,gBAAgB,GAAG,eAAe;AAAC;AACzC,MAAMC,oBAAoB,GAAG,QAAQ;;AAE5C;AACA;AACA;AAFA;AAGO,MAAMC,UAAU,CAAsB;EAK3CC,WAAW,CAAUC,QAAgB,EAAUC,MAAkB,EAAUC,MAAc,EAAE;IAAA,KAAtEF,QAAgB,GAAhBA,QAAgB;IAAA,KAAUC,MAAkB,GAAlBA,MAAkB;IAAA,KAAUC,MAAc,GAAdA,MAAc;IAAA,8CAJzEN,gBAAgB;IAAA,kDACE,KAAK;IAAA,qDAChB,4CAA4C;EAEyB;EAE5F,MAAMO,OAAO,CAACC,OAAqB,EAA4B;IAC7D,MAAMC,SAAS,GAAGC,IAAI,CAACC,GAAG,EAAE;IAC5B,MAAMC,QAAQ,GAAGJ,OAAO,CAACK,cAAc,CAACC,eAAe;IACvD,MAAMC,YAA+B,GAAG,EAAE;IAC1C;IACA,MAAM,IAAAC,qBAAU,EAACJ,QAAQ,EAAE,MAAOK,OAAO,IAAK;MAC5C,MAAMC,SAAS,GAAGD,OAAO,CAACC,SAAS;MACnC,IAAI;QACF,MAAMb,MAAM,GAAG,MAAM,IAAI,CAACA,MAAM,CAACc,SAAS,CAACD,SAAS,CAAC;QACrD,MAAME,SAAS,GAAGf,MAAM,CAACgB,QAAQ,EAAE;QACnC,MAAMC,kBAAE,CAACC,UAAU,CAAC,IAAAC,YAAI,EAACP,OAAO,CAACQ,IAAI,EAAEC,qBAAqB,EAAE,CAAC,EAAEC,IAAI,CAACC,SAAS,CAACR,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACpGL,YAAY,CAACc,IAAI,CAAC;UAChBX,SAAS;UACTT,SAAS;UACTqB,OAAO,EAAEpB,IAAI,CAACC,GAAG;QACnB,CAAC,CAAC;MACJ,CAAC,CAAC,OAAOoB,CAAC,EAAE;QACV;AACR;AACA;QACQ,IAAIA,CAAC,YAAYC,KAAK,EAAE;UACtBjB,YAAY,CAACc,IAAI,CAAC;YAChBX,SAAS;YACTT,SAAS;YACTqB,OAAO,EAAEpB,IAAI,CAACC,GAAG,EAAE;YACnBsB,QAAQ,EAAE,CAACF,CAAC,CAACG,OAAO;UACtB,CAAC,CAAC;QACJ;MACF;IACF,CAAC,CAAC;IACF,OAAO;MACLC,SAAS,EAAE,CAACC,oBAAoB,EAAE,CAAC;MACnCC,iBAAiB,EAAEtB;IACrB,CAAC;EACH;AACF;AAAC;AAEM,SAASW,qBAAqB,GAAG;EACtC,OAAO,IAAAF,YAAI,EAACc,gCAAqB,EAAE,aAAa,CAAC;AACnD;AAEO,SAASF,oBAAoB,GAAG;EACrC,MAAMG,GAAuB,GAAG;IAC9BC,IAAI,EAAEvC,oBAAoB;IAC1BwC,OAAO,EAAEH,gCAAqB;IAC9BI,YAAY,EAAE,CAAC,aAAa;EAC9B,CAAC;EAED,OAAOH,GAAG;AACZ"}
1
+ {"version":3,"names":["SCHEMA_TASK_NAME","SCHEMA_ARTIFACT_NAME","SchemaTask","constructor","aspectId","schema","logger","execute","context","startTime","Date","now","capsules","capsuleNetwork","seedersCapsules","schemaResult","pMapSeries","capsule","component","getSchema","path","schemaObj","toObject","fs","outputFile","join","getSchemaArtifactPath","JSON","stringify","push","endTime","e","warn","id","toString","Error","warnings","message","artifacts","getSchemaArtifactDef","componentsResults","CAPSULE_ARTIFACTS_DIR","def","name","rootDir","globPatterns"],"sources":["schema.task.ts"],"sourcesContent":["import {\n BuildContext,\n BuiltTaskResult,\n BuildTask,\n TaskLocation,\n CAPSULE_ARTIFACTS_DIR,\n ComponentResult,\n ArtifactDefinition,\n} from '@teambit/builder';\nimport { Logger } from '@teambit/logger';\nimport fs from 'fs-extra';\nimport pMapSeries from 'p-map-series';\nimport { join } from 'path';\nimport { SchemaMain } from './schema.main.runtime';\n\nexport const SCHEMA_TASK_NAME = 'ExtractSchema';\nexport const SCHEMA_ARTIFACT_NAME = 'schema';\n\n/**\n * extract and persist the component schema as a json file\n */\nexport class SchemaTask implements BuildTask {\n readonly name = SCHEMA_TASK_NAME;\n readonly location: TaskLocation = 'end';\n readonly description = 'extract api schema for a set of components';\n\n constructor(readonly aspectId: string, private schema: SchemaMain, private logger: Logger) {}\n\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n const startTime = Date.now();\n const capsules = context.capsuleNetwork.seedersCapsules;\n const schemaResult: ComponentResult[] = [];\n // persist schema json\n await pMapSeries(capsules, async (capsule) => {\n const component = capsule.component;\n try {\n const schema = await this.schema.getSchema(component, true, true, capsule.path);\n const schemaObj = schema.toObject();\n await fs.outputFile(join(capsule.path, getSchemaArtifactPath()), JSON.stringify(schemaObj, null, 2));\n schemaResult.push({\n component,\n startTime,\n endTime: Date.now(),\n });\n } catch (e) {\n this.logger.warn(`failed extracting schema for ${component.id.toString()}`);\n /**\n * @todo once schema extractor is more stable change this to an error\n */\n if (e instanceof Error) {\n schemaResult.push({\n component,\n startTime,\n endTime: Date.now(),\n warnings: [e.message],\n });\n }\n }\n });\n return {\n artifacts: [getSchemaArtifactDef()],\n componentsResults: schemaResult,\n };\n }\n}\n\nexport function getSchemaArtifactPath() {\n return join(CAPSULE_ARTIFACTS_DIR, 'schema.json');\n}\n\nexport function getSchemaArtifactDef() {\n const def: ArtifactDefinition = {\n name: SCHEMA_ARTIFACT_NAME,\n rootDir: CAPSULE_ARTIFACTS_DIR,\n globPatterns: ['schema.json'],\n };\n\n return def;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAUA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGO,MAAMA,gBAAgB,GAAG,eAAe;AAAC;AACzC,MAAMC,oBAAoB,GAAG,QAAQ;;AAE5C;AACA;AACA;AAFA;AAGO,MAAMC,UAAU,CAAsB;EAK3CC,WAAW,CAAUC,QAAgB,EAAUC,MAAkB,EAAUC,MAAc,EAAE;IAAA,KAAtEF,QAAgB,GAAhBA,QAAgB;IAAA,KAAUC,MAAkB,GAAlBA,MAAkB;IAAA,KAAUC,MAAc,GAAdA,MAAc;IAAA,8CAJzEN,gBAAgB;IAAA,kDACE,KAAK;IAAA,qDAChB,4CAA4C;EAEyB;EAE5F,MAAMO,OAAO,CAACC,OAAqB,EAA4B;IAC7D,MAAMC,SAAS,GAAGC,IAAI,CAACC,GAAG,EAAE;IAC5B,MAAMC,QAAQ,GAAGJ,OAAO,CAACK,cAAc,CAACC,eAAe;IACvD,MAAMC,YAA+B,GAAG,EAAE;IAC1C;IACA,MAAM,IAAAC,qBAAU,EAACJ,QAAQ,EAAE,MAAOK,OAAO,IAAK;MAC5C,MAAMC,SAAS,GAAGD,OAAO,CAACC,SAAS;MACnC,IAAI;QACF,MAAMb,MAAM,GAAG,MAAM,IAAI,CAACA,MAAM,CAACc,SAAS,CAACD,SAAS,EAAE,IAAI,EAAE,IAAI,EAAED,OAAO,CAACG,IAAI,CAAC;QAC/E,MAAMC,SAAS,GAAGhB,MAAM,CAACiB,QAAQ,EAAE;QACnC,MAAMC,kBAAE,CAACC,UAAU,CAAC,IAAAC,YAAI,EAACR,OAAO,CAACG,IAAI,EAAEM,qBAAqB,EAAE,CAAC,EAAEC,IAAI,CAACC,SAAS,CAACP,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACpGN,YAAY,CAACc,IAAI,CAAC;UAChBX,SAAS;UACTT,SAAS;UACTqB,OAAO,EAAEpB,IAAI,CAACC,GAAG;QACnB,CAAC,CAAC;MACJ,CAAC,CAAC,OAAOoB,CAAC,EAAE;QACV,IAAI,CAACzB,MAAM,CAAC0B,IAAI,CAAE,gCAA+Bd,SAAS,CAACe,EAAE,CAACC,QAAQ,EAAG,EAAC,CAAC;QAC3E;AACR;AACA;QACQ,IAAIH,CAAC,YAAYI,KAAK,EAAE;UACtBpB,YAAY,CAACc,IAAI,CAAC;YAChBX,SAAS;YACTT,SAAS;YACTqB,OAAO,EAAEpB,IAAI,CAACC,GAAG,EAAE;YACnByB,QAAQ,EAAE,CAACL,CAAC,CAACM,OAAO;UACtB,CAAC,CAAC;QACJ;MACF;IACF,CAAC,CAAC;IACF,OAAO;MACLC,SAAS,EAAE,CAACC,oBAAoB,EAAE,CAAC;MACnCC,iBAAiB,EAAEzB;IACrB,CAAC;EACH;AACF;AAAC;AAEM,SAASW,qBAAqB,GAAG;EACtC,OAAO,IAAAD,YAAI,EAACgB,gCAAqB,EAAE,aAAa,CAAC;AACnD;AAEO,SAASF,oBAAoB,GAAG;EACrC,MAAMG,GAAuB,GAAG;IAC9BC,IAAI,EAAE1C,oBAAoB;IAC1B2C,OAAO,EAAEH,gCAAqB;IAC9BI,YAAY,EAAE,CAAC,aAAa;EAC9B,CAAC;EAED,OAAOH,GAAG;AACZ"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/schema",
3
- "version": "0.0.1067",
3
+ "version": "0.0.1069",
4
4
  "homepage": "https://bit.cloud/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.1067"
9
+ "version": "0.0.1069"
10
10
  },
11
11
  "dependencies": {
12
12
  "p-map-series": "2.1.0",
@@ -18,15 +18,15 @@
18
18
  "@teambit/harmony": "0.4.6",
19
19
  "@teambit/base-react.navigation.link": "2.0.27",
20
20
  "@teambit/semantics.entities.semantic-schema": "0.0.53",
21
- "@teambit/envs": "0.0.1067",
22
- "@teambit/component": "0.0.1067",
23
- "@teambit/formatter": "0.0.618",
24
- "@teambit/cli": "0.0.720",
25
- "@teambit/logger": "0.0.813",
26
- "@teambit/builder": "0.0.1067",
21
+ "@teambit/envs": "0.0.1069",
22
+ "@teambit/component": "0.0.1069",
23
+ "@teambit/formatter": "0.0.620",
24
+ "@teambit/cli": "0.0.721",
25
+ "@teambit/logger": "0.0.814",
26
+ "@teambit/builder": "0.0.1069",
27
27
  "@teambit/defender.prettier.config-mutator": "0.0.90",
28
- "@teambit/graphql": "0.0.1067",
29
- "@teambit/workspace": "0.0.1067"
28
+ "@teambit/graphql": "0.0.1069",
29
+ "@teambit/workspace": "0.0.1069"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@types/react": "^17.0.8",
@@ -40,12 +40,12 @@
40
40
  "@types/jest": "^26.0.0",
41
41
  "@types/testing-library__jest-dom": "5.9.5",
42
42
  "@teambit/component-id": "0.0.427",
43
- "@teambit/harmony.testing.load-aspect": "0.0.83",
44
- "@teambit/tracker": "0.0.98",
43
+ "@teambit/harmony.testing.load-aspect": "0.0.84",
44
+ "@teambit/tracker": "0.0.100",
45
45
  "@teambit/workspace.testing.mock-workspace": "0.0.14"
46
46
  },
47
47
  "peerDependencies": {
48
- "@teambit/legacy": "1.0.500",
48
+ "@teambit/legacy": "1.0.501",
49
49
  "react": "^16.8.0 || ^17.0.0",
50
50
  "react-dom": "^16.8.0 || ^17.0.0"
51
51
  },