Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions docworks-dts/lib/multiple-files/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,6 @@ const {
set: setDocumentationGenerator
} = require('./providers/documentationGenerator')

const {
init: initModulesDependencies
} = require('./providers/modulesDependencies')

const getMainContent = modulesNames =>
modulesNames.reduce(
(content, name) => content + dtsTripleSlashReference(name) + '\n',
Expand All @@ -31,7 +27,6 @@ const main = (
mainFileName = 'index.d.ts'
} = {}
) => {
initModulesDependencies()
setDocumentationGenerator(summaryTemplate)

const wixModuleFiles = repoCreator({ services, run$wFixer })
Expand Down
19 changes: 0 additions & 19 deletions docworks-dts/lib/multiple-files/providers/modulesDependencies.js

This file was deleted.

31 changes: 5 additions & 26 deletions docworks-dts/lib/multiple-files/repoCreator.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
const { createHierarchicalServicesMap } = require('./serviceUtils')
const {
isEmptyModule,
createHierarchicalServicesMap
} = require('./serviceUtils')
const { moduleBuilder, $wGlobalNamespaceBuilder } = require('./builders')
const { $W_NAME } = require('./constants')
const { getModulesDependenciesMap } = require('./providers/modulesDependencies')
const {
emit,
dtsImportDefault
} = require('./generators')

const is$w = name => name === $W_NAME

const createModulesFilesMap = ({ services, run$wFixer }) => {
const servicesMap = createHierarchicalServicesMap(services)
return Object.keys(servicesMap).reduce((filesMap, moduleName) => {
const rootService = servicesMap[moduleName]
if (isEmptyModule(rootService)) return filesMap
return {
...filesMap,
[moduleName]: is$w(moduleName)
Expand All @@ -22,29 +21,9 @@ const createModulesFilesMap = ({ services, run$wFixer }) => {
}, {})
}

const createImportStatements = dependencies => {
return Object.keys(dependencies).map(depModuleKey => {
const dependency = dependencies[depModuleKey]
return emit(dtsImportDefault(dependency.to, dependency.from))
})
}

const prependImportStatements = (module, extraConetnt) => {
if (module) {
module.content = [...extraConetnt, module.content].join('\n')
}
}

const repoCreator = ({ services, run$wFixer }) => {
const modulesFiles = createModulesFilesMap({ services, run$wFixer })

const modulesDependencies = getModulesDependenciesMap()
Object.keys(modulesDependencies).forEach(moduleKey => {
const dependencies = modulesDependencies[moduleKey]
const importStatments = createImportStatements(dependencies)
prependImportStatements(modulesFiles[moduleKey], importStatments)
})

return modulesFiles
}
module.exports = repoCreator
8 changes: 7 additions & 1 deletion docworks-dts/lib/multiple-files/serviceUtils.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,15 @@ const isEmptyInterface = service =>
isEmpty_(service.properties) && isEmpty_(service.operations)

const isEmptyNamespace = service =>
isEmpty_(service.services) &&
isEmpty_(service[SUB_SERVICES_KEY]) &&
isEmpty_(service.messages) &&
isEmpty_(service.callbacks)

const isEmptyModule = service =>
isEmpty_(service[SUB_SERVICES_KEY]) &&
isEmpty_(service.properties)&&
isEmpty_(service.operations)

const getServiceSummary = service =>
service && service.docs && service.docs.summary ? service.docs.summary : ''

Expand Down Expand Up @@ -102,6 +107,7 @@ const createHierarchicalServicesMap = services => {
return modulesMapManager.getMap()
}
module.exports = {
isEmptyModule,
isEmptyInterface,
isEmptyNamespace,
getServiceSummary,
Expand Down
9 changes: 1 addition & 8 deletions docworks-dts/lib/multiple-files/typeResolver.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
const camelCase_ = require('lodash/camelCase')
const { addDependency } = require('./providers/modulesDependencies')
const { $W_NAME, TYPES } = require('./constants')
const {
BASE_TYPES,
Expand Down Expand Up @@ -50,13 +48,8 @@ const isCrossReferenceType = (type, service) =>

const resolveCrossReferenceType = (type, service) => {
if (isTypeGlobal(type)) return type

const { name, memberOf } = service
const [currentModuleName] = memberOf ? memberOf.split('.') : [name]
const [crossedTypeModuleName, ...otherParts] = type.split('.')

addDependency(currentModuleName, crossedTypeModuleName)
return `${camelCase_(crossedTypeModuleName)}.${otherParts.join('.')}`
return `import('${crossedTypeModuleName}').${otherParts.join('.')}`
}

const normalizeType = (type, service) => {
Expand Down
22 changes: 22 additions & 0 deletions docworks-dts/test/multiple-files/main.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,24 @@ const DETACHED_SERVICE_JSON = {
clientId: 'test'
}

const EMPTY_SERVICE_JSON = {
name: 'Test',
mixes: [],
labels: [],
docs: {
summary: '',
description: [],
links: [],
examples: [],
request: 'NA'
},
properties: [],
operations: [],
callbacks: [],
messages: [],
clientId: 'test'
}

const getServiceJson = servicePath =>
require(path.join('../services/', servicePath))
const run = paths => {
Expand Down Expand Up @@ -148,6 +166,10 @@ describe('convert docworks to dts', () => {
expect(content).toContain(expectedDeceleration1)
expect(content).toContain(expectedDeceleration2)
})
test('should filter empty modules', () => {
const [{ content }] = multifilesMain([EMPTY_SERVICE_JSON], { summaryTemplate })
expect(content).toEqual('')
})
})

describe('properties', () => {
Expand Down