本文整理汇总了TypeScript中builder-util.deepAssign函数的典型用法代码示例。如果您正苦于以下问题:TypeScript deepAssign函数的具体用法?TypeScript deepAssign怎么用?TypeScript deepAssign使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了deepAssign函数的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的TypeScript代码示例。
示例1: doMergeConfigs
export function doMergeConfigs(configuration: Configuration, parentConfiguration: Configuration | null) {
normalizeFiles(configuration, "files")
normalizeFiles(configuration, "extraFiles")
normalizeFiles(configuration, "extraResources")
if (parentConfiguration == null) {
return deepAssign(getDefaultConfig(), configuration)
}
normalizeFiles(parentConfiguration, "files")
normalizeFiles(parentConfiguration, "extraFiles")
normalizeFiles(parentConfiguration, "extraResources")
const result = deepAssign(getDefaultConfig(), parentConfiguration, configuration)
mergeFiles(configuration, parentConfiguration, result, "files")
return result
}
开发者ID:electron-userland,项目名称:electron-builder,代码行数:17,代码来源:config.ts
示例2: modifyMainPackageJson
async function modifyMainPackageJson(file: string, extraMetadata: any, isRemovePackageScripts: boolean) {
const mainPackageData = JSON.parse(await readFile(file, "utf-8"))
if (extraMetadata != null) {
deepAssign(mainPackageData, extraMetadata)
}
// https://github.com/electron-userland/electron-builder/issues/1212
const serializedDataIfChanged = cleanupPackageJson(mainPackageData, {
isMain: true,
isRemovePackageScripts,
})
if (serializedDataIfChanged != null) {
return serializedDataIfChanged
}
else if (extraMetadata != null) {
return JSON.stringify(mainPackageData, null, 2)
}
return null
}
开发者ID:electron-userland,项目名称:electron-builder,代码行数:19,代码来源:fileTransformer.ts
示例3: mergePublish
// https://github.com/electron-userland/electron-builder/issues/1847
function mergePublish(config: Configuration, configFromOptions: Configuration) {
// if config from disk doesn't have publish (or object), no need to handle, it will be simply merged by deepAssign
const publish = Array.isArray(config.publish) ? configFromOptions.publish : null
if (publish != null) {
delete (configFromOptions as any).publish
}
deepAssign(config, configFromOptions)
if (publish == null) {
return
}
const listOnDisk = config.publish as Array<any>
if (listOnDisk.length === 0) {
config.publish = publish
}
else {
// apply to first
Object.assign(listOnDisk[0], publish)
}
}
开发者ID:electron-userland,项目名称:electron-builder,代码行数:23,代码来源:config.ts
示例4: normalizeOptions
//.........这里部分代码省略.........
for (const type of types) {
const suffixPos = type.lastIndexOf(":")
if (suffixPos > 0) {
addValue(archToType, archFromString(type.substring(suffixPos + 1)), type.substring(0, suffixPos))
}
else {
for (const arch of commonArch(true)) {
addValue(archToType, arch, type)
}
}
}
}
if (args.mac != null) {
processTargets(Platform.MAC, args.mac)
}
if (args.linux != null) {
processTargets(Platform.LINUX, args.linux)
}
if (args.win != null) {
processTargets(Platform.WINDOWS, args.win)
}
if (targets.size === 0) {
if (args.platform == null && args.arch == null) {
processTargets(Platform.current(), [])
}
else {
targets = createTargets(normalizePlatforms(args.platform), args.dir ? DIR_TARGET : null, args.arch)
}
}
const result = {...args}
result.targets = targets
delete result.dir
delete result.mac
delete result.linux
delete result.win
delete result.platform
delete result.arch
const r = result as any
delete r.m
delete r.o
delete r.l
delete r.w
delete r.windows
delete r.macos
delete r.$0
delete r._
delete r.version
delete r.help
delete r.c
delete r.p
delete r.pd
delete result.ia32
delete result.x64
delete result.armv7l
delete result.arm64
let config = result.config
// config is array when combining dot-notation values with a config file value
// https://github.com/electron-userland/electron-builder/issues/2016
if (Array.isArray(config)) {
const newConfig: Configuration = {}
for (const configItem of config) {
if (typeof configItem === "object") {
deepAssign(newConfig, configItem)
}
else if (typeof configItem === "string") {
newConfig.extends = configItem
}
}
config = newConfig
result.config = newConfig
}
if (config != null && typeof config !== "string") {
if (config.extraMetadata != null) {
coerceTypes(config.extraMetadata)
}
if (config.mac != null) {
// ability to disable code sign using -c.mac.identity=null
coerceValue(config.mac, "identity")
}
}
if ("project" in r && !("projectDir" in result)) {
result.projectDir = r.project
}
delete r.project
return result as BuildOptions
}
开发者ID:electron-userland,项目名称:electron-builder,代码行数:101,代码来源:builder.ts
示例5: assertPack
export async function assertPack(fixtureName: string, packagerOptions: PackagerOptions, checkOptions: AssertPackOptions = {}): Promise<void> {
let configuration = packagerOptions.config as Configuration
if (configuration == null) {
configuration = {};
(packagerOptions as any).config = configuration
}
if (checkOptions.signed) {
packagerOptions = signed(packagerOptions)
}
if (checkOptions.signedWin) {
configuration.cscLink = WIN_CSC_LINK
configuration.cscKeyPassword = ""
}
else if (configuration == null || (configuration as Configuration).cscLink == null) {
packagerOptions = deepAssign({}, packagerOptions, {config: {mac: {identity: null}}})
}
const projectDirCreated = checkOptions.projectDirCreated
let projectDir = path.join(__dirname, "..", "..", "fixtures", fixtureName)
// const isDoNotUseTempDir = platform === "darwin"
const customTmpDir = process.env.TEST_APP_TMP_DIR
const tmpDir = checkOptions.tmpDir || new TmpDir(`pack-tester: ${fixtureName}`)
// non-macOS test uses the same dir as macOS test, but we cannot share node_modules (because tests executed in parallel)
const dir = customTmpDir == null ? await tmpDir.createTempDir({prefix: "test-project"}) : path.resolve(customTmpDir)
if (customTmpDir != null) {
await emptyDir(dir)
log.info({customTmpDir}, "custom temp dir used")
}
await copyDir(projectDir, dir, {
filter: it => {
const basename = path.basename(it)
// if custom project dir specified, copy node_modules (i.e. do not ignore it)
return (packagerOptions.projectDir != null || basename !== "node_modules") && (!basename.startsWith(".") || basename === ".babelrc")
},
isUseHardLink: USE_HARD_LINKS,
})
projectDir = dir
await executeFinally((async () => {
if (projectDirCreated != null) {
await projectDirCreated(projectDir, tmpDir)
}
if (checkOptions.isInstallDepsBefore) {
// bin links required (e.g. for node-pre-gyp - if package refers to it in the install script)
await spawn(process.platform === "win32" ? "yarn.cmd" : "yarn", ["install", "--production", "--no-lockfile"], {
cwd: projectDir,
})
}
if (packagerOptions.projectDir != null) {
packagerOptions.projectDir = path.resolve(projectDir, packagerOptions.projectDir)
}
const {packager, outDir} = await packAndCheck({
projectDir,
...packagerOptions
}, checkOptions)
if (checkOptions.packed != null) {
function base(platform: Platform, arch?: Arch): string {
return path.join(outDir, `${platform.buildConfigurationKey}${getArchSuffix(arch == null ? Arch.x64 : arch)}${platform === Platform.MAC ? "" : "-unpacked"}`)
}
await checkOptions.packed({
projectDir,
outDir,
getResources: (platform, arch) => path.join(base(platform, arch), "resources"),
getContent: platform => base(platform),
packager,
tmpDir,
})
}
})(), (): any => tmpDir === checkOptions.tmpDir ? null : tmpDir.cleanup())
}
开发者ID:electron-userland,项目名称:electron-builder,代码行数:77,代码来源:packTester.ts
注:本文中的builder-util.deepAssign函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论