From bea7659762a14b3f30562e98fd6931d6eaa7d6bf Mon Sep 17 00:00:00 2001 From: David Aurelio Date: Wed, 24 May 2017 07:57:23 -0700 Subject: [PATCH] Move packager core logic from `local-cli` to `packager` Summary: Moves packager core logic to `packager/...` to prepare the open source split. Reviewed By: cpojer Differential Revision: D5116162 fbshipit-source-id: 06ee2406026686789f67acc88df41773866c3cd3 --- local-cli/bundle/buildBundle.js | 2 +- local-cli/bundle/bundle.js | 2 +- local-cli/bundle/types.flow.js | 39 +--------------- local-cli/bundle/unbundle.js | 2 +- packager/src/Bundler/util.js | 2 +- .../ModuleGraph/output/indexed-ram-bundle.js | 4 +- .../src/ModuleGraph/output/plain-bundle.js | 2 +- .../src/shared}/output/bundle.js | 8 ++-- .../src/shared}/output/meta.js | 0 .../src/shared}/output/unbundle/as-assets.js | 4 +- .../output/unbundle/as-indexed-file.js | 5 ++- .../build-unbundle-sourcemap-with-metadata.js | 0 .../src/shared}/output/unbundle/index.js | 4 +- .../shared}/output/unbundle/magic-number.js | 0 .../src/shared}/output/unbundle/util.js | 2 +- .../output/unbundle/write-sourcemap.js | 0 .../src/shared}/output/writeFile.js | 0 packager/src/shared/types.flow.js | 44 +++++++++++++++++++ 18 files changed, 64 insertions(+), 56 deletions(-) rename {local-cli/bundle => packager/src/shared}/output/bundle.js (88%) rename {local-cli/bundle => packager/src/shared}/output/meta.js (100%) rename {local-cli/bundle => packager/src/shared}/output/unbundle/as-assets.js (95%) rename {local-cli/bundle => packager/src/shared}/output/unbundle/as-indexed-file.js (96%) rename {local-cli/bundle => packager/src/shared}/output/unbundle/build-unbundle-sourcemap-with-metadata.js (100%) rename {local-cli/bundle => packager/src/shared}/output/unbundle/index.js (90%) rename {local-cli/bundle => packager/src/shared}/output/unbundle/magic-number.js (100%) rename {local-cli/bundle => packager/src/shared}/output/unbundle/util.js (98%) rename {local-cli/bundle => packager/src/shared}/output/unbundle/write-sourcemap.js (100%) rename {local-cli/bundle => packager/src/shared}/output/writeFile.js (100%) create mode 100644 packager/src/shared/types.flow.js diff --git a/local-cli/bundle/buildBundle.js b/local-cli/bundle/buildBundle.js index 3376abf7572..d7c71bbdb98 100644 --- a/local-cli/bundle/buildBundle.js +++ b/local-cli/bundle/buildBundle.js @@ -15,7 +15,7 @@ const log = require('../util/log').out('bundle'); const Server = require('../../packager/src/Server'); const TerminalReporter = require('../../packager/src/lib/TerminalReporter'); -const outputBundle = require('./output/bundle'); +const outputBundle = require('../../packager/src/shared/output/bundle'); const path = require('path'); const saveAssets = require('./saveAssets'); const defaultAssetExts = require('../../packager/defaults').assetExts; diff --git a/local-cli/bundle/bundle.js b/local-cli/bundle/bundle.js index f5d8d008c4a..324771b7b56 100644 --- a/local-cli/bundle/bundle.js +++ b/local-cli/bundle/bundle.js @@ -10,7 +10,7 @@ const buildBundle = require('./buildBundle'); const bundleCommandLineArgs = require('./bundleCommandLineArgs'); -const outputBundle = require('./output/bundle'); +const outputBundle = require('../../packager/src/shared/output/bundle'); /** * Builds the bundle starting to look for dependencies at the given entry path. diff --git a/local-cli/bundle/types.flow.js b/local-cli/bundle/types.flow.js index b7297700477..3f97c92e5ff 100644 --- a/local-cli/bundle/types.flow.js +++ b/local-cli/bundle/types.flow.js @@ -10,41 +10,4 @@ */ 'use strict'; -import type Bundle from '../../packager/src/Bundler/Bundle'; -import type {Unbundle} from '../../packager/src/Bundler/Bundle'; -import type ModuleTransport, {SourceMapOrMappings} from '../../packager/src/lib/ModuleTransport'; -import type {FBSourceMap, SourceMap} from '../../packager/src/lib/SourceMap'; - -export type {Bundle, FBSourceMap, ModuleTransport, SourceMap, Unbundle}; - -export type ModuleGroups = {| - groups: Map>, - modulesById: Map, - modulesInGroups: Set, -|}; - -export type ModuleTransportLike = { - +code: string, - +id: number, - +map: ?SourceMapOrMappings, - +name?: string, - +sourcePath: string, -}; - -export type OutputOptions = { - bundleOutput: string, - bundleEncoding?: 'utf8' | 'utf16le' | 'ascii', - dev?: boolean, - platform: string, - sourcemapOutput?: string, - sourcemapSourcesRoot?: string, - sourcemapUseAbsolutePath?: boolean, -}; - -export type RequestOptions = {| - entryFile: string, - sourceMapUrl?: string, - dev?: boolean, - minify: boolean, - platform: string, -|}; +export type {OutputOptions, RequestOptions} from '../../packager/src/shared/types.flow'; diff --git a/local-cli/bundle/unbundle.js b/local-cli/bundle/unbundle.js index 767b939d86c..78d6bdc9986 100644 --- a/local-cli/bundle/unbundle.js +++ b/local-cli/bundle/unbundle.js @@ -10,7 +10,7 @@ const bundleWithOutput = require('./bundle').withOutput; const bundleCommandLineArgs = require('./bundleCommandLineArgs'); -const outputUnbundle = require('./output/unbundle'); +const outputUnbundle = require('../../packager/src/shared/output/unbundle'); /** * Builds the bundle starting to look for dependencies at the given entry path. diff --git a/packager/src/Bundler/util.js b/packager/src/Bundler/util.js index df171bd635b..f57b55019a6 100644 --- a/packager/src/Bundler/util.js +++ b/packager/src/Bundler/util.js @@ -16,7 +16,7 @@ const babelGenerate = require('babel-generator').default; const babylon = require('babylon'); import type {AssetDescriptor} from '.'; -import type {ModuleTransportLike} from '../../../local-cli/bundle/types.flow'; +import type {ModuleTransportLike} from '../shared/types.flow'; type SubTree = ( moduleTransport: T, diff --git a/packager/src/ModuleGraph/output/indexed-ram-bundle.js b/packager/src/ModuleGraph/output/indexed-ram-bundle.js index 01f1608d64f..166738b8423 100644 --- a/packager/src/ModuleGraph/output/indexed-ram-bundle.js +++ b/packager/src/ModuleGraph/output/indexed-ram-bundle.js @@ -10,11 +10,11 @@ */ 'use strict'; -const buildSourceMapWithMetaData = require('../../../../local-cli/bundle/output/unbundle/build-unbundle-sourcemap-with-metadata.js'); +const buildSourceMapWithMetaData = require('../../shared/output/unbundle/build-unbundle-sourcemap-with-metadata.js'); const nullthrows = require('fbjs/lib/nullthrows'); -const {buildTableAndContents, createModuleGroups} = require('../../../../local-cli/bundle/output/unbundle/as-indexed-file'); const {createRamBundleGroups} = require('../../Bundler/util'); +const {buildTableAndContents, createModuleGroups} = require('../../shared/output/unbundle/as-indexed-file'); const {concat} = require('./util'); import type {FBIndexMap} from '../../lib/SourceMap.js'; diff --git a/packager/src/ModuleGraph/output/plain-bundle.js b/packager/src/ModuleGraph/output/plain-bundle.js index 813b31e0eaa..cfbfcad556e 100644 --- a/packager/src/ModuleGraph/output/plain-bundle.js +++ b/packager/src/ModuleGraph/output/plain-bundle.js @@ -10,7 +10,7 @@ */ 'use strict'; -const meta = require('../../../../local-cli/bundle/output/meta'); +const meta = require('../../shared/output/meta'); const {createIndexMap} = require('./source-map'); const {addModuleIdsToModuleWrapper, concat} = require('./util'); diff --git a/local-cli/bundle/output/bundle.js b/packager/src/shared/output/bundle.js similarity index 88% rename from local-cli/bundle/output/bundle.js rename to packager/src/shared/output/bundle.js index 6d867dd0707..cce54c6a81c 100644 --- a/local-cli/bundle/output/bundle.js +++ b/packager/src/shared/output/bundle.js @@ -11,14 +11,14 @@ 'use strict'; -const Server = require('../../../packager/src/Server'); +const Server = require('../../Server'); const meta = require('./meta'); -const relativizeSourceMap = require('../../../packager/src//lib/relativizeSourceMap'); +const relativizeSourceMap = require('../../lib/relativizeSourceMap'); const writeFile = require('./writeFile'); -import type Bundle from '../../../packager/src/Bundler/Bundle'; -import type {SourceMap} from '../../../packager/src/lib/SourceMap'; +import type Bundle from '../../Bundler/Bundle'; +import type {SourceMap} from '../../lib/SourceMap'; import type {OutputOptions, RequestOptions} from '../types.flow'; function buildBundle(packagerClient: Server, requestOptions: RequestOptions) { diff --git a/local-cli/bundle/output/meta.js b/packager/src/shared/output/meta.js similarity index 100% rename from local-cli/bundle/output/meta.js rename to packager/src/shared/output/meta.js diff --git a/local-cli/bundle/output/unbundle/as-assets.js b/packager/src/shared/output/unbundle/as-assets.js similarity index 95% rename from local-cli/bundle/output/unbundle/as-assets.js rename to packager/src/shared/output/unbundle/as-assets.js index 411ca776447..e340b31d588 100644 --- a/local-cli/bundle/output/unbundle/as-assets.js +++ b/packager/src/shared/output/unbundle/as-assets.js @@ -15,13 +15,13 @@ const MAGIC_UNBUNDLE_NUMBER = require('./magic-number'); const buildSourceMapWithMetaData = require('./build-unbundle-sourcemap-with-metadata'); const mkdirp = require('mkdirp'); const path = require('path'); -const relativizeSourceMap = require('../../../../packager/src//lib/relativizeSourceMap'); +const relativizeSourceMap = require('../../../lib/relativizeSourceMap'); const writeFile = require('../writeFile'); const writeSourceMap = require('./write-sourcemap'); const {joinModules} = require('./util'); -import type Bundle from '../../../../packager/src//Bundler/Bundle'; +import type Bundle from '../../../Bundler/Bundle'; import type {OutputOptions} from '../../types.flow'; // must not start with a dot, as that won't go into the apk diff --git a/local-cli/bundle/output/unbundle/as-indexed-file.js b/packager/src/shared/output/unbundle/as-indexed-file.js similarity index 96% rename from local-cli/bundle/output/unbundle/as-indexed-file.js rename to packager/src/shared/output/unbundle/as-indexed-file.js index 46b18f230ed..c594b6bba1a 100644 --- a/local-cli/bundle/output/unbundle/as-indexed-file.js +++ b/packager/src/shared/output/unbundle/as-indexed-file.js @@ -14,12 +14,13 @@ const MAGIC_UNBUNDLE_FILE_HEADER = require('./magic-number'); const buildSourceMapWithMetaData = require('./build-unbundle-sourcemap-with-metadata'); const fs = require('fs'); -const relativizeSourceMap = require('../../../../packager/src//lib/relativizeSourceMap'); +const relativizeSourceMap = require('../../../lib/relativizeSourceMap'); const writeSourceMap = require('./write-sourcemap'); const {joinModules} = require('./util'); -import type {Bundle, ModuleGroups, ModuleTransportLike, OutputOptions} from '../../types.flow'; +import type Bundle from '../../../Bundler/Bundle'; +import type {ModuleGroups, ModuleTransportLike, OutputOptions} from '../../types.flow'; const SIZEOF_UINT32 = 4; diff --git a/local-cli/bundle/output/unbundle/build-unbundle-sourcemap-with-metadata.js b/packager/src/shared/output/unbundle/build-unbundle-sourcemap-with-metadata.js similarity index 100% rename from local-cli/bundle/output/unbundle/build-unbundle-sourcemap-with-metadata.js rename to packager/src/shared/output/unbundle/build-unbundle-sourcemap-with-metadata.js diff --git a/local-cli/bundle/output/unbundle/index.js b/packager/src/shared/output/unbundle/index.js similarity index 90% rename from local-cli/bundle/output/unbundle/index.js rename to packager/src/shared/output/unbundle/index.js index 780368bef8d..27b8d320bd1 100644 --- a/local-cli/bundle/output/unbundle/index.js +++ b/packager/src/shared/output/unbundle/index.js @@ -11,12 +11,12 @@ 'use strict'; -const Server = require('../../../../packager/src/Server'); +const Server = require('../../../Server'); const asAssets = require('./as-assets'); const asIndexedFile = require('./as-indexed-file').save; -import type Bundle from '../../../../packager/src//Bundler/Bundle'; +import type Bundle from '../../../Bundler/Bundle'; import type {OutputOptions, RequestOptions} from '../../types.flow'; function buildBundle(packagerClient: Server, requestOptions: RequestOptions) { diff --git a/local-cli/bundle/output/unbundle/magic-number.js b/packager/src/shared/output/unbundle/magic-number.js similarity index 100% rename from local-cli/bundle/output/unbundle/magic-number.js rename to packager/src/shared/output/unbundle/magic-number.js diff --git a/local-cli/bundle/output/unbundle/util.js b/packager/src/shared/output/unbundle/util.js similarity index 98% rename from local-cli/bundle/output/unbundle/util.js rename to packager/src/shared/output/unbundle/util.js index 36da5b0a634..cc1dd00dea0 100644 --- a/local-cli/bundle/output/unbundle/util.js +++ b/packager/src/shared/output/unbundle/util.js @@ -12,7 +12,7 @@ const invariant = require('fbjs/lib/invariant'); -import type {FBIndexMap, IndexMap, MappingsMap, SourceMap} from '../../../../packager/src/lib/SourceMap'; +import type {FBIndexMap, IndexMap, MappingsMap, SourceMap} from '../../../lib/SourceMap'; import type {ModuleGroups, ModuleTransportLike} from '../../types.flow'; const newline = /\r\n?|\n|\u2028|\u2029/g; diff --git a/local-cli/bundle/output/unbundle/write-sourcemap.js b/packager/src/shared/output/unbundle/write-sourcemap.js similarity index 100% rename from local-cli/bundle/output/unbundle/write-sourcemap.js rename to packager/src/shared/output/unbundle/write-sourcemap.js diff --git a/local-cli/bundle/output/writeFile.js b/packager/src/shared/output/writeFile.js similarity index 100% rename from local-cli/bundle/output/writeFile.js rename to packager/src/shared/output/writeFile.js diff --git a/packager/src/shared/types.flow.js b/packager/src/shared/types.flow.js new file mode 100644 index 00000000000..0e6a4caaab8 --- /dev/null +++ b/packager/src/shared/types.flow.js @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @flow + */ +'use strict'; +import type {SourceMapOrMappings} from '../lib/ModuleTransport'; + +export type ModuleGroups = {| + groups: Map>, + modulesById: Map, + modulesInGroups: Set, +|}; + +export type ModuleTransportLike = { + +code: string, + +id: number, + +map: ?SourceMapOrMappings, + +name?: string, + +sourcePath: string, +}; + +export type OutputOptions = { + bundleOutput: string, + bundleEncoding?: 'utf8' | 'utf16le' | 'ascii', + dev?: boolean, + platform: string, + sourcemapOutput?: string, + sourcemapSourcesRoot?: string, + sourcemapUseAbsolutePath?: boolean, +}; + +export type RequestOptions = {| + entryFile: string, + sourceMapUrl?: string, + dev?: boolean, + minify: boolean, + platform: string, +|};